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 25, 2021 at 12:00 noon PST
- Milestone 2: February 12, 2021 at 12:00 noon PST
- Milestone 3: March 8, 2021 at 12:00 noon PST
- Milestone 4: March 29, 2021 at 12:00 noon PST
- Final Product: April 16, 2021 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:
- Games Industry
- Fun
- Game Architecture
- Development Languages
- Gameplay
- Engines
- Graphics
- Physics
- Driving Engines
- PhysX Vehicles
- Driving AI
- Programming for Performance
- Networking
- C++ Pitfalls
- How C++ Works
- Sound
- Memory and Game Content
- Console Architecture
- Project Management
- The Future of Games
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: