From Godot Rapier to Balaur
· 2 min read
I also maintain Godot Rapier Physics — Rapier's 2D and 3D physics as a drop-in replacement for Godot's. Balaur started there.
What the addon does
- Rapier 2D and 3D in Godot, from the asset store.
- Deterministic, and cross platform deterministic.
- Physics state serializes and reloads exactly.
- Fluids, IK, no ghost collisions, better stacking.
Where it stops
Only the physics server is deterministic. The scene tree, rendering, input and scripting are not — they sit outside the physics state, and keeping them in step is the game's job. It is written down on the addon's own determinism page.
Two reasons for a new engine:
- I wanted the whole game deterministic, not one server inside it.
- Fixing bugs in Godot, a fix waits on review, a merge and the next release. I wanted to fix something and ship it the same day.
What Balaur does instead
- The whole tick is deterministic. Fixed 60 Hz step, a digest per tick,
run --recordandreplay --verify, rollback. - Network replies queue and land at the start of a tick — a replay covers logins and retries with no network.
- Rapier is still the physics, 2D and 3D. Built with Sébastien Crozet, who writes it.
- Scenes are TOML. Scripts are Rune and hot reload in milliseconds, state intact:
Where it is
0.1, builds from source, no binary release yet. Compare says when to pick Godot, Bevy or Fyrox instead.
The addon is a separate project and still maintained — same Rapier, same releases. There is a post on its blog too: We are building a game engine.
