EECS 498 : Game Engine Architecture
EECS 498 is the University of Michigan’s Game Engine Architecture course (build an engine from scratch).
Learn more at eecs498.com.
From film production, data visualization, and national defense to artistic works, extended realities, and of course– digital games– “Game Engines” have become foundational technology for the diverse industries of our modern world, and the primary output of several $10B+ public corporations. While game engine usage is widespread and well-understood, game engine architecture (how they work under the hood) is a significantly less common category of expertise, requiring a strong knowledge of high-performance and user-expressive design patterns in addition to confidence with lower-level programming.
“EECS 498 : Game Engine Architecture” is a programming-intensive Upper-Level CS Elective that empowers students with the knowledge and experience to…
- Program their own miniature game engines, supporting a set of modern, course-required features.
- Understand the architectural patterns, algorithms, and data structures that power expressive software
- Integrate and utilize open source, industry-standard middleware for windowing, physics, audio, etc.
- Write multi-platform, portable code that may build and run on various operating systems sans changes.
- Build system commonalities (VS, XCode, Make), preprocessor directives, portable types, etc.
- Write multi-language software involving unmanaged host and managed guest (scripting) languages– the former to achieve performance and the latter to expedite content creation, configuration, and iteration.
- Achieve cache-utilization and performance improvements via data-oriented programming.
- Compile-Time / Static Polymorphism, Sparse Sets, spatial locality
- Utilize existing, modern game engines at a very basic level, studying their commonalities.
- Drag-And-Drop / Beginner : MIT Scratch, Game Maker, Construct
- Minimalist : MonoGame, Love2D, PyGame
- Integrated : Unity, Unreal, Godot, PICO-8
- Understand the history and potential future of game engines, including important prior art and engine-induced disasters.
- Exercise version control to ensure the safety and organization of projects over long development cycles.
Students will conclude the course with a portfolio-ready, multi-platform, built-from-the-ground-up game engine meeting strict course standards and containing small customizations of their own design.