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. 20 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. 20 Anywhere on Earth)

(Late Deadline Feb. 27 for up to 90%)'
-- --
5 2025-Feb-13Module 10 - Game Audio
-- --
-- --
6 2025-Feb-18Module 11 - Game Math 1 - Spaces
PSET 06 Released (Due Mar. 1 Anywhere on Earth)

(Late Deadline Mar. 8 for up to 90%)'
-- --
6 2025-Feb-20Module 12 - Game Math 2 - Vectors
-- --
-- --
7 2025-Feb-25Module 13 - Game Math 3 - Matrices
PSET 07 Released (Due Mar. 7 Anywhere on Earth)

(Late Deadline Mar. 14 for up to 90%)
-- --
7 2025-Feb-27Module 14 - Game Math 4 - Hierarchical Transformations
-- --
-- --
8 2025-Mar-04Module 15 - Scene Management
Online exam released on canvas Mar. 3 at 6:00pm EST

PSET 08 Released (Due Mar. 26 Anywhere on Earth)

(Late Deadline Mar. 13 for up to 90%)
Brief Study Guide. 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-06Module 16 - SDL Basics 2: Tilemaps, Visual Effects and Command Pattern
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-11Module 17 - No Class
-- --
Spring Recess
9 2025-Mar-13Module 18 - No Class
-- --
Spring Recess
10 2025-Mar-18Module 19 - No Class
-- --
Spring Recess
10 2025-Mar-20Module 20 - No Class
-- --
Spring Recess - Mike at GDC, may be slow to respond to e-mail
11 2025-Mar-25Module 21 - Engine Support Systems 3 - Serialization and D Language Templates
PSET09(Due Apr. 1 Anywhere on Earth)

(Late Deadline Nov. Apr. 4 for up to 90%)
-- --
11 2025-Mar-27Module 22 - Final Project Team Formation and Engine Study
PSET09(Due Apr. 13 Anywhere on Earth)

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

Sample of Previous Year Final Projects
12 2025-Apr-01Module 23 - Reserved for Tentative Industry Guest Speakers / or work day
-- --
Mike Tentatively traveling to ACCU Conference; class will be pre-recorded or asynchronous remote
12 2025-Apr-03Module 24 - Physics, Spatial Partitioning, and Culling
-- --
Mike Tentatively traveling to ACCU Conference; class will be pre-recorded or asynchronous remote
13 2025-Apr-08Module 25 - Gameplay Systems and Object Pools
-- --
-- --
13 2025-Apr-10Module 26 - Devices, GUI, and Command Pattern
-- --
-- --
14 2025-Apr-15Module 27 - 2D Rendering Techniques
-- --
-- --
14 2025-Apr-17Module 28 - Systems programming - Parallelism/Concurrency
-- --
-- --
15 2025-Apr-22Module 29 - Work day/Flex day and brief intro to SIMD
-- --
-- --
15 2025-Apr-24Module 30 - Course Wrap up and work day
'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 tentatively be Thr. May. 1 from 4-6pm in ???
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!