Improving performance on Lost Future
Improving performance on Lost Future
Improving performance on Lost Future
Challenge
Low image quality, poor performance, iOS and Android devices heat up and drain battery quickly. The game levels are small, with loading transitions. The target fps is 30-60, but we're only achieving 5-15.
Solution
We started by defining the problem. We profiled the game using XCode, RenderDoc, and UnrealInsights toolsets. We were looking for the bottleneck: CPU, GPU, and/or memory.
After identifying the issue, we began optimizing assets:
Developed a buildings constructor. Separated the interior from the exterior. This allowed us to use the exterior as occluders.
Optimized textures.
Created levels of detail for objects.
Established rules for content use and level systems.
Configured streaming. For the open world, we selected the most efficient landscape configuration and distances between crucial gameplay objects.
Optimized lighting, created a custom solution for foliage illumination.
Reduced the number of shader instructions and the number of materials.
Configured rendering distances, LOD enforcement, excluding objects for certain platforms.
Outcomes
Boosted from 5-7 FPS to 30 FPS on lower-end devices, which has broadened the potential device range.
Managed to build a large world without loadings.
Developed an asset pipeline and trained the art and level design teams, reducing potential future optimization problems.
Challenge
Low image quality, poor performance, iOS and Android devices heat up and drain battery quickly. The game levels are small, with loading transitions. The target fps is 30-60, but we're only achieving 5-15.
Solution
We started by defining the problem. We profiled the game using XCode, RenderDoc, and UnrealInsights toolsets. We were looking for the bottleneck: CPU, GPU, and/or memory.
After identifying the issue, we began optimizing assets:
Developed a buildings constructor. Separated the interior from the exterior. This allowed us to use the exterior as occluders.
Optimized textures.
Created levels of detail for objects.
Established rules for content use and level systems.
Configured streaming. For the open world, we selected the most efficient landscape configuration and distances between crucial gameplay objects.
Optimized lighting, created a custom solution for foliage illumination.
Reduced the number of shader instructions and the number of materials.
Configured rendering distances, LOD enforcement, excluding objects for certain platforms.
Outcomes
Boosted from 5-7 FPS to 30 FPS on lower-end devices, which has broadened the potential device range.
Managed to build a large world without loadings.
Developed an asset pipeline and trained the art and level design teams, reducing potential future optimization problems.
Challenge
Low image quality, poor performance, iOS and Android devices heat up and drain battery quickly. The game levels are small, with loading transitions. The target fps is 30-60, but we're only achieving 5-15.
Solution
We started by defining the problem. We profiled the game using XCode, RenderDoc, and UnrealInsights toolsets. We were looking for the bottleneck: CPU, GPU, and/or memory.
After identifying the issue, we began optimizing assets:
Developed a buildings constructor. Separated the interior from the exterior. This allowed us to use the exterior as occluders.
Optimized textures.
Created levels of detail for objects.
Established rules for content use and level systems.
Configured streaming. For the open world, we selected the most efficient landscape configuration and distances between crucial gameplay objects.
Optimized lighting, created a custom solution for foliage illumination.
Reduced the number of shader instructions and the number of materials.
Configured rendering distances, LOD enforcement, excluding objects for certain platforms.
Outcomes
Boosted from 5-7 FPS to 30 FPS on lower-end devices, which has broadened the potential device range.
Managed to build a large world without loadings.
Developed an asset pipeline and trained the art and level design teams, reducing potential future optimization problems.