Moving units through the fog of a forest map and encountering some enemies. Enemies located outside friendly unit(s) fog radius are not visually rendered
Fog of war is usually a 2D affair — a screen-space post-process or a texture mask draped over the map that darkens or hides whatever the player hasn't explored yet. It works, but it tends to read as a layer sitting on top of the image rather than something part of the world, and for Wartorn that didn't fit the art direction. The approach taken here instead drives the fog of war through Unreal's volumetric fog, so unexplored areas are obscured by actual fog living in the scene — it catches light, settles into the terrain, and reads as atmosphere rather than a UI overlay.
To determine what the fog hides, the system uses a render target to capture the entire level from above, and that capture is used to punch out the regions of the fog material where the player currently has units, clearing the fog in a radius around each one. That mask is then fed back into the volumetric fog as its density driver, so visibility stays data-driven by where units actually are on the map rather than being baked or hand-placed.
The complication was performance. By default, scene captures in Unreal run on the game thread, and capturing the level to keep the fog mask up to date introduced hitches severe enough to be a non-starter — particularly on a roguelike-hybrid that generates a large number of distinct maps. Resolving it required writing a custom asynchronous rendering path that moves the capture work off the game thread, so the fog-of-war updates without stalling the frame. The result is a fog of war that behaves like real volumetric atmosphere while staying cheap enough to run continuously during play.