This is probably my mistake. Well I wasn't looking for code, but more like how you would use GM. For example: In the CP 4Sword has all the game logic coded in the Step event, but ahmio has the game logic separated over many events, like key presses/releases and collisions.
I'm using multiple events per object. If I had to start from scratch maybe I might do it differently but that's not an option anymore. I do take the time to clean up when I feel it will help with the overview. For instance: keycommand are now handled through the general key press/release/hold events. There they are routed to the corresponding user_events (one per action (=left/right/run/menu/esc). So you have one event for actions, one for items etc.
I'm guessing this is what you want to hear: After the game select screen you there is one master_control_object and a character_control_object. These are the bases for the game. Beyond that you have a control object per area (which are also persistent), a control for the hud and some for the menu's (when those become needed).
The obj_Master_Control_Tile holds all the global game data. In other words, all the variables you would need the save in order to be able to restart later on. This includes a variable called Game_Mode which indicates normal play or wether menu's etc are active.
The Character_Control_Tile holds all the variables for actual gameplay. Like the variables needed in the movement engine (speed, direction, character facing etc), wether the character is hurt, falling, running, slashing or the id of the container he has above his head. Stuff like that. The most interesting variable is probably Link_Status that indicates his current activity (0=default walking/ standing, 1 = pulling/pushing, 2 = running etc)
The dungeon control tiles hold stuff like the sprites needed for the map menu. Wether rooms have already been visited, doors are still open or closed, wether cutscenes have occurred etc. I have not build these for the overworld yet because I feared I had to do them again anyway when I'd have arrived at programming the overworld. The objects for the overworld will essentially have the same function, just slightly different.
Other things: Are you trying to get the most of the code in scripts, or is the code mostly in the objects. Do you use external libraries or just Gamemaker code.
I start out by coding everything in the objects. Whatever I feel could be recycled for other objects or functions gets it's own script. When something needs temporary variables I also use scripts. So in the end most thing end up in a script one way or the other. I don't use external libraries because I simple don't know how. I should also mention that I only just got the pro edition (just a couple of weeks). I haven't really done much with it yet aside from play with transparency and use some blending. So much to do, so little time
This is some info I am looking for. Can you clarify a bit about what you mean with "as little objects or variables as possible"?
The variable Link_Status (mentioned earlier) is a good example. It has a value per state, since none of the states can occur together. I don't like using a separate value per state, just like I don't like using constants or global GML variables. They clutter the code and waste space (maybe just a little but it's the idea that matters). What I meant to say was that I like to be efficient with the variables I use. I'm in no way perfect, but I try to be