
The export default that doubled our rendering work
All 21,864 models in this game shipped with a flag nobody chose, drawing their own hidden interiors into every frame and every shadow. A default that arrives with an asset was never a decision.
Category
Simulation cost, draw calls, memory and the measurements behind each change.
10 posts

All 21,864 models in this game shipped with a flag nobody chose, drawing their own hidden interiors into every frame and every shadow. A default that arrives with an asset was never a decision.

Zoom out on an eight player map and the game asked the graphics card to draw every unit separately. Grouping them took 1,392 requests down to 96.

The map went sticky whenever two armies met at a bridge. Measured under real combat, four fifths of the simulation was one thing: working out routes.

An eight player free-for-all ran at 3 to 15 frames per second. The plan blamed combat. The computer opponents turned out to be nine tenths of the work.

A month of planned work was aimed at reducing triangles. Fifty five captures with real graphics card timers said the frame was going somewhere else.

A one versus one made players wait on 308 MB before anything started. Most of each unit's animation file was a model and a texture nothing ever drew.

The neutral monsters on every map were owned by player two, which is the seat a third player would sit in. That turned out to be the easy half of it.

Compressing the art seven times harder cut the download and did nothing for the crash. A decoded image costs the same memory whatever file it arrived in.

When four hundred units meet, deciding what they do and drawing them take turns. This is what had to be true before those two jobs could stop competing.

Four hundred animated units is the worst thing you can ask a renderer to do. Storing the animation as an image instead removes the skeleton entirely.