mshah.ioCourse ScheduleCourse Information


CPSC 411/511 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-Jan-14
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 Jan. 23 Anywhere on Earth)

(Late Deadline Jan. 30 for up to 90%)
Welcome back to class!

Note: 1st assignment has extra time to accomodate students who add late.
1 2025-Jan-16
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-Jan-21
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 Jan. 30 Anywhere on Earth)

(Late Deadline Feb. 6 for up to 90%)
-- --
2 2025-Jan-23
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
-- --
Add/Drop Period closes Jan. 22 at 5:00pm ET
3 2025-Jan-28
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 Feb. 8 Anywhere on Earth)

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

(Late Deadline Feb. 21 for up to 90%)
-- --
4 2025-Feb-06
Module 8 - Engine Support Systems 1 - 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
-- --
-- --
5 2025-Feb-11
Module 9 - Engine Support Systems 2 - Gameplay Systems & Scripting
  1. Adding Behaviors
  2. pyd
  3. Lua, scripting, and other languages
  4. Hot Reload
PSET 05 Released (Due Feb. 23 Anywhere on Earth)

(Late Deadline Mar. 2 for up to 90%)'
-- --
5 2025-Feb-13
Module 10 - Game Audio
  1. How Sound Works
  2. Audio API Example
  3. Event Queue
  4. --Service Locator
-- --
-- --
6 2025-Feb-18
Module 11 - Game Math 1 - Vectors
  1. Coordinate Systems
  2. Vector Mathematics
  3. Reflection of vectors
  4. Trigonometry - Sine and Cosine
-- --
-- --
6 2025-Feb-20
Module 12 - Game Math 2 - Matrices
  1. Matrix Mathematics
  2. Decomposing a Matrix
-- --
-- --
7 2025-Feb-25
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
PSET 06 Released (Due Mar. 7 Anywhere on Earth)

(Late Deadline Mar. 14 for up to 90%)'
-- --
7 2025-Feb-27
Module 14 - Game Scene Structure 2 - Camera
  1. Virtual Camera and World and Screen Coordinates
PSET 07 Released (Due Apr. 6 Anywhere on Earth)

(Late Apr. 13 for up to 90%)
-- --
8 2025-Mar-04
Module 15 - Putting it all together
  1. Putting a project together
Online exam released on canvas Mar. 3 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)
8 2025-Mar-06
Module 16 - Exam -- no class
  1. No class, online exam
Online exam due on canvas (Exam due Mar. 7 Anywhere on Earth which is precisely Mar. 8 at 8AM EST)
Mid-semester date (Mar. 7)
9 2025-Mar-11
Module 17 - No Class
  1. No class -- enjoy the holiday
-- --
Spring Recess
9 2025-Mar-13
Module 18 - No Class
  1. No class -- enjoy the holiday
-- --
Spring Recess
10 2025-Mar-18
Module 19 - No Class
  1. No class -- enjoy the holiday
-- --
Spring Recess
10 2025-Mar-20
Module 20 - No Class
  1. No class -- enjoy the holiday
-- --
Spring Recess - Mike at GDC, may be slow to respond to e-mail
11 2025-Mar-25
Module 21 - Tiles and Bits
  1. Binary Numbers
  2. Numbers
  3. Bit Masks and Vectors
  4. Random Numbers
  5. Tile Maps
  6. Painters Algorithm
  7. Layering
-- --
-- --
11 2025-Mar-27
PSET08(Due Apr. 11 Anywhere on Earth)

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

Sample of Previous Year Final Projects
12 2025-Apr-01
Module 23 - Physics Engines
  1. Physics Engines
  2. Job of a Physics Engine
  3. Broad Phasing
  4. Spatial Partitioning
  5. Unity3D Physics
  6. Oriented Bounding Boxes
  7. SDL3 Examples of Collision
-- --
Mike traveling to ACCU Conference; class will be pre-recorded and posted at regular time
12 2025-Apr-03
-- --
Mike traveling to ACCU Conference; class will be pre-recorded and posted at regular time
13 2025-Apr-08
Module 25 - 2D Rendering Techniques
  1. Sprite Batching
  2. Sprite Stacking
  3. Using an OpenGL Quad and Shader Programming
-- --
-- --
13 2025-Apr-10
Module 26 - Gameplay Systems
  1. Static and Dynamic Game Worlds
  2. World Chunks
  3. Object Pools
-- --
Your in-class activity today is also your milestone check-in activity.
14 2025-Apr-15
Module 27 - Systems programming - Parallelism/Concurrency
  1. Concurrency vs Parallelism
  2. Thread Examples
  3. Job Systems in Games
-- --
-- --
14 2025-Apr-17
Module 28 - Work day/Flex day and brief intro to SIMD
  1. SIMD Introduction
  2. Remaining time work with teammates on projects
-- --
-- --
15 2025-Apr-22
Module 29 - work day / mini-topic (e.g. profiling code or Fibers) or Reserved for Tentative Industry Guest Speakers
  1. Enjoy guest speakers -- make sure to do in-class activity
  2. Visual Effects
  3. --Maybe slides for operator overloading in D if time allows.
  4. --An Abstraction for creating a 2D Renderer
  5. --Review of any topics before exam
-- --
-- --
15 2025-Apr-24
Module 30 - Course Wrap up and work day
  1. Class Picture!
  2. Review of Course
'Final project due May. 1 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 Thur. May. 1 from 6-8pm in Loria room 250
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!