CMSC 23800/53800
Game Construction
Spring 2014

General Information

Course: CMSC 23800/53800
Game Construction
Instructor: John Reppy
Ry 256
Lecture: TR 4:30-5:50
Ry 251
Phoenixforge server:


Computer games are one of the most exciting applications of computer technology. Computer games are also large software systems that embody cutting-edge graphics as well as techniques from scientific simulation, networking, AI, and databases. This course is an introduction to the issues of computer game construction. Students will work in teams to design and create their own games using existing libraries for graphics, physics simulation, etc. While students are not expected to be experts in everyone of the technical areas that underly computer games (e.g., graphics, scientific computing, networking, etc.), expertise in one or two of these areas is required, as is a strong background in programming.

Course work

There are two pieces of course work expected for this class.

  1. Group project:

    Each student is expected to actively participate and contribute to his/her group's project. There will be regular group presentations in class over the course of the term (approximately one every two weeks), as well as a final presentation/demo.

  2. Individual report

    Each student is expected to write and present an individual report on some aspect of Computer Game design or construction. A one-to-two page project proposal is due in class on Tuesday, April 22, and the final report and class presentation will be due Thursday May 29 (9th week). Some ideas for possible topics can be found here.

The project

Text books

There are no required texts for the course, but you may find the following books interesting/useful:
Title: Introduction to Game Development (2nd Ed)
Editor: Steve Rabin
Publisher: Charles River Media, 2009
Title: Chris Crawford on Game Design
Author: Chris Crawford
Publisher: New Riders Publishing, 2003


Here are links to papers and other written material that you may find interesting/useful for the project.

Coding resources

You are encouraged to use existing software libraries where possible. Such code might take the form of lower-level libraries that are directed toward a specific task, or a larger, higher-level, library that has most of the components of a game engine.

Low-level libraries

These are libraries that deal with fairly specific issues Here are links to some potentially useful libraries:

In addition to the above libraries, we will also make some project-specific code available for your use.

Web sites

There are many game-programming websites on the internet; here are a few that I have found useful.

Last revised: May 13, 2014.