15-466: Game Programming (Fall 2009)

Tuesdays and Thursdays 18:30-19:50 in GHC 4215


Course Goals

The purpose of this course is to give students a reason (deadlines) to make computer games. Students will individually produce a series of small games exploring specific domains. Additionally, students will work in teams to complete a final, more open-ended project.

Throughout, the focus will be on generating and exploring new gameplay, rather than cloning existing games.


Students will be graded out of 23+2N points, divided as follows:

2Game Review
3NWeekly Games
17Final Game
1NExtra Games

The assignment names above are linked to pages with more information. Briefly, the Game Review is a two-person presentation that evaluates a game and gives the class something to discuss; the Weekly Games are individually-created prototypes which explore novel gameplay; and the Final Game is an undertaking wherein 3-4 person groups work together to create a polished game.

Web Posting

I would very much like to post the games you create during this class, with source code, to our course page so that others may play and learn from them. If you have any reason to object to this, let me know.

Support Code (nest)

There is some basic support code to get you started with OpenGL and SDL and to make common tasks a bit easier. I call it nest.


The following is a tentative layout of the course. Below it, you'll find a list of topics I'm considering talking about. Which topics I talk about and when will be somewhat demand-based.

8/25 (T)Course intro; Tools and Libraries; TimingWeekly Game: use SDL (Due: 8/31, 8pm)
8/27 (R)Quaternions; Kinematics
9/1 (T)SoundWeekly Game: require sound (Due: 9/8, Noon)
9/3 (R)Other I/O
9/8 (T)Cameras (guest: Srinivasa Narasimhan)Weekly Game: viewpoint (Due: 9/14, 8pm)
9/10 (R)Non-Computer Games (guest: Michael Ashley-Rollman)
9/15 (T)PhysicsWeekly Game: use ODE (Due: 9/23, 8pm)
9/17 (R)Particle-based Physics
9/22 (T)Cancelled due to GHC opening (Jim will be in classroom to answer questions.)
9/24 (R)Intelligence & Planning (guest: James Kuffner)Retrospective. By 9/26 select one of your weekly games to discuss; By 9/29 play the games of others.
9/29 (T)Retrospective Crit (part1)
10/1 (R)Retrospective Crit (part2)Warm-up your socket skills and earn some extra credit with the maze challenge (by 10/5 at 8pm)
10/6 (T)Networking BasicsWeekly Game: client-server (Due: 10/14, 8pm)
10/8 (R)Networking Exotica
10/13 (T)Final Game Elevator PitchesImage(s) for your pitch are due by 5:50pm.
10/15 (R)Programmable Graphics Hardware(Pitch Refinement Pairs Announced)
10/20 (T)Refined Pitches (pt 1)Images for your pitch are due by 5:50pm
10/22 (R)Refined Pitches (pt 2)
10/27 (T)Collision(Final Groups Announced)
10/29 (R)Culling
11/3 (T)Prototype Crit (pt 1)Design Documents due 5:50pm. Arrange a computer to run your prototypes.
11/5 (R)Prototype Crit (pt 2)
11/10 (T)Why games are fun / what games are about
11/12 (R)Fluid dynamics
11/17 (T)Demo Crit (pt 1)In GHC 5205
11/19 (R)Demo Crit (pt 2)In GHC 5205
11/24 (T)Guest Lecture: Paolo Pedercini
11/26 (R)No Class
12/1 (T)Real-Time Deformation and Fracture in a Game Environment (web page)
12/3 (R)Grab-bag
12/7 (M)Final Crit (during exam slot)Note special day (Monday) and time (5:30-8:30).

Extra Topics

These will appear in the schedule upon request.