INDIVIDUAL MID-SEMESTER PROJECT

BENCHMARK 2

Requirements: In this benchmark we will actually begin coding the GUI and setting up the game architecture. You should use the Empty Game example project as your starting point. In addition, you will create your own artwork for your main character.

Part 1 - Code your GUI: We will start making our games by building a splash screen/game menu that will provide an entry point into your game. In future benchmarks, we'll add the actual game. Your GUI should include the following:


Part 2: Game Pause/Resume and the In-Game Menu - Once a game, or your slideshow, has started (but is not over), players should be able to pause the game by pressing the ESCAPE key. When pressed, an in-game menu should appear. This menu should be overlayed on top of the graphics of the frozen game. This menu should contain all of the options of the main menu (Start New Game, Controls, Help, About, Exit), as well as a new option to Resume the game. Pressing this option should close this in-game menu and continue the game.

Be careful with this in-game menu, because if I pause the game and then select Help, I should be brought to the Help screen. But then if one hits ESCAPE in the Help screen, or selects the "Go Back to Menu" button, now one should be brought back to the In-Game Menu (where the current frozen game is visible and resume game is an option), not the splash screen/main menu (where resume game is not an option). This should be true of all the menu options (like game controls or about). Understand that pressing ESCAPE should not close the application on any of the screens. Rather, ESCAPE is used to return to previous menus. This is a common game GUI setup and you should use it.


Part 3: Catastrophe prevention dialogs - Dramatically changing the current game condition via a single accidental mouse click is something every GUI programmer must be concerned with. So, anytime the player has chosen to exit the application (whether in game or not), you should pop up a little dialog window that verifies this decision with the user. In addition, if one pauses the game and then presses Start New Game from the in-game menu, pop up a similar little dialog to verify this decision. This is a consideration to the user who may have accidentally seleced a menu option, and should be given a second chance to undo this mistake.

Use DirectX to draw these little dialogs over whatever GUI and/or game screen is currently displayed. And make sure that when one of these little dialogs is visible, the menu it is overlayed onto is not selectable.


Part 4: Your main character sprite - You are the main character of your game, for this you'll need a series of images of your character in order to animate it. Produce a series of images that together may be used for a single animation state (ex: running right).


SETTING UP YOUR PROGRAM: Student projects should start from the Empty Game example project we talked about in lecture. I expect you to use object-oriented principles. Please be aware that students may not share code directly. This is an issue that I take very seriously. This is an individual project, and so students must do their coding individually. I want to make sure that each student learns to code games in this course, and the only way to do that is to verify that everyone is doing their own work. Incidents of academic dishonesty will be taken very seriously, so please, don't be tempted this late in your academic career.


SUBMITTING YOUR HW: This should be done in two stages:


A LOOK AHEAD

For the next benchmark students will organize all game artwork and will create a game prototype with a fully tiled, partially complete game world. In addition students will add an animated main character.

GO BACK TO BENCHMARK 1

GO AHEAD TO BENCHMARK 3


SUNYSB CSWeb page created and maintained
by Richard McKenna