The primiary goal of this course is to equip students with practical knowldege about 3D game programming. The focus will not be on teaching all of the details of programming under specific platforms, but rather on providing both a high-level understanding and practical implementation experience of reusable algorithms and coding techniques that apply to the development of games across different platforms and genres. All programming will be done in C/C++ using open-source, cross-platform libraries such as OpenGL and GLUT. Students will design and program their own games or virtual reality simulations as part of their class projects. There will also be several smaller programming assignments designed to provide students with experience implementing common components of game engines.