Radiolight

Radiolight 1.0

Version
1.0
Version Date
Dec. 23, 2025
Links

Patch Notes

Patch v.1.0

This update is the first to focus on massive performance improvements for systems with limited resources.

[p]To accommodate everyone I have been working on the compatibility, readability and further improving controller support. We tested this on the Steamdeck with incredible results we nearly doubled the FPS![/p]
[p]Below I will go a little more in depth about the technicalities for anyone interested:[/p][p][/p][p]When looking for optimisations we started by comparing areas that performed better and those that performed worse. The worst performing area we found was the initial house, so we started investigating and lo and behold we found a culprit:[/p][p][/p][carousel autoadvance="true"][/carousel][p]When turning off the light in Mia's bedroom the framerate increased more than expected.[/p][p][/p][p]Using this new knowledge we experimented with the different settings and found that the performance was mostly tied to the shadows. The difference between having them on, even at the lowest settings, and turning them off far outweighted the other settings we tweaked. [/p][p][/p][p]Now I was quite sure that the performance issues were lighting related. We started profiling and looking for all the potential improvements. The most promising:[/p][*][p]Tweaking light attenuation; the lights on one floor lit walls that extended to the next floor, this required unnecessary computation in the lighting pass and shadow depth maps.[/p]
[*][p]Occlusion culling; Ethan's home is one of the few locations in the game where multiple objects are stacked on different floors and surfaces some of which are dynamic like the drawers in the desk. This created occlusion overhead and overdraw inefficiencies as the engine had to consider the status of obscured objects and their indirect effect on the scene's lighting. With some tweaks I was able to reduce the load in strategic points in the game.[/p]
[*][p]Dynamic lighting; my scenes used dynamic lights when they were likely to cast shadows. Some of these could be converted to stationary or even static lighting. This explained the strong performance hit from the desk light in Mia's room. The biggest problem I found was caused by the moon, set as a movable (dynamic) light. Normally instancing objects helps tremendously in optimising games. Instead of your processor individually requesting the data for each tree in the forest it groups a request for all similar objects and it iterates as it is told to. This allows the processor to condense thousands of computation requests into a couple dozen. Faithfully I had employed this tactic. However, because the lighting from the moon hit all trees, the depth pass had to individually consider each tree.[/p][p][/p][p]The following screenshots show a before and after the optimisation. The goal was for the visual differences to be minimal while increasing the framerates. This first comparison shows Mia's Room, one of the "worst case scenarios". Before 26FPS, after 54FPS on otherwise identical settings.[/p][carousel autoadvance="true"][/carousel][p]This second screenshot shows a before and after of a less impacted but more typical area in the game, the patch of forest right outside the visitor centre. The framerate increased from 51FPS to 60FPS.[/p][carousel autoadvance="true"][/carousel][p][/p]
[p]I am looking forward to keep you updated in the new year. Best wishes and see you out there,[/p][p]Krystof[/p][p][/p][p]—————————————————————————————————————- [/p][p][/p][p]Radiolight[/p][p]Iceberg Interactive[/p]