CS2500: Problem Set 12

Due: Tuesday, April 20 at 11:59 PM

This assignment may be completed alone or with the partner of your choosing. If you would like to be assigned a partner, email the instructor as soon as possible.


Assignment goal:


For this assignment, you will implement a video game of your choosing.

Before you start, you must have a proposal accepted by the instructor. Your proposal consists of two parts:

Every game must meet three other requirements, which are not part of the list of functional requirements:

  1. The source code begins with a comment telling the grader how to start your game. If necessary, this includes game play instructions.
  2. Rendering is accurate. That is, game play corresponds closely to what the player sees on the screen.
  3. Fundamental constants such as the size of the world and the speed (if things move) are defined near the top of the file. If the grader changes these constants to other values (within reason), your game still functions properly.

Email your proposal to the instructor for approval. Once your proposal is approved, you may, at your option, expand it into a full design document as in Problem Set 8. This is highly recommended. If you choose to write a design document, please send design documents to the instructor and both TAs; if you do, you may expect a response within 48 hours.

Here is a sample proposal based on your Problem Set 8 (so obviously, you can’t do this one again):

Proposal: Space Shooting Game


In our game, the player will pilot a space ship defending Mars from human invaders. The player’s space ship moves only in the horizontal direction along the bottom of the screen, controlled by the player. The player may also fire missiles from the space ship. Enemy space ships appear at the top of the screen and attempt to reach the bottom. If a missile hits an enemy, the enemy is destroyed and the player scores one point, but if an enemy reaches the bottom of the screen, the player loses.

Functional Requirements

  1. The user can control the movement of the space ship.
  2. The user can control when missiles are released.
  3. There is a limit to the number of missiles that may appear on the screen at once.
  4. Enemies appear at the top of the screen and move straight downward.
  5. New enemies appear in random positions at the top of the screen.
  6. Enemies never overlap.
  7. If an enemy and a missile collide, both are removed from the world, and the score is incremented by 1.
  8. If an enemy reaches the bottom of the screen, the game ends and the player is notified of the loss.

Here is a another sample proposal:

Proposal: Dot Chomping Game


In our game, the player controls a large-mouthed, yellow sphere navigating a maze. The yellow sphere is accompanied in the maze by a number of phantoms, which chase the sphere; if they catch the sphere, the player loses.

The maze contains a large number of small dots and a small number of large dots, which the sphere may eat as it travels past. When the sphere eats a small dot, this increments the score. When it eats a large dots, the tables are temporarily turned: The phantoms move away from rather than toward the sphere, and the sphere may eat phantoms that it catches. If the sphere can eat all the dots before being caught by a phantom, the player wins.

Functional Requirements

  1. The user can control the movement of the phantom.
  2. The sphere and phantoms stay within the walls of the maze and cannot cross them.
  3. When the sphere passes a small dot, the dot goes away and the score increments.
  4. When the sphere passes a large dot, the dot goes away and the game enters “big-dot mode,” which is indicated visually.
  5. The phantoms move toward the sphere when the game is not in big-dot mode, and away when it is in big-dot mode.
  6. If the sphere meets a phantom while not in big-dot mode, the game stops and losing is indicated.
  7. If the sphere meets a phantom while in big-dot mode, the phantom is eaten and disappears.
  8. If all the dots are eaten, the game stops and winning is indicated.

What game you choose is up to you, but if you need an idea, here are a few:

Turn In

Please follow the electronic homework submissions instructions.

CS2500 Home

Last updated 7 April 2010.

Valid XHTML 1.1 Valid CSS!