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 Wednesday,
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 PSET has extra time to accomodate students who add late. Students who add late still need to complete by the deadline shown.
1 Friday,
2025-Aug-29
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
2 Monday,
2025-Sep-01
Module 3 - No Class
-- --
No Class; Labor Day
2 Wednesday,
2025-Sep-03
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. 14 Anywhere on Earth)

(Late Deadline Sept. 21 for up to 90%)
Add/Drop Period closes Sept. 5 at 5:00pm ET
3 Monday,
2025-Sep-08
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. 21 Anywhere on Earth)

(Late Deadline Sept. 28 for up to 90%)
-- --
3 Wednesday,
2025-Sep-10
Module 6 - Sprite Animation, Bitmap Fonts, and State Machines
  1. Sprite Animation
  2. Bitmap Fonts
  3. State Pattern
-- --
-- --
4 Monday,
2025-Sep-15
Module 7 - Game Object and Component Pattern
  1. core.atomic
  2. Game Objects/Game Entities/Game Actor
  3. Component Pattern
PSET 04 Released (Due Sept. 28 Anywhere on Earth)

(Late Deadline Oct. 5 for up to 90%)
-- --
4 Wednesday,
2025-Sep-17
Module 8 - Engine Support Systems 1 - Gameplay Systems & Scripting
  1. Adding Behaviors with Script Components
  2. pyd
  3. Lua, scripting, and other languages
  4. Hot Reload
-- --
Mike at CPPCON, lecture will be pre-recorded and posted on module page for you to watch.
5 Monday,
2025-Sep-22
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. 5 Anywhere on Earth)

(Late Deadline Oct. 12 for up to 90%)'
-- --
5 Wednesday,
2025-Sep-24
Module 10 - Game Audio
  1. How Sound Works
  2. Audio API Example
  3. Event Queue
  4. --Service Locator
-- --
-- --
6 Monday,
2025-Sep-29
Module 11 - Game Math 1 - Vectors
  1. Coordinate Systems
  2. Vector Mathematics
  3. Reflection of vectors
  4. Trigonometry - Sine and Cosine
-- --
-- --
6 Wednesday,
2025-Oct-01
Module 12 - Game Math 2 - Matrices
  1. Matrix Mathematics
  2. Decomposing a Matrix
PSET 06 Released (Due Oct. 22 Anywhere on Earth)

(Late Deadline Oct. 29 for up to 90%)'
-- --
7 Monday,
2025-Oct-06
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,
2025-Oct-08
Module 14 - Game Scene Structure 2 - Camera and Partitioning
  1. Virtual Camera and World and Screen Coordinates
  2. Spatial Partitioning for camera and rendering
-- --
8 Monday,
2025-Oct-13
Module 15 - Topic: Guest Speaker from Unity3D -- Everyone should attend class
-- --
Guest Speaker from Unity3D

I am expecting everyone enrolled to attend (the video will not be posted until after the exam).
8 Wednesday,
2025-Oct-15
Module 16 - No Class
-- --
October Recess
9 Monday,
2025-Oct-20
Module 17 - Putting it all together
Online exam released on canvas Oct. 20 at 6:00pm EST

PSET 07 Released (Due Nov. 2 Anywhere on Earth)

(Late Nov. 9 for up to 90%)
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 Wednesday,
2025-Oct-22
Module 18 - 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 will be away at Code::Dive

Please remember to do the in-class activity.
10 Monday,
2025-Oct-27
Module 19 - Tiles and Bits
-- --
-- --
10 Wednesday,
2025-Oct-29
Module 20 - Final Project Group Activity with Engine Study
PSET08(Due Nov. 5 Anywhere on Earth)

(Late Deadline Nov. 12 for up to 90%)
-- --
11 Monday,
2025-Nov-03
Module 21 - Physics and Collision
-- --
-- --
11 Wednesday,
2025-Nov-05
Module 22 - Gameplay Systems - Devices, GUI, and Command Pattern
PSET09(Due Nov. 17 Anywhere on Earth)

(Late Deadline Nov. 24 for up to 90%)
Your in-class activity today is also your milestone check-in activity.
12 Monday,
2025-Nov-10
Module 23 - 2D Rendering Techniques
-- --
-- --
12 Wednesday,
2025-Nov-12
Module 24 - Guest lecture from Demiurge -- (Slides on other topic: Work day/Flex day and brief intro to SIMD)
-- --
Demiurge Studio Guest Lecture on Game Engines.

I am expecting everyone enrolled to attend.
13 Monday,
2025-Nov-17
Module 25 - Gameplay Systems/Object Pools
-- --
-- --
13 Wednesday,
2025-Nov-19
Module 26 - Systems programming - Parallelism/Concurrency
-- --
Mike presenting at Graphics Programming Conference in Europe -- class may be remote, stay tuned
14 Monday,
2025-Nov-24
Module 27 - No Class
-- --
November Recess
14 Wednesday,
2025-Nov-26
Module 28 - No Class
-- --
November Recess
15 Monday,
2025-Dec-01
Module 29 - work day / mini-topic (e.g. profiling code or Fibers) or Reserved for Tentative Industry Guest Speakers
-- --
-- --
15 Wednesday,
2025-Dec-03
Module 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!