CISC-326/3.0 Game ArchitectureOriginal Author: Nick Graham
Last Revised: February 23, 2011
An introduction to software architectural design through the application domain of game development. Topics will include notations for expressing static and dynamic aspects of software architecture, design patterns, interface design, and application of these techniques to 3D games, mobile games and web-based games.
Prerequisites: CISC-220/3.0 and CISC-235/3.0. CISC-226/3.0 is recommended.
This course will teach students the fundamentals of software architectural design for computer games. The software architectural techniques will be applicable to other forms of software.
Computer games have become a rich application domain for the study of software architecture. Games range from small-footprint applications running on handheld devices through complex distributed systems with enterprise-class servers. Reference architectures for different classes of games have emerged, such as for "AAA" console games, mobile handheld games and web-based games. As complex systems developed by large, multi-disciplinary teams, a strongly defined architecture is core to allowing parallel work of the development team, and for creating the tools necessary to allow efficient work.
The core of the course will be devoted to the architectural design of games. To provide a breadth of architectural styles, specific game types will be considered, specifically 3D console/PC games, games on mobile handsets, and web-based games. This will expose students to the component-level organization of commercial console games, architectures for games developed under the constraints of mobile platforms, and web architectures such as Ajax and Comet.
The architectural techniques examined will be broadly applicable. Students will be exposed to classical design patterns, component decomposition, interface specification and techniques for architectural evaluation. The technological platforms considered (e.g., mobile devices and the web) are of broad interest outside the gaming domain.
Students will perform design and implementation exercises to reinforce the material conveyed in lectures. These exercises will expose the students to the practicalities of the different architectural styles presented in the course.