mshah.ioCourse ScheduleCourse Information


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.
WeekDateLecture and ReadingsProblem SetsNote(s)
1 2025-Aug-27
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. 7 Anywhere on Earth)

(Late Deadline Sept. 14 for up to 90%)
Welcome back to class!

Note: 1st assignment has extra time to accomodate students who add late.
1 2025-Sep-01
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
-- --
-- --
2 2025-Sep-03
Module 3 - 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. 14 Anywhere on Earth)

(Late Deadline Sept. 21 for up to 90%)
Add/Drop Period closes Sept. 5 at 5:00pm ET
2 2025-Sep-08
Module 4 - Introducing SDL: Dub Setup and SDL Basics
  1. Modules and Packages in D
  2. Compiling and Linking
  3. Introduction to SDL
  4. Introduction to Dub
  5. SDL2 Subsystems
  6. SDL2 Event Loop
-- --
-- --
3 2025-Sep-10
Module 5 - SDL Basics 1: 2D Graphics Basics and Framerate
  1. Basic Terminology of 2D Rendering
  2. Basics of 2D Rendering in SDL2
  3. Frame Capping
  4. Frame Independent Movement
PSET 03 Released (Due Sept. 21 Anywhere on Earth)

(Late Deadline Sept. 28 for up to 90%)
-- --
3 2025-Sep-15Module 6 - Game Object and Component Pattern
-- --
Mike Tentatively at CPPCON, will host lecture remotely or pre-record
4 2025-Sep-17Module 7 - Sprite Animation, Bitmap Fonts, and State Machines
PSET 04 Released (Due Sept. 28 Anywhere on Earth)

(Late Deadline Oct. 5 for up to 90%)
Mike Tentatively at CPPCON, will host lecture remotely or pre-record
4 2025-Sep-22Module 8 - Engine Support Systems 1 - Resource Managers and File Systems
-- --
-- --
5 2025-Sep-24Module 9 - Engine Support Systems 2 - Gameplay Systems & Scripting
PSET 05 Released (Due Oct. 5 Anywhere on Earth)

(Late Deadline Oct. 12 for up to 90%)'
-- --
5 2025-Sep-29Module 10 - Game Audio
-- --
-- --
6 2025-Oct-01Module 11 - Game Math 1 - Vectors
PSET 06 Released (Due Oct. 12 Anywhere on Earth)

(Late Deadline Oct. 19 for up to 90%)'
-- --
6 2025-Oct-06Module 12 - Game Math 2 - Matrices
-- --
-- --
7 2025-Oct-08Module 13 - Game Structure 1 - Scene Tree, Scene Structure, Serialization
PSET 07 Released (Due Oct. 19 Anywhere on Earth)

(Late Oct. 26 for up to 90%)
-- --
7 2025-Oct-13Module 14 - Game Scene Structure 2 - Camera
-- --
-- --
8 2025-Oct-15Module 15 - No Class
-- --
October Recess
8 2025-Oct-20Module 16 - Putting it all together
Online exam released on canvas Oct. 20 at 6:00pm EST
Brief Study Guide Link (Click me).

Exam otherwise includes any other materials from lecture, slides, and homeworks. You must finish the exam in one sitting (i.e. when you open the exam, your time starts)
9 2025-Oct-22Module 17 - Online Exam -- no class
Online exam due on canvas (Exam due Oct. 27 Anywhere on Earth which is precisely Oct. 27 at 8AM EST)
Mike tentatively away at Code::Dive
9 2025-Oct-27Module 18 - Tiles and Bits
-- --
-- --
10 2025-Oct-29Module 19 - Final Project Group Activity with Engine Study
PSET08(Due Nov. 5 Anywhere on Earth)

(Late Deadline Nov. 12 for up to 90%)
Final Project Specification Out

Sample of Previous Year Final Projects
10 2025-Nov-03Module 20 - Physics and Collision
-- --
-- --
11 2025-Nov-05Module 21 - Gameplay Systems - Devices, GUI, and Command Pattern
-- --
-- --
11 2025-Nov-10Module 22 - 2D Rendering Techniques
-- --
-- --
12 2025-Nov-12Module 23 - Gameplay Systems/Object Pools
-- --
Your in-class activity today is also your milestone check-in activity.
12 2025-Nov-17Module 24 - Systems programming - Parallelism/Concurrency
-- --
-- --
13 2025-Nov-19Module 25 - TBD
-- --
-- --
13 2025-Nov-24Module 26 - No Class
-- --
November Recess
14 2025-Nov-26Module 27 - No Class
-- --
November Recess
14 2025-Dec-01Module 28 - Work day/Flex day and brief intro to SIMD
-- --
-- --
15 2025-Dec-03Module 29 - work day / mini-topic (e.g. profiling code or Fibers) or Reserved for Tentative Industry Guest Speakers
-- --
-- --
15 2025-Dec-08Module 30 - Course Wrap up and work day
'Final project due Dec. 10 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. 10 from 6-8pm in TBD
Please do not redistribute or host any materials without e-mailing me first. I generally am happy to share the latest .pdf or slide presentation with those who ask. Thank you for your time!