Menakta
Unreal Engine5 min

Where a real-time strategy game leaks frames

The genre multiplies everything by the thing that makes it fun. Three places the budget goes, and none of them are where you would look first.

Real-time strategy is the least forgiving genre for performance work, and the reason is structural. The promise of the genre is scale. Whatever a system does, it does hundreds of times at once, which means any per-unit cost gets multiplied by exactly the thing that makes the game worth playing.

That has a consequence worth internalising before you start profiling. In an RTS, the cost that matters is almost never the expensive-looking one. It is the trivial one, paid several hundred times a frame.

Three places it goes, in our experience.

**Death.** A unit dies, its ragdoll begins simulating, and unless you tell it otherwise, it keeps simulating. Physics continues solving that corpse for the remainder of the match. A single death can permanently tax the frame budget, and the cost accumulates across a battle, which means the game gets slower precisely as it gets exciting. The fix is a lifecycle: let the ragdoll settle, then freeze it, and take the ongoing cost to zero. Doing that safely across an entire roster means applying physics profiles to every asset, which is a job for a batch tool rather than an afternoon of clicking.

**Overlap events.** Individually trivial, which is what makes them dangerous. Nobody profiles the cheap thing. Left alone they will fire thousands of times a frame, and the profiler will show you a flat, unremarkable line spread across everything, because the cost is not concentrated anywhere you would think to look.

**The corner of the screen nobody thinks about.** A sixty frames per second budget is sixteen and a half milliseconds, in total, for everything. A minimap is a small square that no one considers a system. It is entirely capable of eating more than half of that budget on its own if it is redrawing the world every frame instead of only what changed.

The bug is rarely hiding in the complicated system you are afraid of. It is sitting in the simple one you never thought to measure.

None of these require a novel algorithm. They require someone to sit with a profiler and refuse to accept that a small square in the corner is consuming half the frame. Which is, in the end, most of what performance engineering actually is.

The project

Multiplayer RTS

Two asymmetric factions, eight players, one battlefield

Read the case study

More notes

Bring us the hard part

Frame budgets that will not hold. Netcode that falls over at scale. Latency you cannot find. That is the work we want.