Fall 2010»CSCI 210

CSCI 210

Game Programming

When / Where

MWF 1-1:50PM / LONG 220


A course introducing principles of game programming, including computer modeling, data visualization and animations, media transformations, and video game ethics. Students will be exposed to several game engines, a scripting language, and develop at least one game.

Prerequisites: CSCI 120, CSCI 180 or permission of instructor.

Test Dates

  • Test 1: Friday, Oct. 8, 2010
  • Test 2: Monday, Dec. 6, 2010
  • Final: 12-3pm, Wednesday, Dec 15, 2010


Sep. 4, 2009:
Homework #1 is now posted.

Readings & References

  1. Wikipedia, Computer and video game genres.
  2. Wikipedia, Overview of Game Engines.
  3. An introduction to pair programming. This 9-minute video describes what pair programming is, the do's and don'ts of effective pairing, and the pros and cons of pair programming. Here is the accompanying worksheet.
  4. Paper prototyping - what is it?
  5. Games and violence readings.
  6. NPR, "Internet Addiction Center Opens In U.S.", Sep. 9, 2009.
  7. World of Warcraft A Fantasy Universe Raises Its Broadsword Against World of Warcraft from NY Times. Designing a successful massively multiplayer online game may be one of the supreme challenges in all entertainment.
  8. Geoff Howland, "How do I make games? A Path to Game Development".
  9. Schiesel, S. "Online Game, Made in U.S., Seizes the Globe", New York Times, September 5, 2006.
  10. Laitinen, S. "Better Games Through Usability Evaluation and Testing", Gamasutra, June 23, 2005.
  11. Intro to Python
  12. Alternative user interfaces (UIs) for game (and other) development:

Artifacts and Rules


  • Scratch a cross-platform graphical environment for developing 2D games and animations (Windows, Mac OS X and Linux)
  • NetLogo - a cross-platform programmable modeling environment for simulating natural and social phenomena (Windows, Mac OS X and Linux).
  • StarLogo TNG - a cross-platform graphical environment for developing 3D games and simulations (Windows, Mac OS X and Linux).
  • Inform - a design system for interactive fiction based on natural language. It is a radical reinvention of the way interactive fiction is designed, guided by contemporary work in semantics and by the practical experience of some of the world's best-known writers of IF.
  • Unity - a multiplatform game development tool for 3D (and 2D) games.
  • Python official site.
  • PyGame - fully featured 2D games and multimedia programs:
  • pyglet - a cross-platform windowing and multimedia Python library for developing games and other visually-rich applications (Windows, Mac OS X and Linux).
  • Panda3D - a 3D engine for rendering and game development:
  • Irrlicht is an open source high performance realtime 3D engine written and usable in C++ and also available for .NET languages. It is completely cross-platform, using D3D, OpenGL and its own software renderer, and has all of the state-of-the-art features which can be found in commercial 3d engines.
  • OGRE is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce applications utilising hardware-accelerated 3D graphics. The class library abstracts all the details of using the underlying system libraries like Direct3D and OpenGL and provides an interface based on world objects and other intuitive classes.