Keith J. O'Hara


CMSC 336

Games Systems: Platforms, Programs & Power (S2022)

overview | logistics | schedule | assignments | github | resources

This course studies games using the lens of computing systems; exploring the design and implementation of historic and modern computing systems for games, including the hardware, software, and their interface. For more than the sake of automation or communication, games have exploited a unique affordance of computers, the ability to simulate & ask questions of "what if?" This course will go beyond only creating games, and will challenge students to critically reflect on how the architectural and programming choices in games can encode inequality and particular worldviews procedurally, as much as other game elements like visuals, audio and narrative. We will cover the low-level aspects of games platforms: graphics programming, networking, and peripherals; mid-level concerns: software engineering, design patterns, concurrency, and interfaces; and higher-level issues related to emulation, ethics, platform studies and media archaeology. Prerequisites: CMSC 201, Data Structures.