Semester(s) Offered: Fall
Credits: 4
Course Call Number: GAMES-GT 303
Prerequisite(s): Code Lab 1 (or permission from instructor)
Taught By: Jack Schlesinger / AP Thomson / Matt Parker

Code Lab 2 takes the foundational knowledge in game programming students learned in Code Labs 0 and 1 and develops on it to help students become competent and confident game programmers. The main skills a game programmer needs are as follows:

● Designing the underlying structure and architecture of a game
● Creating robust and flexible systems that thrive in a playtesting-focused development environment
● Understanding and working with code from other developers – whether members of the same team, open source projects, or examples provided in tutorials and readings.
● Understanding API’s and other documentation to use a game engine successfully.
● Understanding core programming concepts to work in any programming language.
● Comfort using version control over the entire lifecycle of a game.

Over the course of the class, students will take versions of existing games that are incomplete or have an obvious bug. They will learn to read the code, identify how to correct the issue(s) with the game, and modify the code to make their own version of the game. Code reviews, best practices, and how to approach shared code will also be covered.

Upon completion of this course, the student should possess:
1) A deeper working knowledge of gameplay programming, Unity, and C#.
2) A firm knowledge of the inner workings and use of version control systems.
3) The ability to read and comprehend other’s code.
4) Techniques for approaching new languages and game engines.