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 23, 2023 at 12:00 noon PST
- Milestone 2: February 10, 2023 at 12:00 noon PST
- Milestone 3: March 6, 2023 at 12:00 noon PST
- Milestone 4: March 27, 2023 at 12:00 noon PST
- Final Product: April 14, 2023 at 12:00 noon PST
- 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
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: