COSC174 - Assignment #3
Designing a Game

Due date: Friday, Feb 6, 2009

GOAL: Design a simple video game using the techniques which we've discussed in class.

IDEAS: Your game should be a two-dimensional, sprite-based, interactive game. The details of characters, layout, input, scoring, etc. are all up to you. You could design a brand-new game or describe a version or variation of some old favorite.

If you can't think of what to do, you might want to follow some successful patterns. There are many types of games which have been popular. Some particular varieties are:

  • Pong variants
  • Space Invaders (shoot the aliens from the bottom of the screen)
  • Asteroids (shoot things while flying around the screen)
  • Chase games (like PacMan)
  • Breakout (bounce a ball off a paddle to break rows of bricks)
  • Frogger (try to get across a busy street)
  • Tank variants (shoot at an opponent, get shot at)
  • Tetris variants (drop or move something into place)
  • Remember that, while these might give you general ideas, you should not try to copy an existing game without permission of any copyright holders. Furthermore, it's more interesting to create your own game!

    We'll be discussing some of the basic ideas of game design in class.

    TEAMS: You can work on this assignment by yourself or with one other person (i.e. teams of 1 or 2 people). Each team should just hand-in one copy of the assignment.

    HAND-IN: This assignment doesn't involve writing any code - we'll do that next. For this assignment you should hand-in a storyboard with sketches of "screen shots" showing important characters, basic action of game, overall layout, etc. You should also hand-in a detailed written description of your game idea. This will include the background story of your game (if any), what user input will be used, scoring, how to win/lose the game, changes between levels (if appropriate), and any other details needed to describe the game. Your writeup should also include some general ideas on code design. For instance, you might identify some obvious classes or data structures needed.