Computer Science 325 / 001

Introduction to Computer Game Design


Monday, 4:30-7:10 PM, in Room 2026 of the Art and Design Building.


Sean Luke.



Strong Recommendation

CS 310

About the Class

Game design is the process of constructing the rules and the material of a game. This involves many aspects: everything from storytelling to artwork to the interaction amongs agents in the game. But among the central aspects of game design is the creation of the core mechanics of the game: the rules which explain how the game works and how it is played. Game development is the software construction of the game itself. This is often closely connected to core mechanics design.

Warning. Due to unusual circumstances this year, we'll place a heavy emphasis on development aspects this time around; and much of our discussion of design will be with regard to core mechanics from a software developer's perspective. This means there will be significant development projects in the class this year. I expect that the language will be Java; and you are required to be moderately proficient in it. Having taken CS 310 would also be helpful, though not required.

Development topics will include: event-driven systems and programming (queues, scheduling, events, interfaces), 2-D graphics (drawing, hit-testing, sprites, etc.), and agents (behaviors, automata, probabilistic agents and scenarios). Given time we may extend to other topics such as multi-user and multi-agent systems.

Design topics may include: game worlds, creative play and interaction; character development; inputs; managing difficulty (flow, etc.), game balancing, the internal economy of the game; probabilistic rules; artificial opponents; resources, etc. among other topics.

Course Web Page


There are no textbooks.


Grading for this course has not entirely been determined. It will certainly contain at least an exam and probably a midterm exam (which will not be cumulative), and several programming projects which build on one another. The course grade will be split roughly 50/50 between the projects and the exams.

Course Outcomes

1. An ability to employ a variety of data structures in a game development and design context. 2. An ability to identify the issues involved in the core mechanics and design of a game and how to solve them with appropriate techniques. 3. An ability to design and implement simple games from the ground up.