Brian Andrew Mulrooney

2026-09-02

Gap: World map frame rate too low

The world map's terrain opened this round of work rendering at single-digit frame rates at every camera distance, well short of a 30-50 frames-per-second target spanning a 14-kilometer overview down to a 10-meter close-up.

Frame rate at each camera position, measured fresh, against the 30-50 fps target band Frames per second at each camera position across this round of work. The shaded band marks the target. The closest camera position wasn't measured until partway through the work, so those two points are left blank.

Gap: World map frame rate too low

The terrain was one single mesh, so the engine's standard technique for skipping geometry outside the camera's view had nothing to act on. Splitting it into smaller chunks and adding distance-based detail swapping raised frame rates from 8.5/5.0/5.3 fps to 20.5/20.5/24.8/24.8 fps across four camera positions — still only 66-78% of the target floor. Triangle count no longer explained the remaining cost: near-camera frame times had settled onto a roughly 40-50 millisecond floor regardless of how much geometry was cut.

A structured set of measurements — halving render resolution, swapping the low-level graphics interface, then reading timers built into the graphics card directly — isolated the cost to one rendering step, a depth prepass, consuming roughly 15-20 milliseconds of every frame. Switching to the engine's simplified rendering path, which skips that step by design, was the fix; cutting more geometry would not have addressed it.

Frame rates reached 38.6/36.9/47.1/46.7 fps across all four camera positions, inside the target band.

The standard rendering path at the close camera position (120 m)
Standard rendering path
The simplified rendering path at the close camera position (120 m)
Simplified path (shipped)

Same frame, two rendering paths, close camera position (120 m). A pixel-comparison found at most 0.10% of pixels differing by a visible amount before the simplified path shipped as the default.

Dead end: A tiered, fixed frame-rate-band design was abandoned when it could not hold both near and far camera positions at once; a commercial upscaling technology was dropped once the measurements showed pixel count was not the bottleneck.

‹›