Prototyping - Main Menu Design
The main menu is the first opportunity for the player to interact with the game. It's also the starting/ending point of the metagame loop. We'll sketch design that supports the key features of the menu before jumping in to programming next time.
Main Menu Flow
There's quite a few ways to move through the menu sequence, but we'll highlight three tasks:
We'll have to manage the overall control of the menu and logical movement around and out of the GameMaker room. This is the job of obj_mainmenu
There's a load and save sequence that we'll manage with the obj_loadsave. The actual save game data is already stored in the obj_currentgame that we made last time. This new object simply controls the user input and moves the data as necessary.
Finally, the menu interrupts the user with popup notifications. This happens if the user chooses an option that could interrupt the currently active game, such as quitting or starting a new game when there's already one in progress. This will be managed with obj_mainpopup.
We're only going to focus on the subset of menu options that directly involves gameplay. The original shareware release model calls for several marketing and promotion options, which we can see on the main menu. We won't need to worry about them for now.
|Start New Game||Restarts the game at mission 1. We will implement this by moving to the next room from the menu|
|Save Game||Saves a game that can be loaded later. We will implement this through obj_loadsave.|
|Restore Game||Players can load a game. We'll also build this in to obj_loadsave|
|Next Mission||Moves the player to the next mission, which is only active if the player has an active game (isn't on mission 1)|
|Help||A menu with instructions. We won't implement this in the prototype.|
|Story So Far||A recap of the introduction. We also won't bother with this.|
|About P-squared||A credits screen. We won't worry about this also it should be a cinch to just load up our placeholder credits screen.|
|Ordering Info||Original marketing sequence for episodes 2 and 3. We|
|Quit to DOS||We'll make this...but we won't be quitting to DOS.|
The original main menu asset used color cycling to animate menu selection highlights. This was a very space friendly approach back in the days when games had to fit on floppy disks and memory footprints were 640k without a DOS extender. Today, we'll replace this technique by drawing a series of backlights under/behind the main menu sprite. We'll delete the brown placeholder colors and rely on an alpha channel to allow the backlight to shine through the menu sprite.