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-8: January 20 - March 6 | Build Blade Racer & Master 13 Design Patterns

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

📝 Midterm Exam

Thursday, March 5, 2026 | All 13 design patterns + Blade Racer implementation

🎨 Phase 2: Personal Project Workshop

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

📖 Final Exam

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