Final Project: End To End Video Game Design


There will be a final project in this course which accounts for 10% of the overall course grade and which will be completed during the last month of the course, after both of the major programming assignments have wrapped up. In particular, students will work in groups of size 1 to 3 to create a video game. The video game must have the following components:


  • The game must use geometry in some way
  • The game must have a at least one interesting graphical effect.
  • The game must contain real-time user interaction
  • The game must contain some basic physics or collision checks (using an engine is fine for this)
  • The game must contain at least one procedurally generated element
  • The game must not be an exact clone of some other game out there. I don't want to see your version of Tetris! Rather, I want to encourage creativity and see if you can come up with your own concept. I will give some ideas in class that I've had in the past but have never had a chance to do myself.


  • Students will learn to scope out and follow through on a medium sized, open ended project.
  • Students will learn how to apply technical knowledge in a creative, artistic application.

One of the biggest challenges will be to appropriately scope out your project under the time constraints. You want to have enough done that someone can play your prototype and determine whether the concept "works" and is fun. But you don't want to over-engineer and get stuck without a playable product. Please see these excellent videos on appropriately scoping out your first video game.


No formal writeup will be required for the projects, but students will be expected to submit a brief document summarizing their accomplishments in bullet form, providing a summary of completed code, and providing directions to run the game

Grading Rubric

75%Technical refinement: How much did the project mature over the time you worked on it? How close are you to the final goal that you had? Did you meet all of the specifications?
15%Code/Documentation/Mini Report: In lieu of a formal final report, you will submit a brief summary of what you accomplished, along with code and directions on how to use it. You can think of this as an extended README. You will be graded on the quality of your code and documentation (how easy is it for someone who doesn't know your project to run your code?).
10%Above and beyond: How much did you do to refine this project and to make it your own? Did you put any unique twists on it that weren't suggested by the instructor?