Final Project: End To End Video Game Design


There will be a final project in this course which accounts for 20% 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 to create a 2D video game using shaders. 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 using shaders. Please visit for inspiration.
  • The game must contain real-time user interaction
  • The game must contain some basic physics
  • 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.
  • Students will learn how to give and receive constructive feedback in a professional setting.

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.

Project Presentations / Documentation

To save time in class, students will be required to make videos summarizing their work. A simple way to do this could be to screencast playing the game, while talking over and explaining how it works. Students may also want to include some slides explaining some of the implementation details further. Once the videos are completed, each student will be randomly assigned 3-4 videos from other groups in the course to watch and for which to provide critical feedback. This feedback will factor into the participation grade.
NOTE: I will of course also be watching each video carefully myself.

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

20%Initial project milestone: How close did you get to accomplishing the initial goals we set out?
50%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?
10%Narrated video: Graded for overall clarity, quality of figures/animations, and demonstration of what you did so that other students can understand it
10%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?