
Palette Cleanser
June 2025

Quick Facts \\\
Time:
Nov. 2024 - Jun. 2025
Roughly 32 weeks
Key Details:
Group project
Unreal Engine 5.4
Custom plugin done in C++
Programmer lead, responsible for overseeing fellow programmers
Released on Steam.
Trailer:
What I Did \\\
I developed a modular paintable system in Unreal Engine using render targets to dynamically control material blending. Each blending asset stores a render target that drives the opacity of the top layer, enabling localized texture painting. This approach allowed for flexible, reusable setups that designers can easily extend across landscapes and meshes. I implemented a baked lighting pipeline using sublevel-based lighting scenarios. Artists previewed scenes with Lumen for iteration, after which I baked static lighting. This approach preserved the cartoon style while avoiding Lumen’s runtime cost in shipped builds. As programming lead, I delegated tasks across the team and reviewed all pull requests, ensuring code quality and consistency while maintaining our shared standards throughout development.
Problems & Solutions \\\
One major challenge was optimizing the render target opacity system. Since the game required every mesh to be paintable, the GPU could not support the large number of render targets. My solution was twofold: first, I packed all render targets into a single 4K atlas to minimize overhead. Second, for meshes the player could not interact with, I created a baked material-blending asset that used a primitive data scalar to toggle the top layer efficiently.
Eight weeks before release, game performance was abysmal even on next-gen hardware. To address this, I enforced a rigorous testing workflow by creating a benchmark game mode, accessible via console commands in test builds. Performance data was systematically collected and analyzed, allowing me to identify bottlenecks and assign optimization tasks to the appropriate team members. This structured approach ensured that performance improvements were targeted and effective, ultimately bringing the game to a stable release state.




