Building Game Engines
This course teaches the fundamentals of building a reusable software architecture by building games. This is a programming-intensive course where the end product of this course is a data-driven game engine that students work in small teams to implement in a systems programming language (e.g. C, C++, D, etc.). Students apply data structures, algorithms, and systems programming skills in the domain of games. Discussion and implementation of the components of a game engine may include: resource management (allocators, resource managers, serialization), abstraction (design patterns, game objects, scripting, graphics layers), graphics management algorithms (scene graphs, level of detail), physics (linear algebra, collision detection and resolution algorithms), artificial intelligence (e.g. pathfinding,decision making), and performance (concurrency, parallelism, math). Students work on a final course project for their portfolio. Prerequisite: previous experience with data structures and systems programming comparable to CPSC 223 and CPSC 323. MW 4pm-5:15pm
Sources
- Course catalogue ↗2026–2027
- Catalogue entry ↗
Catalogue variants
- Building Game Engines · Graduate / Professional