Semester(s) Offered: Spring
Credits: 4
Course Call Number: GAMES-UT 126
Prerequisite(s): Introduction to Game Development (and familiarity with Unity Game Engine in C#)

“Procedural generation” describes the broad category of techniques by which elements of digital games that have traditionally been designed by hand (e.g. levels, characters, puzzles, and narrative) can be designed by automated processes. In recent years, these techniques have been a major topic of interest for computer science research as well as a core design component of many commercially successful games. The course will teach students to understand and implement these techniques, and explore how to best combine procedural generation techniques with good design practice to produce interesting and novel experiences (rather than just using procedural generation techniques for technical curiosity). Emphasis is also placed on how procedural generation can uniquely harness the affordances of computers for designing games. The course is fundamentally practical. While students will study existing a games and techniques, they will also produce games of their own across the three assignments.

Upon completion of this course, the student will:
1) Learn the theoretical concepts necessary to understand procedural generation techniques.
2) Experience implementing common procedural generation techniques in actual games.
3) Learn to identify the places where procedural generation can be beneficial, and how to integrate it with other elements of a game’s design.
4) Learn how to “design procedurally” and find the right balance between automation and pre-designed content.
5) Learn how to develop completely new procedural generation techniques using existing tools and theoretical frameworks.