top of page

Zaru Overview

What I Learned

Optimisation

Zaru Master.png

During the solo development of Zaru, admittedly optimisation was low on the list of priorities as it already utilised PSX style and size textures and even ran at a lower frame rate to emulate the style; leading to the game not being very demanding.

That was, until the game had a persistent, seemingly randomly timed crash. From then on, my sole goal was to fix this crash, whilst optimisation was unlikely for the cause, I couldn't risk it.

In the crusade to optimise the game, I discovered the lighting was incredibly inefficient and intensive for what it was. This was due to there being far too many light sources close to each other using the Lumen system.

To solve this, I reduced the number of various light actors and increased the radius of the remaining ones, I also swapped a lot of light actors with emissive textures as they are much less taxing on the system.

Lighting Optimisation

Master Material

Release Build

Draw Calls

ZaruDrawCallLow.png

Zaru Environment

Zaru Lighting.png

Lighting Optimisation

Reducing Draw Calls

The next step after lighting was reducing the number of draw calls present in gameplay. To start with, the vast amount of materials in the game were unnecessarily unique. Each material was essentially just a base colour map for the texture then roughness and specular set to 1 and 0 respectively to create consistency between assets and the shader.

 

To improve this, I created a master material and replaced all of these separate materials with material instances. This effectively made it so that only 1 material was being loaded in the background throughout the level, massively reducing draw calls from loading all the separate materials.

Shader Creation

PSX Shader

To create the PSX-style shader, honestly my understanding at that point was not enough to create one alone, I utilised a tutorial and then adapted it where needed. The most important adaptation was giving the ability to turn off the shader on certain objects, as the shader made certain essential text practically unreadable. 

 

To do this, I added a lerp node that if the "CustomDepthStencil" value was 0, then the shader would be applied. If the value was 1 then the shader would not be visible on the object. This meant that by default the shader would be applied to everything other than the specific cases that had been set.

Zaru Shader.png

PSX Shader

Unique Materials

Zaru Light ray mat.png

Light Shaft Material

Chain Material

Zaru Chains.png

While there were many unique materials, some stood out as being more technically impressive.

The two on display are the light ray and the chain materials. 

The light shaft material was created to control exactly how the player was to view the light dependant on the distance from it. A similar effect could have been made with various fogs and the Lumen system, but not nearly as controlled. The material becomes less opaque the closer you get to it, simulating the effect of dust floating around the warehouse and making light shafts more visible.

The chain material was created to animate one way when the warehouse door was opening, stop animating when not moving and animate the other when closing the door. This involved setting a parameter so that BPs could control it and involved panning the UVs perfectly to give the impression of the chain moving. 

©2026 by Rory Simpson

bottom of page