
Every job in DEMO IT is one building. That is not a design choice. It is the
limit of the technology the game runs on, and this post is about what we are
doing to lift it.
We have been building our own destruction system alongside the game.
It breaks things at the moment they break, instead of storing every
piece a building could become inside the level in advance.
If it works, jobs get bigger, levels get smaller and load faster, and the
rubble gets finer. Two jobs we built and held back come back on it.
No job you can play today uses it, and there is no date.
The destruction system the game ships on works by breaking a structure in
advance. Every piece a building can become is worked out before you play and
stored inside the level, along with its collision shape. Hundreds of pieces sit
there asleep, waiting to be hit. Every job pays for that. A test level holding one building in 586 pre-broken
pieces came to eighteen megabytes and stalled on load. There is a ceiling on
how many loose pieces may exist at once, and past it a big collapse quietly
stops producing debris and starts sliding instead. And when a great deal has
to break in the same moment, it stalls. None of that is a bug. It is the shape of the technology, and no setting
removes it. It is why a job is one site rather than a street.
Super Shatter is a destruction system written in-house, developed
alongside the game. The idea at the centre of it is simple: break the building
when it breaks. The level stores the intact building and nothing else. The
fracture is worked out at the moment of impact, spread across every core the
machine has, and the pieces go into objects that were created at startup and
have been waiting to be used. The same 586-piece test building went from an
eighteen-megabyte level to a four-megabyte one with nothing pre-broken in it
at all. The other reason is control. The licensed system does a great deal we do not
need, and when it under-delivers it does so silently. Owning the code means we
can measure what it did and fix it, rather than work around it.
Two measurements, both from our own test harness, in the editor, on one
machine. They are the reason we are doing this, not a promise about your frame
rate.
At scale, it wins clearly. Two hundred buildings broken at once,
piece counts matched: the fracture came out about eight times cheaper. The
system we ship today stalls for about two and a half seconds and drops to
roughly one frame per second at its worst. Super Shatter stalls for about
a third of a second and stays in the forties.
On one small job, it does not. Yet. We converted the garden shed
end to end and profiled both. At rest they are identical. On the frame the
shed breaks, Super Shatter was worse: a hitch of about 85 milliseconds
against about 35. One small building is exactly the workload that
pre-breaking is best at, so this is what we expected. It is also why
nothing you can play today runs on it.
Cheaper where the size of the job is the problem. Not automatically cheaper
everywhere. The job where it matters is the big one, and we have not built the
big one yet.
One test. Our buildings are assembled from many parts, and for a long time the
new system could only hold a building up within a single part. A storey would
either hang in mid-air or fall for no reason. Support across parts arrived in a
recent release. We have not yet run one of our own buildings through it. Until
that passes, nothing moves.
Bigger jobs. A city block rather than a single site.
Smaller levels that load faster. Nothing pre-broken to store or
load.
Finer rubble. More pieces per structure, so things come apart into
debris rather than chunks.
Two jobs come back. Across the Gap and Keep the Face were built for
launch and held out of it. They are the two that most need the new
system, so they return on it rather than being patched up twice.
No job in the build you can play today uses it. There is no date, and we are
not going to invent one. And if it turns out not to be worth the disruption,
we will drop it and say so. Replacing the system a game's physics is built on
is not a small change, and we would rather ship a smaller game that works than
a bigger one that does not.
If this is the kind of thing you want more of, say so. We would rather write
about the parts people are actually curious about. And F8 in game
still sends a report straight to us.