To make mobile games or high graphics mobile apps run smoothly, we’d need to have a look at improving or optimizing the app’s performance.
Compared to a gaming computer, mobile phones have way less processing ability to render frames effectively. This is because a gaming computer has a dedicated graphical processor (graphic card or cards) but mobile phones less so, only gaming specific mobile phones like Razer or latest iPhones would have a dedicated graphical processor. Below is a list of tips to improve your mobile games performance:
Picking the level of graphical details for your mobile game.
Richly detailed and high definition life like graphics on mobile can limit the processing resources for other tasks in your game, e.g. calculating physics, audio sync, etc.
This process will drain your mobile’s battery life, even if you have the biggest and the most powerful mobile phone. It can lead users to abandon the game altogether and choose other mobile games that have less intensive graphical processing.
Our suggestion is to reduce your graphic details or optimize it for mobile games. One of the main reasons is that the screen size is small enough that you might not need to have such rich details. Or if there’s a style you can use like low-poly or toon shaders, then it would be less processing intensive on the mobile phone.
Try to stick to 2D when it is 2D.
If the 3D does not contribute to your games story or gameplay, avoid trying to create the game in a 3D game engine. Most common mistake that can be seen is trying to use 3D light in a 2d game for no reason if 2D light are available just use them. Lighting and shadow are some of the biggest users of processing resources. When it comes to game engines use less real time light source as possible or bake your lighting.
Don’t Light it up, Bake It Up!
As stated above lights are very heavy on processing resources, so try avoid real time light as much as possible. If doesn’t help your gameplay design or if the lights don’t move in a scene, bake the light.
Baking the light is a process where the lighting settings are saved into textures of your mobile game. Most game engines or 3D modelling softwares can bake the light settings of the scene.
By baking the lights into the texture this means the game’s real time lighting can be turned off which means it would save the processing resources needed to render the real time lighting.
Use of reflection probe and light probe group effectively. Light probe group are one of the most used features in a game engine, it can help a game a lot but if you overuse it can cost you way more processing power.
Make sure make your models have less vertex as possible, you don’t have to create all the details in to the models to convinces it shape. Find out important features of the model and find out an effective topology before start modeling. To optimise as much as possible for each model discuss with 3Dartist, technical designer, concept artist and texture artist about how to make different parts of the model as efficient as possible.
If a particular feature costing so much processing resources try to remove that part all together. For example, if an object has a highly reflective material and the 3D model is vertex heavy, it’s recommended to redesign the model rather than trying to make it work.
If not in the scene, it’s not in the memory.
Loading a big scene with everything in it will use a lot of memory capacity. It’s better to load part by part into one scene, and remove parts that is not used. It’s better to use a tile-able texture for various objects, so you don’t have to load plenty of textures in any given point of the game in the memory, loading a small texture and repeating the usage can help the game perform well. Use occlusion culling if possible to hide assets that are not in the scene.
Create or not to create LOD.
Creating different quality stage for a 3D model can help optimising the look of your game. But if a model is going to stay in the distance for the duration of the game, having a LOD0 to LOD2 is a waste of memory. It’s better to have a very low poly model without LOD for items that are far away in the distance.
Magic of Materials.
Use optimised materials to improve performance. When you use a material make sure the material doing exactly what you want it to do, not more or less. It’s always a safe way to use the materials that comes with the game engine because they’re highly optimised for the engine. Even when you create your own custom materials or plug-in, the best practice is to imitate the default material and add or remove the features that you need.
Be very careful with the materials that you download from assets store, some of the materials might not be suitable for the game engine that you’re using.
Some time low resolution is more suitable
Depending on your mobile game, sometimes it’s better to compress the image texture manually before you use it in the game. If an object like the main player model takes 2% screen real estate of a HD phone, using an 8k texture for the players is pointless. Compress the texture manually as much as possible according to how much of it you can see it in the final game.
Use some memory management tool
Mobile games are made by so many moving parts, it’s hard to find which part makes it slow. It’s best practice to use memory management tools early in the development. Start checking even during loading or blank screen to make sure there’s nothing on the screen and then start adding the assets to load one by one. Doing this you will know exactly what slows down the performance.
Improve your mobile game’s performance by smartly optimize your object 3D model, texture, lighting and materials. Remove things that you don’t see or use in the game during run time Use debug tool to understand which part of your game demands a lot of processing. We hope these simple tricks help you make a better game.