Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.


Performance Optimization in Unity

Unity via Coursera

This course may be unavailable.


Unity Expert Gameplay Programmer Certification Preparation Specialization Important Update -
- The Unity Expert Gameplay Programmer Certification Preparation Specialization will close for enrollment on August 21, 2020.
- If you are interested in earning a Specialization Certificate, please upgrade or apply for Financial Aid in each course of the specialization by August 20, 2020, if you have not already done so. After August 21, 2020, learners will no longer have access to courses they have not paid for.
- In order to earn a Specialization Certificate, you will need to complete all graded assignments, including peer reviews, by February 17, 2021. After that point, no new assignment submissions will be accepted for Certificate credit.

Welcome to Performance Optimization in Unity, the fourth 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 learn various optimization techniques, including: optimizing for different platforms, understanding how platform differences can impact gameplay, using Asset Bundle configuration tools, gameplay debugging, and rendering optimization. By the end of this course, you will optimize a 3D "Dual-Stick Survivor" game project for WebGL.

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.


Rendering Optimization
-For the first week of this course, you’ll begin by optimizing your rendering process. You’ll need to take advantage of Occlusion Culling and LODs to achieve this. By analyzing fill rates and hunting down drops in the frame rate, you’ll make sure your game is displaying smoothly to your user.

Asset Bundles
-Long gone are the days of games released and considered final. DLC has expanded the life expectancy of games, some even into decade-long legacies. Other games have found great success in offer customizations that can be downloaded. The rise in mobile gaming has seen DLC as a means on minimizing wait times for players. Unity’s Asset Bundles provide a solution to all these situations, and more for the clever programmer.

This week you’ll be determining the optimal configurations to support efficient Asset Bundle integration with your game. You’ll need to analyze needs and issues to determine the best package sizes and methods, and determine the solutions required.

Gameplay Debugging
-As games get more complex, so do our bugs. Even if every line of code worked on the first try (it never does) you’d still stumble across strange behaviours arising from unforeseen interactions or unintended behaviours. Not every bug is a game-killer, though, and learning to prioritize those from the annoying-but-harmless is a key skill of any programmer.

This week you’ll be debugging your game for issues in level gameplay, NPC interaction, and scene transitions. Of course, every issue requires a solution, though some bugs will need to be prioritized ahead of others. After identifying what needs immediate fixing, it will be your duty to recommend solutions based on scene analysis.

Platform Constraints
-Not all the platforms are the same, and games that plan to run on multiple platforms have to take this into consideration. Beyond the differences between one computer and the next, today’s gaming market spans smartphones, tablets, and consoles. Users are viewing games on phone screens and widescreen televisions and VR goggles. They’re mashing buttons, tilting controllers, gesturing, and literally yelling commands. How does that affect your game?

This week you’ll consider the impact different platforms have on the input methods available to the user. You’ll also analyze what storage and system resources are available per platform, and devise methods for running your game under those constraints.

Platform Optimization
-Players expect a game to run smoothly on the device it’s advertised for. Games that drop frames or consume too much memory will lead to frustration. Thankfully there are a number of tools to help us identify and solve such issues before they ever reach our players, even across multiple platforms. This week you’ll start optimizing your game’s performance using the Profiler. You’ll need to analyze what resources you’re using, including CPU, GPU, and system memory. Your game has to run within budget, every frame, and potentially for long periods of time across multiple build targets.

Taught by

Unity Technologies and Dustin Carroll


Start your review of Performance Optimization in Unity

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.