Games Programming
This course emphasizes the practical aspects of creating computer games through a combination of block week lectures and a term long group project. Lectures will be delivered by an experienced developer working in the games industry and will cover most aspects of game development including topics such as game architecture, graphics, AI, sound and physics simulation. The remainder of the term will be devoted to a group project where teams of students will work to create a fully functional racing game.
Important Dates:
- Milestone 1: January 26, 2026 at 1:00pm MST
- Milestone 2: February 13, 2026 at 1:00pm MST
- Milestone 3: March 9, 2026 at 1:00pm MDT
- Milestone 4: March 30, 2026 at 1:00pm MDT
- Final Product: April 14, 2026 at 1:00pm MDT
- The Course Syllabus includes a brief description of each milestone. Additional details about the requirements can be found in this document.
Lecture Notes:
The lecture notes can be found on the D2L site for this course.
Ground Rules:
We want you to get as much of the boring work out of the way as possible, so we encourage you to seek out existing code to use in your game project, as long as you get permission from us in advance before incoporating it into your game. Generally, we have no problem with low-level libraries but will not approve use of commercial or open-source game/driving/3D engines.
You must get permission to use anything that is not on the list below.
- A compiler/IDE. VisualStudio is available to download. Talk to us before using something else. C++ and C# are fine.
- Microsoft DirectX
- Glut
- PhysX SDK
- Open Dynamics Engine
- Simple DirectMedia Layer
- OpenAL
- Fmod
- Cg Toolkit
- OpenGL Extension Wrangler Library
- FTGL Font Library
- Open Asset Import Library
- GLFW
- GLM
- glad
- ImGui
- stb single-file public domain libraries for C/C++
Sample Design Documents:
- Xtreme Robot Elimination Challenge Design Document
- mPULSE Design Document
- King of Buggies Design Document
- Note that you are expected to provide a detailed schedule in addition to your design document. This schedule should describe the tasks to be completed and who will be completing them. The tasks that you should consider will probably vary from about a couple of hours to about a couple of days.
Past Projects:
Some teams have posted videos of their projects on YouTube. Here are some examples: