mshah.ioCourse ScheduleCourse Information
Register New Account


CPSC 4791/5791 Building Game Engines

Pragmatic and technical game development -- Your Instructor

Godot Game Engine
Tooling
The Game Loop!

Schedule/Road Map

The following is our tentative syllabus for the course, changes should be expected throughout the semester. I will announce in class, piazza, or through e-mail any major changes.

Week

Date

Lecture and Readings

Problem Sets

Note(s)

1

Wednesday, 2026-Sep-02
Module 1
Administrivia | Games and Game Engines
  1. Administrivia and Course Logistics
  2. What is a Game and a Game Engine?
  3. Programming Language Choice
  4. Why Build a Game Engine?
  5. Obtaining the course repository
PSET 01 Released (Due Sept. 13 Anywhere on Earth)

(Late Deadline Sept. 20 for up to 90%)
Welcome back to class!
Note: 1st PSET has extra time to accomodate students who add late. Students who add late still need to complete by the deadline shown.

1

Friday, 2026-Sep-04
Module 2
Game Genres, Game Applications, and Game Loops
  1. Game vs Game Engine
  2. Game Genres influence on Game Engine Design
  3. Game Loop
  4. Game Application
-- --
Friday classes do not meet; Monday classes meet instead
Mike Presenting at DConf, lecture will be recorded

1

Monday, 2026-Sep-07
-- --
No Class; Labor Day

2

Wednesday, 2026-Sep-09
Module 4
D Language Review and Q&A
  1. rdmd
  2. Pointers
  3. Stack
  4. Heap
  5. Static
  6. Memory Mapped Files
  7. Procedural
  8. Object-Oriented
  9. Functional
  10. Generic
  11. Deque Data Structure
PSET 02 Released (Due Sept. 20 Anywhere on Earth)

(Late Deadline Sept. 27 for up to 90%)
Add/Drop Period closes Sept. 11 at 5:00pm ET

2

Monday, 2026-Sep-14
Module 5
SDL Basics: Dub Setup,SDL Basics,2D Primitives and Framerate
  1. Modules and Packages in D
  2. Compiling and Linking
  3. Introduction to SDL
  4. Introduction to Dub
  5. SDL Subsystems
  6. SDL Event Loop
  7. Basic Terminology of 2D Rendering
  8. Basics of 2D Rendering in SDL
  9. Frame Capping
  10. Frame Independent Movement
PSET 03 Released (Due Sept. 25 Anywhere on Earth)

(Late Deadline Oct. 02 for up to 90%)
-- --

3

Wednesday, 2026-Sep-16
Module 6
Sprite Animation, Bitmap Fonts, and State Machines
  1. Sprite Animation
  2. Bitmap Fonts
  3. State Pattern
-- --
Mike at CPPCON, Alvin will lead lecture

3

Monday, 2026-Sep-21
Module 7
Game Object and Component Pattern
  1. core.atomic
  2. Game Objects/Game Entities/Game Actor
  3. Component Pattern
PSET 04 Released (Due Oct. 04 Anywhere on Earth)

(Late Deadline Oct. 11 for up to 90%)
-- --

4

Wednesday, 2026-Sep-23
Module 8
Engine Support Systems 1 - Gameplay Systems & Scripting
  1. Adding Behaviors with Script Components
  2. pyd
  3. Lua, scripting, and other languages
  4. Virtual Machines / Bytecode pattern
  5. Hot Reload
-- --
-- --

4

Monday, 2026-Sep-28
Module 9
Engine Support Systems 2 - Resource Managers and File Systems
  1. Resource Manager
  2. Static Classes and Resource Management discussion
  3. File Systems
  4. File Compression with .zip
  5. Asset Pipeline
  6. Mention of flyweight pattern
PSET 05 Released (Due Oct. 09 Anywhere on Earth)

(Late Deadline Oct. 16 for up to 90%)'
-- --

5

Wednesday, 2026-Sep-30
Module 10
Game Audio
  1. How Sound Works
  2. Audio API Example
  3. Event Queue
  4. --Service Locator
-- --
-- --

5

Monday, 2026-Oct-05
Module 11
Game Math 1 - Vectors
  1. Coordinate Systems
  2. Vector Mathematics
  3. Reflection of vectors
  4. Trigonometry - Sine and Cosine
-- --
-- --

6

Wednesday, 2026-Oct-07
Module 12
Game Math 2 - Matrices
  1. Matrix Mathematics
  2. Decomposing a Matrix
PSET 06 Released (Due Oct. 18 Anywhere on Earth)

(Late Deadline Oct. 27 for up to 90%)'
-- --

6

Monday, 2026-Oct-12
Module 13
Game Structure 1 - Scene Tree, Scene Structure, Serialization
  1. Hierarhical Transformations
  2. Scene Tree Organization
  3. Scene Structure
  4. Serialization/Deserialization (Text and Binary Files)
  5. --Serialization challenges: Floats, variable-length data (and using template constraints for 'serialize()' member function)
  6. Meta-programming in D for serialization
-- --
Final Project Specification Out
Please do the in-class activity for your team survey -- this is graded!

7

Wednesday, 2026-Oct-14
Module 14
Game Scene Structure 2 - Camera and Partitioning
  1. Virtual Camera and World and Screen Coordinates
  2. Spatial Partitioning for camera and rendering
-- --

7

Monday, 2026-Oct-19
Exam taken during class
Exam otherwise includes any other materials from lecture, slides, and homeworks.

8

Wednesday, 2026-Oct-21
-- --
October Recess

8

Monday, 2026-Oct-26
PSET 07 Released (Due Nov. 02 Anywhere on Earth)

(Late Nov. 09 for up to 90%)
-- --

9

Wednesday, 2026-Oct-28
-- --
Tentative Guest Speaker from XYZ company
I am expecting everyone enrolled to attend (the video will not be posted until after the exam).

9

Monday, 2026-Nov-02
-- --
-- --

10

Wednesday, 2026-Nov-04
PSET08(Due Nov. 11 Anywhere on Earth)

(Late Deadline Nov. 18 for up to 90%)
-- --

10

Monday, 2026-Nov-09
-- --

11

Monday, 2026-Nov-16
-- --
Complete the 'alpha' portion of your final project by end of day.

12

Wednesday, 2026-Nov-18
-- --
Mike presenting at Graphics Programming Conference in Europe -- class pre-recoreded

12

Monday, 2026-Nov-23
-- --
November Recess

13

Wednesday, 2026-Nov-25
-- --
November Recess

13

Monday, 2026-Nov-30
-- --
We will be checking for your 'beta' milestone deliverable two days after this lecture.

15

Wednesday, 2026-Dec-09
'Final project due Dec. 16th at noon ET. (Note: No extensions for final project; 10% late penalty every day project is late)
Last official day of class :(
Final Project presentations will be Dec. 16 from 5-7pm in Loria 250
Please do not redistribute or host any materials without e-mailing me first. Thank you for your time!