With the increased performance capabilities of PCs, applications have a lot of extra resources to waste, making it easier to get a decent frame rate without optimising your game.
This is certainly not the case on mobile platforms, however, and trying to build a game can be extremely tricky if you do not have the knowledge on how to profile your app and predict the performance costs of the features you implement.
In this course we'll cover fundamental concepts such as how each frame is processed by the CPU and GPU, as well as what role memory usage plays, all the way to more practical topics and how to profile your game.
Each subject that's covered also includes various links to articles and documentation, making this course a useful shortcut to other resources.
The aim of this course is to give you a running start into the mysterious world of game optimisation and will mainly focus on teaching the underlying principles of various optimisation techniques, as well as when to use them.
A quick look at what we will be covering throughout this course!
Goes over some of the topics we will cover in this course.
Goes over the basics of how your CPU and GPU work together to create each game frame and how to tell whether your application is CPU or GPU bound.
Covers what draw calls are and how they effect your CPU, as well as the basics of draw call batching.
Memory is an essential component of any computer and both your CPU & GPU depend upon it to function properly.
This lecture covers how memory usage relates to your games performance and what data will be stored.
In this lecture, we'll find out how to profile our game directly within Unity using the rendering statics window, as well as how to use the internal profiler for mobile devices to see more detailed information.
Using an example scene, we'll look at how to profile our game in xCode and find potential performance issues.
This quiz will test you on the topics covered in the fundamentals section of this course.
In this lecture we'll compare dynamic and static batching to see the requirements of each and how these optimisation techniques can be useful.
In this lecture we will go into more detail on the differences between static and dynamic batching. Also, we will take a look at some examples of how batching can be broken, e.g. through:
Here we will cover some of the common questions regarding imported meshes in Unity and the impact that vertex count can have on your game.
Covers image import settings and the different native compression formats used on mobile platforms.
Again we will take a look at different import settings and compare the performance benefits of various load types.
Using multiple example scenes we'll cover topics such as overdraw, transparency, shader costs, and lighting.
In the final lecture of this course, we will take a brief look at lightmapping and occlusion culling, as well as the performance gain / cost of common game features and optimisation techniques.
This lecture consists of materials shown in the previous lecture to visualize the performance gain / costs of common game features and optimisation techniques.
This quiz will test you on the topics covered in the general optimisations section of this course.
I'm a self-taught game developer, with experience in other areas such as web development. I discovered the Unity game engine four years ago and have since been learning as much as I can about developing and optimising games.
Throughout the past few years I have had the opportunity to work with talented 3D animators and have recently started a small company Byte Sheep Digital.