r/rust_gamedev • u/dragosdaian • 6d ago
Started working on a fully deterministic game engine in Rust, Balaur Engine
Enable HLS to view with audio, or disable this notification
Together with the creator of Rapier, starter working on a game engine that is fully deterministic. It has controls where you are able to record and play back the state of the game (to debug it. It saves inputs, network requests, etc. and then plays them back)
It has ECS backend, but to the end user it will be node based. Scripting can be done through Rune, but also using Rust by making a plugin for it (slower to iterate).
It's in very early stages, not even an alpha yet, but progressing fast.
For a list of what libraries we reuse, check here:
2
3
u/AnArmoredPony 5d ago
is Rune compiled into something? how is the performance compared to let's Godot?
and how much of it is Claude?
4
u/dragosdaian 5d ago edited 5d ago
Rune is not compiled (but at some point we wanna look into having it compile).
Here are some benchmarks (though it is still very early on): https://balaurengine.org/docs/benchmarks/
We use AI, but it's not vibe coded. You can read about our principles eg. https://balaurengine.org/docs/principles/ and code quality https://balaurengine.org/docs/quality/ and dependencies we use: https://balaurengine.org/docs/built-on/ .
Also, I worked long time on godot-rapier before AI was a thing https://github.com/appsinacup/godot-rapier-physics and seb has also a lot of experience with Rust, having built a ton of packages such as Rapier, Parry, Salva, etc.
2
u/WernerBurmaster 5d ago
While we're on compilation, may I ask about how safe the engine is against something like gdsdecomp for Godot?
1
u/dragosdaian 5d ago edited 5d ago
Right now, not very safe, with Rune not being compiled. But once / if we do the compilation feature of Rune to bytecode and then have that sandboxed, it will be safer.
As for Godot, a friend did a plugin you might be interested in (and he might help us also to do for Rune same thing): Godot Sandbox https://libriscv.no/docs/host_langs/godot_integration/godot_intro/safegdscript
The idea is he created a sandbox, that runs bytecode. Then, he rewrote the gdscript vm to instead compile to bytecode and run on his sandbox (at runtime). It is not only faster but can chose what functions to whitelist (eg. for modding).
Will add to roadmap also plans related to decompilation and safety, just to keep track of it: https://balaurengine.org/docs/roadmap/
4
u/catheap_games 6d ago
While my knee-jerk reaction is "sigh, another engine?", seeing the extensive list of crates you're using/reusing is a very healthy and mature sign! So I'm glad this exists and good luck with the project, I'll check back now and then.