Check out how we reduced shader counts.
Case: Brigada Games ported the game, which was originally developed for PC/Console, to all platforms, which allowed a developer and a publisher to tap into a new mobile games audience.
Process description:
Older devices' limitations can strain available memory, making it essential to minimize shader memory usage. An effective approach involves scanning the project with Python scripts, creating an xlsx file grouping assets by material class and references. This helps reduce parent materials, which can greatly affect memory usage. This proactive method enhances performance and optimization across various hardware configurations.
In a substantial project with numerous materials and textures, the creation of visually detailed tables became crucial. These tables expedited the asset restructuring process, ensuring quick access to pre-compiled builds for verifying asset reduction. Additionally, they facilitated the monitoring of shader-induced memory reductions through LLR reports.
We employed a range of tools and technologies to analyze and optimize the game's performance, including:
We optimized at both the game architecture and engine levels by leveraging UE API Python scripts in the UE Editor environment. These scripts collected essential data, restructured assets, and utilized UEViewer and UnrealPak for reviewing game builds.
We optimized memory and resources by simplifying parent materials for efficient shaders, reducing their variants, creating material instances for visuals, and minimizing texture usage.
Our team assessed optimization success through performance metrics and indicators, including target device dumps, low-level memory tracking, and analysis of unpacked builds.
Primarily, considering these are older-generation devices, we have enhanced or maintained the quality of essential materials while reducing the size of less critical textures. Consequently, the graphics remain unchanged with minimal impact on performance, and we've also managed to decrease the overall build size.
To ensure the game's quality, we perform testing and debugging tasks by assigning QA with providing screenshots, videos of repeatable gameplay, and stat memory, LLM and memory dumps.
Case: Brigada Games ported the game, which was originally developed for PC/Console, to all platforms, which allowed a developer and a publisher to tap into a new mobile games audience.
Process description:
Older devices' limitations can strain available memory, making it essential to minimize shader memory usage. An effective approach involves scanning the project with Python scripts, creating an xlsx file grouping assets by material class and references. This helps reduce parent materials, which can greatly affect memory usage. This proactive method enhances performance and optimization across various hardware configurations.
In a substantial project with numerous materials and textures, the creation of visually detailed tables became crucial. These tables expedited the asset restructuring process, ensuring quick access to pre-compiled builds for verifying asset reduction. Additionally, they facilitated the monitoring of shader-induced memory reductions through LLR reports.
We employed a range of tools and technologies to analyze and optimize the game's performance, including:
- Dumps from target devices
- Low-Level Memory Tracker
- Examination of unpacked builds
We optimized at both the game architecture and engine levels by leveraging UE API Python scripts in the UE Editor environment. These scripts collected essential data, restructured assets, and utilized UEViewer and UnrealPak for reviewing game builds.
We optimized memory and resources by simplifying parent materials for efficient shaders, reducing their variants, creating material instances for visuals, and minimizing texture usage.
Our team assessed optimization success through performance metrics and indicators, including target device dumps, low-level memory tracking, and analysis of unpacked builds.
Primarily, considering these are older-generation devices, we have enhanced or maintained the quality of essential materials while reducing the size of less critical textures. Consequently, the graphics remain unchanged with minimal impact on performance, and we've also managed to decrease the overall build size.
To ensure the game's quality, we perform testing and debugging tasks by assigning QA with providing screenshots, videos of repeatable gameplay, and stat memory, LLM and memory dumps.