Fall 2009»CSCI 210

CSCI 210

Game Programming

When / Where

MWF 11-11:50AM / ECTR 109

Introduction

Do you like to play computer games? Who doesn't? Have you ever wondered if you could build your own? If you are interested in exploring game development as a hobby or as a career, this introductory course is for you! We will learn how to develop computer games from the ground up. We will play with one prototyping environment for quick game development. We will experience one programming language used in the gaming industry. We will develop several games. Who knows... by the end of the semester you may have a working prototype of the next big gaming hit!

Course is open to any major. No previous programming experience required.

Test Dates

  • Test 1: Monday, Sep. 28, 2009
  • Test 2: Friday, Nov. 20, 2009
  • Final: 12-3pm, Wednesday, Dec. 9, 2009

Assignments

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

Readings & References

  1. Intro to Python
  2. 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.
  3. NPR, "Internet Addiction Center Opens In U.S.", Sep. 9, 2009.
  4. Paper prototyping - what is it?
  5. Wikipedia, Computer and video game genres.
  6. Games and violence readings.
  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. Wikipedia, Overview of Game Engines.
  12. Alternative user interfaces (UIs) for game (and other) development:

Artifacts and Rules

Software

  • Python official site.
  • Scratch a cross-platform graphical environment for developing 2D games and animations (Windows, Mac OS X and Linux)
  • PyGame - fully featured 2D games and multimedia programs:
  • Irfan View image viewer - a useful image manipulation utility.
  • StarLogo TNG - a cross-platform graphical environment for developing 3D games and simulations (Windows, Mac OS X and Linux).
  • pyglet - a cross-platform windowing and multimedia Python library for developing games and other visually-rich applications (Windows, Mac OS X and Linux).
  • Rabbyt - a sprite library for Python with game development in mind. It provides fast performance with an easy to use but flexible API (Windows, Mac OS X and Linux).
  • SUMMON is a python extension module that provides rapid prototyping of 2D visualizations.
  • Vpython - interactive 3D data visualization and modeling for novice programmers:
  • Panda3D - a 3D engine for rendering and game development:
  • 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.