The purpose of this course is twofold: to provide a strong foundation in software engineering, programming, and the C# language; and to work on all major aspects of developing video games using the Unity engine. These two purposes are closely tied: a large part of video game development centers on programming and software development, and to be a game developer requires a high level of knowledge in a modern, object-oriented language like C#. Through this course, students will learn programming by working on games, and will learn to write code to run every part of their game, from physics to AI to game servers. Rather than focusing narrowly on topics needed to make games, this course will teach you to be a programmer with a solid foundation. This course will allow you to be able to enter any programming field you'd like, from mobile apps to web servers.