Game Programming

CSCI 3213 - Spring 2026

Instructor: Bobby Reed | Oklahoma City University

🎮 Course Overview

Welcome to Game Programming! This course teaches professional game development using Unity 2021.3.45f2 LTS and C# with industry-standard design patterns. You'll build Blade Racer (guided class project) while learning 13 essential design patterns, then create your own Unity game in our workshop-based second half.

Course Information:

Two-Phase Learning Model:

📚 Course Literature & Resources

📅 Course Schedule - Spring 2026

🎮 Phase 1: Unity Patterns - Intensive Learning

Weeks 2-9: January 20 - March 10 | Build Blade Racer & Master 13 Design Patterns

Lecture 2
Singleton Pattern
📅 Tuesday, January 20
Generic Singleton<T> implementation, Game Manager pattern, DontDestroyOnLoad persistence
Creational Pattern
Lecture 3
State Pattern
📅 Thursday, January 22
Finite State Machines (FSM), BikeController states (Stop/Start/Turn/Crash), Context and IState interface
Behavioral Pattern
Lecture 4
Event Bus Pattern
📅 Tuesday, January 27
Publish-subscribe architecture, RaceEventBus implementation, UnityEvent dictionary, decoupling game systems
Service Pattern
Field Trip
Motion Capture Day
📅 Thursday, January 29
Field trip to the motion capture lab. Experience professional motion capture technology used in game development and film production.
Lecture 5
Command Pattern
📅 Tuesday, February 3
Encapsulating actions as objects, recording and replay systems, Invoker and Command structure
Behavioral Pattern
Lecture 6
Object Pool Pattern
📅 Thursday, February 5
Unity 2021+ ObjectPool<T> API, drone spawning and recycling, performance optimization, garbage collection benefits
Creational Pattern
Lecture 7
Observer Pattern
📅 Tuesday, February 10
One-to-many relationships, Subject-Observer structure, BikeController → HUD/Camera/Audio notifications
Behavioral Pattern
Lecture 9
Visitor Pattern
📅 Thursday, February 12
Power-up system implementation, double dispatch technique, adding operations without modifying classes
Behavioral Pattern
Lecture 10
Strategy Pattern
📅 Tuesday, February 17
Enemy drone AI behaviors, three attack maneuvers, interchangeable algorithms at runtime
Behavioral Pattern
Lecture 11
Decorator Pattern
📅 Thursday, February 19
Weapon system with upgrades, weapon attachments (Injector, Stabilizer, Cooler), dynamic capability extension
Structural Pattern
Lecture 12
Spatial Partition Pattern
📅 Tuesday, February 24
Level editor optimization, grid-based collision detection, stack-based segment loading, performance for large worlds
Structural Pattern
Lecture 13
Adapter Pattern
📅 Thursday, February 26
System integration and compatibility, Object Adapter vs Class Adapter, third-party inventory integration
Structural Pattern
Lecture 14
Facade Pattern
📅 Tuesday, March 3
Simplifying complex subsystems, bike engine facade example, unified interface design
Structural Pattern
Lecture 15
Service Locator Pattern
📅 Thursday, March 5
Managing dependencies globally, service registration and retrieval, Unity services integration (Analytics, Ads, Logging)
Service Pattern

📝 Midterm Exam

Tuesday, March 10, 2026 | All 13 design patterns + Blade Racer implementation

🎨 Phase 2: Personal Project Workshop

Weeks 9-16: March 12 - April 30 | Create Your Own Unity Game

📖 Final Exam

Thursday, May 8, 2026 | 8:00-10:00 AM | Comprehensive exam covering all patterns