Skip to main content

From Godot Rapier to Balaur

· 2 min read
Balaur

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 --record and replay --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.