Sign up to Coursera courses for free
Welcome to Programming for Level Design, the second course in Unity's Gameplay Programming Specialization!
This course is exam preparation for Unity's Expert Gameplay Programmer Certification Exam. This course will challenge you with a series of realistic programming problems in Unity video-game projects, inspired by one or more of the topics covered in the Expert Gameplay Programmer Exam. Throughout this course, you will work on a 3D “Dual-Stick Survivor” game project. This will help you practice programming for level design, including configuring GameObject physics, spawning Prefabs, designing level logic and behavior, scripting animation systems and events, and working with in-game cinematics.
This is an advanced-level course, intended for industry game developers or very experienced Unity enthusiasts who are looking to “level-up” their gameplay programming and implementation strategies. To succeed in this courses, you should have at least 2-3 years of experience developing games with Unity. You should be familiar with the full-game lifecycle (working from early concept to launch), creating and working with Prefabs, understanding game asset and animation pipelines, and have some experience with Unity Services. You should also have advanced programming skills, particularly in the C# language.
For the first week of this course, you’ll begin working on a Dual-Stick Survivor game incorporating Unity’s physics engine. You’ll begin by deciding what GameObjects needs Colliders and Rigidbodies, and how those should be configured. Then you’ll use these to set up gameplay events. All this has to be done in a efficient, optimized manner. You’ll finish this module with a level in which your game will take place, set up with physical interactions.
Spawning Runtime Prefabs & Effects
The number of objects present in a game can quickly reach astronomical numbers. This can present an organizational and performance problem, which is why spawning objects during runtime and managing effects is crucial. Knowing what to spawn where and how often is a key skill for any game programmer. Balancing these assets will allow you to create bigger, more extravagant games using the same or fewer resources, if you know how to evaluate your game’s needs and the target platform’s capabilities. This week you’ll begin populating your level with Prefabs, Particle Systems, and Effects. You’ll identify objects that should be placed in the Scene file, and those that should be spawned at runtime. The latter will require analysis to make certain it doesn’t impact gameplay negatively. Finally you’ll hook up these spawning items to scene events, making your level feel very responsive to a player’s actions.
Level Logic & Behaviour
Giving life to a scene and a game requires giving it purpose, and purpose demands logic. Driving events through state machines and events allows you to control the game’s flow, and gives the player something to react and think against. Managing your game at the highest level requires thinking about how the whole thing works together. This week you’ll manage your game’s logical flow by introducing Animation System States, State Machine Behaviours, and Animation Events. You’ll need to evaluate the needs of the gameplay in order to trigger events and manage the scene. By analyzing the GDD and using its vision as logic, you’ll begin to bring gameplay to life.
Loading and Unloading Scenes
Most games span multiple levels, and it simply wouldn’t be efficient to include those in one giant scene. Even games that could be one scene would likely benefit from loading and unloading scenes, if they analyze their needs smartly. A clever transition from one scene to another only makes gameplay better. This week you’ll begin adding scenes to your game that you’ll need to load and unload without impacting the player’s experience. By evaluating Unity’s streaming parameters and limits, you’ll devise ways of transitioning users from one part of the game to the other without them even knowing.
Cinematics are a powerful way to progress a story. Whether pre-rendered or realtime, they allow the game to give players an experience they may not be able to get from just straight gameplay, and in certain cases can fill their imagination with details not possible during normal gameplay. This week you’ll add various cinematics to your game, both in-game and pre-rendered. This will require suspending gameplay until after the cinematic has finished playing. You’ll also need to evaluate what post effects are required and assess the impact they’ll have on performance.
Unity Technologies and Dustin Carroll