Skip to content
Devlog

Releases 0.10 and 0.11: an engine and a game shell

Release notes card for 0.10 and 0.11, An engine and a game shell, over a tall tower in the city

The work after 0.9 had three steps: split the engine out of the viewer, build a game shell, then build a sandbox on a bigger city. Release 0.10 was the split. Release 0.11 was the shell, a game application that boots, shows a title and menus, and plays.

Engine

  • The simulation, fracture and step pipeline moved out of the viewer into engine modules in numbered steps, S1 to S10. After each step a check compared a state digest, a fingerprint of every body’s position, for frame benches, captures and two of our recorded sessions against a saved baseline. Every step left the digests identical except one.
  • That one change is deliberate. Fracture now reads where a body is in the physics world, not where it was last drawn. Of 40 runs, 12 were unchanged. Scene 8’s demo now ends with 1,690 bodies against 2,068.
  • A scene can run headless, with no window, renderer or sound, and ends in the same state as the app. All 13 frame-bench scenes match. When it covered ten scenes, a headless pass took about a minute where the rendered runs took about ten.
  • The engine was named and given a splash screen of about three seconds.
  • Replays, benchmarks and recordings no longer take the keyboard. They had activated their windows on launch, so a stray T pressed in another app switched quality tiers mid-run, and one run in five ended in a different state.
  • Floors that a gutted story let go no longer land back on the columns it kept. In a replay of one of our sessions, members left within half a meter of where they were built, more than 10 m up, fell from 385 to 21.
  • We wanted the finish on concrete and plaster to spall before the core breaks, as stucco does when a car hits it. The first version read as a decal laid on the wall, so the broken edge was reshaped to read as cut into the member. A blast spalls the finish on up to 40 members and costs at most 1 ms.

Game

  • A game bundle opens on a photosensitivity warning, the engine splash and a title screen. The warning holds about six seconds and can be skipped after one and a half. Any key, click or gamepad button skips a screen.
  • Behind the title, three cities come down in turn, 40 s each, while the camera circles them.
  • Menus work from the keyboard, the mouse or a gamepad, and the menus and settings were tested with an Xbox controller. Settings are kept between launches and cover quality, shadows, bloom, sound, volume, slow motion, look speed and more. A new setting appears in the menu by itself.
  • On the low tier in Low Power Mode, the title holds a p95 frame time under 16.7 ms.
  • The sandbox takes a seed and plays the city it grows.
  • Set charges go off in sequence, a quarter second apart, when the right button is pressed. We wanted sequential firing or a way to switch modes, and Shift fires them all at once as before.
  • Two faults found in play are fixed. Starting a game with a gamepad now captures the mouse, and set charges, which had gone invisible, show again.

Tools

  • digests.sh runs the baseline check, with a weapons range scene that fires every weapon on a script so the digests cover them.
  • One of our recorded game sessions, 1,591 shots in one city, replays twice to the same state digest.
  • The game bundle links none of the development code. A build check fails if any development symbol appears in its binary.
Provenance

How this post was made

Drafted by
A Claude Code session in the trilithon.games repository, October 10, 2026, working from the game's changelog, docs and tracker.
What it did
Drafted this post from the game's changelog and roadmap, and checked each number against them.
Reviewed by
Alex van Rossum,

On the roadmap: The engine, The game shell

Linear MIP2-312, MIP2-314, MIP2-320, MIP2-325, MIP2-327, MIP2-328, MIP2-329, MIP2-330, MIP2-331