Semester(s) Offered: Spring
Credits: 4
Course Call Number: GAMES-GT 251
Prerequisite(s): (Student should be fluent in C#, have game development experience, and be familiar with Unity)

Gameplay programming is a mess. Once you’ve factored out engine-level systems like graphics and physics, what remains is a complex tangle of concepts and relationships – often unique to your game – that can be difficult to express clearly in code.

The goal of this class is to provide students with a set of techniques – applicable across different languages, genres and game engines – that can help tame that complexity. To achieve that goal student will develop a game in Unity over the course of the semester. Most weeks we will introduce a new technique and add a feature to the game that highlights the utility of the technique.

Upon completion of this course, the student will:
1) Learn how to write code that is more flexible and adaptable to changes in the game’s design.
2) Learn approaches to managing the complexity of gameplay programming.
3) Develop a “toolbox” of useful C# code that they can use in other Unity projects and adapt to other languages.
4) Develop a small game and refine it over the course of the class.