This course will cover tools and techniques for programming interactive games and virtual reality simulations. The course will focus primarily on programming aspects, including event loops and execution threads, graphics and animation in 2D and 3D, terrain/background representation, collision detection and physically-based modeling, game AI, and multi-user games and networking. Although this course has a heavy programming focus, other topics briefly covered will include the history of computer/video game technology, game genres and design principles, and the social impact of games. Students will design and program their own games or virtual reality simulations as individual class projects using OpenGL and other standard APIs commonly used in game programming.