The Hearth engine
Shellfall runs on Hearth, a reusable engine layer on Unity 6. How it paints in watercolour, remembers everything that happened, and keeps one continuous world on a Steam Deck.
Shellfall runs on Hearth, an engine layer built for this game but kept apart from it, so that it can carry other games later. Hearth sits on Unity 6 with the Universal Render Pipeline and Render Graph. Hearth is a working name. This page is for the curious; none of it is needed to play.
Built in pieces
Hearth is a set of separate packages, each with its own tests and a sample scene that runs without any Shellfall code. The engine never refers to the game: it speaks of stamps, brushes, sources and layers, never of shells or armies.
| Package | What it does |
|---|---|
core | Start-up, events, maths and world positions |
determinism | Seeded random numbers, hashing and the clocks |
persistence | The event log, snapshots and saves |
rendering.core | Shared rendering helpers, style switching and quality tiers |
rendering.watercolour | Ink, pigment pooling, bleed, granulation and paper |
rendering.clay | Clay lighting, fog, soft shadows and clouds |
terrain | The ground in 64 × 64 m chunks, craters and the authored map |
splines | Rails and roads along smooth curves, carved into the ground |
earthworks | Trenches: shapes, traverse bays, digging, damage and decay |
streaming | Bringing ground in and out, and how much is simulated where |
fogofwar | What is known, revealed and slowly forgotten |
camera | The bird's-eye and cockpit cameras and the cloud dive |
instancing | Thousands of tiny figures drawn at once |
assetpipeline | Editor tools that check art coming in from Blender |
Painting in watercolour
Every surface first paints a flat wash of colour, plus a few hidden values: how dense the pigment is, how much its edges darken, how far it bleeds, and how much paper shows through. Trench and crater rims raise those values on purpose. Then full-screen passes paint the picture: thin ink lines, pigment pooling darker along edges, colour bleeding softly but never across a trench wall, paper grain, and a slight hand tremor.
The paper never slides: its grain is pinned to the ground, not to the screen, so it moves with the land like a real map.
The clay side is a second, simpler renderer: soft light, deep gentle shadows, blue fog and a few warm lamps, with no ink or paper. The switch between the two happens in a single frame, under full cloud cover. See Art direction: watercolour war, clay gun.
A world made of what happened
On disk, the world is a seed plus a log of everything that happened, with snapshots to speed things up. The ground, woods and villages are generated from the seed and never saved. What you see is only a view of that data, rebuilt when needed. Every change, from a crater to a ruined depot, is an event written to the log, and the same code applies it in live play and in replay. Saves, catching up on a place you come back to, and the future shared war all use that one path. It is deterministic: the same seed and the same events build the same ground on every machine.
One continuous world
The engine has no separate maps and never resets the world. The world clock runs on; regions near the gun are simulated in full detail, distant ones more coarsely. Ground ahead of the train is prepared along its route and appears through the fog of war only once it is ready. See One continuous war.
Steam Deck
The Steam Deck is the performance target. Valve asks for 30 fps at 800p with the default settings, and the look is tested on a real Deck before any terrain work starts. See Roadmap.