CISC 326 explores the software architecture of digital games. Software architectures are blueprints that capture the large-scale structure of complex software systems. Software architectures can be used to document a game, to divide it into units split between teams, to ease software reuse, and to support analysis of game development tradeoffs. Software architectures of digital games describe their coarse-grained structure in terms of major components such as game logic, game physics, audio processing, 3D rendering, artificial intelligence and networking. Game architectures also capture local decisions such as standard techniques for manipulating a camera or for controlling an avatar.
After completing this course, students will understand the theory and practice of game architecture. The course will cover the high-level organization of games, entity-based game structures and design patterns for games. Students will learn to use standard notations for describing software architectures, based on the Unified Modeling Language. To gain practical experience in game architecture, students will work on a series of design and development assignments.
The course will include a significant practical component using the Unity game development tool.
All assignment details and submissions, lecture slides, and other necessary information can be found on Moodle.
Where and When
- Tuesday, 12:30-1:30, Jeffrey 234
- Thursday, 11:30-12:30, Jeffrey 234
- Friday, 1:30-2:30, Jeffrey 234
Tuesday, 10:30-11:30, Goodwin 734 (or drop by this office)
Please consult this statement on academic integrity.
- Role of software architecture in game development
- Game development process with focus on SCRUM
- Strategies for architectural design
- Documenting software architectures using the Unified Modeling Language
- Architectural tradeoff analysis
- Design patterns