CS Contra Project Proposal Andy Hull Project: Since the switch over from the Sun machine occurred this year, there is a serious lack of games to be played by students in the lab. The goal of this project is to design and program a side-scrolling shoot-um game, similar to Contra or Metal Slug series. The game would be networked for multiplayer, easily portable to other OSs. (The lab is bound to switch again eventually.) The purpose is to learn about game design considerations through the making of the game, as well as to produce a cohesive, polished final game. Overview: The game itself will star the player(s) as a variety of characters, looking to exterminate demons that have invaded a futuristic city. Each character will vary in appearance, as well as have various attributes that will give them different advantages and disadvantages. Game play will take place from a side-view, with the players only moving in one plane. Levels will consist of traveling across the screen by jumping from platform to platform, while attempting to shoot enemies, with a boss at the end. Contact with any one enemy bullet will kill the player. Various power-ups will be available to the player to improve their firepower. The characters and backgrounds will be represented by 2d sprites. However, the game will be coded using OpenGL, utilizing 3d effects for the platforms, various boss characters, and additional effects. Networking would be included, allowing 2 players on different terminals to play together. The game should therefore allow user to sign on and find other people waiting to play in some kind of lobby, as well as keep track of high scores so that players and 2 player teams can be ranked. Additionally, some form of level editor will need to be coded, in order to create, save and load levels. Requirements: The Player: High: -must be able to move left and right -must be able to jump -must be able to shoot in 8 directions -must have correct collision detection. (for both platform navigation and hit detection form bullets) -must be able to drop down from a platform by holding down and pressing jump. -must be able to die when shot -must be able to throw grenades as a secondary weapon -must be able to pick up power-ups -must respawn if player has lives left. -must be fully animated. Low: -must be able to climb ladders -must be able to remap control keys for both first and second player. -must be able to select different characters to play as, with different abilities -must be able to command some sort of vehicle in parts of the game The Editor: High: -must save and load some “level file” format -must support constructing a level using pre-built geometry blocks (tiles) and created planes. -must support deletion of areas -must let user texture geometry of level. -must let user place enemies in the level -must let users place control points to guide the camera in game. -must support placement of lights. -must support placement of power-ups Low: -must allow for zoom points, which change the camera zoom in game The Engine: High: -must load levels from level file -must have some form of “effects” for explosions, etc… -must obey all flow commands set up in the editor -must support 1 or 2 players, with a 2nd player able to join the game at any time. -must manage the game, including enforcing the “rules” and keeping track of all game objects. Medium: -must support setting up animations for sprites in separate files, allowing for “skinning” of game. -must have text engine to display messages from custom font bitmaps. The Enemies: High: -must have some way of moving, taking into consideration the level geometry. -must be able to attack the player -must have some defined behavior -must be able to be destroyed by player. -must exist multiple (3+) different types of enemy per level (not including boss) -must be fully animated. -must be able to script behaviors Low: -must be able to edit behaviors in the editor. (as opposed to in Notepad, etc..) Power-ups: High: -must be able to be collected -must include custom graphics and movement to distinguish them. -must be at least 3 different kinds. Networking: High -must allow for lag free gameplay -must allow user to find other players -must support 2 players in the game -must be able to track high scores Low: -must support 4 players in the game Sound: High: -must feature 3D sound -must support MIDI, MP3 or MOD playing capabilities for background music -must support WAV files for sound effects Low: -must support a real-time reverb effect to apply to WAV files. (for caves, etc.) -must support user-selected tracks to play as background music Conclusion: All features under High priority would be implemented. Additionally, a minimum of 2 working levels would be completed, with a goal of at least 3. Also included would be a title screen and game over screen. Obvious extensions for any future versions would be to include more levels, more weapons, enemies, etc; Support for a deathmatch mode, where the players are out to kill each other; and AI partners to play as the second player if the user is alone in the lab.