Optimizing The Outer Worlds 2
April 2025
Optimizing an intergalactic experience
Identifying Performance Issues - UI
Having long been a fan of Obsidian’s games since Fallout New Vegas, this was an exciting studio performance analysis engagement for me. One of the areas I identified as a costly performance element was SlateUI, most notably the crosshair.
The Pix capture indicates that it was vector ALU bound in the shader for the cross hair, so there are a lot of math operations inside. For reference, it was about 50% most expensive than E-Day at the time. It is likely that this is due to the number of data being updated at frame rate, and perhaps can be less frequently updated.
Identifying Performance Issues - Culling & Memory
Another area of focus was memory, and I found that distant NPCs are not always culled as aggressively as they could be. I found this by sorting the Pix capture by VS vertices in and PS pixels out. If PS pixels out was 0, there ideally won’t b any VS vertices in.
Some NPCs also had partial culling, so I recommended an audit of cull distances and screensize on the characters and weapons. This was especially the case for dense non-combat areas where characters were not moving quickly. However, I do understand that a lot of areas may not have combat but could become combat areas at any time due to the design of the game.
It was an enlightening experience trying to identify optimization opportunities for this game. From the real time point lighting from planetary movements needing to be updated at all times to the density of interactable NPCs at any given time, it was a great learning opportunity.