Game Engine Programming

This course is designed to help students understand, modify, and develop game engines.

Course Number: 16-465

This course is designed to help students understand, modify, and develop game engines. Game engines consist of reusable runtime and asset pipeline code. They provide game-relevant abstractions of low-level system services and libraries, making it easier to write bug-free games that work across multiple platforms. Game engines also handle artistic content, providing or integrating with authoring tools to ease the process of creating high-fidelity games. In this course, we will discuss the problems game engines attempt to solve, examine how current state-of-the-art engines address these problems, and create our own engines based on what we learn. We will cover both the content authoring and runtime aspects of engines. Coursework will consist of frequent, tightly-scoped programming and system design assignments; expeditions through game engine source code; and two group projects -- one in an engine created from scratch, and one that requires modification of an existing engine. Prerequisites: Students will be expected to be fluent in at least one programming language. We will be working with C++, Javascript, and a smattering of Python. We will be using git for version control and code sharing. The assignments in the course will be designed to be completed on an OSX or Linux workstation (e.g. the IDeATe "virtual cluster"). Working with Windows will be possible, but might require extra effort. We will be building a 3D model pipeline around Blender, but no prior knowledge of the tool will be assumed.

Spring 2015 instructor: Jim McCann

Course Type:
Offered By:

View All Courses

Catchable fatal error: Argument 1 passed to Concrete5_Library_FilePageCache::set() must be an instance of Page, string given, called in /home/ideatecm/public_html/concrete/core/libraries/view.php on line 976 and defined in /home/ideatecm/public_html/concrete/core/libraries/page_cache/types/file.php on line 56