Semester(s) Offered: Spring / Summer
Credits: 4
Course Call Number: GAMES-GT 302
Prerequisite(s): Code Lab 0 (or permission from instructor)
Taught By: Jack Schlesinger / Chris Wallace / AP Thomson / Matt Parker

Unity is currently one of the premiere Game Engines, used for developing games for almost every platform imaginable. It boasts a powerful GUI (Graphical User Interface) that allows for easy configuration and setup of games and an asset store that provides thousands of resources for game development. However, the heart Unity is the entity component model, which centers around game objects with components scripts added to them to control everything from display to behaviors to interaction. Using the C# programming language, we will explore how to use code that can go beyond the built in systems in Unity to create original and diverse games. In addition to simply learning to program, students in this class will explore models and algorithms useful for developing games. We will discuss how platforms, libraries, frameworks, and engines affect game design, in both empowering and limiting ways. Finally, we will discuss the history of digital games, how new tools have democratized the process of game development, and the costs and benefits of those trends.

Upon completion of this course, the student will:
1) Develop a working knowledge of Unity.
2) Gain an understanding of C#.
3) Understand the conceptual foundations of computer programming.
4) Grasp the logical context of games as interactive systems.
5) Think like a coder, become one.
6) Be introduced to the best practice techniques of game software development.