CS248 Project 1: Breakout

The demo signup page is now live.

The goal of this assignment is to get your feet wet by writing a simple interactive OpenGL program: an implementation of the arcade game Breakout.

Key Dates


You must implement the game Breakout using OpenGL. This is a solo assignment, and all code should be written by you alone. You may discuss gameplay ideas and algorithms with your friends, but don't share any code. Similarly you may take gameplay ideas and algorithms from the web, but don't cut and paste any code.

Breakout consists of three types of objects:

For a better sense of Breakout, try one of these online versions. Note that they don't necessarily meet the assignment requirements.

You are encouraged to vary the rules, as long as it doesn't simplify the graphics or physics of the game.

You may write in any programming language that has an OpenGL library. We strongly recommend C or C++. You may write the project on any platform, using any development environment, as long as you can demo the game to us in Gates B08. We recommend either using the linux machines in B08, or bringing a laptop.

Extra Credit

We encourage you to implemented extra graphical or physical features. While grading is entirely up to the grader, the following things would be typically be considered as features worth extra credit:

Extra credit points are not added to your project score, but instead tallied separately. At the end of the course, after fitting grades to a bell curve, extra credit points are converted into regular points and added to your grade.

You are also welcome to add sounds effects and music, but as this is a graphics course, they will not be worth any credit.


This project is worth 15% of your final grade. A game that meets all the requirements, runs smoothly, and has no glitches will get full marks. You may lose points for things like the game running very slowly, the game crashing, graphical flicker, or unintended unexpected behaviour of the game objects. A totally non-functional game will get no points.

If you submit your code late, you will be penalized with a cap on your maximum possible score, at a rate of 10% per day until you submit your final version. In this case, you should demo your program during TA office hours. Remember that the course outline affords you one day of grace for the course, which you may use for this assignment.


Submit a zip file of your submission here. If it's very large, or if you have problems with the submission script, contact the TAs. You may submit as many times as you like, so submit early and often.

Email Address
Submission zip


Google is your friend. We suggest you use it heavily while getting OpenGL working. One useful set of tutorials is at http://nehe.gamedev.net/, though be warned that the code there can be quite messy. If you're a windows person, then a good site explaining how to get started in visual studio 2003 is here.

Your other main resource is the course TAs, Justin and Andrew, who can be reached at cs248-aut0708-staff@lists.stanford.edu, by attending their office hours, or after a lecture for quick questions.

CS248 staff
Last modified: Mon Oct 1 16:02:19 PDT 2007