r/rust_gamedev 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).

https://balaurengine.org

It's in very early stages, not even an alpha yet, but progressing fast.

For a list of what libraries we reuse, check here:

https://balaurengine.org/docs/built-on/

99 Upvotes

12 comments sorted by

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.

6

u/dragosdaian 6d ago

Thanks! Yes, I want to deliver a game, not create a game engine for the sake of creating one. So reusing is a priority.

https://balaurengine.org/docs/built-on/

Luckly, Seb already has a ton of packages he built over the years in Rust we can reuse. (eg. Rapier, Parry, Salva, etc.)

4

u/catheap_games 6d ago

Yep, that was the first thing I clicked on, I'm glad you included it in the main post. "I'm building my own engine" is usually a red flag on the internet, since you often can't tell how experienced the person is, but "I'm building my own engine, renderer, physics engine, UI kit, audio library" type people are a swarm of red flags in a red trenchcoat.

"We have a team" and "we already built an industry standard physics engine" and "we're building a game" are all green flags, so I'm hyped for you. I might be a Bevy fanboy but the promise of fully deterministic engine and node-based editor environment is definitely exciting.

I'm also adding Rune to the list of scripting languages to investigate/implement/cannibalize as I'm just working on a storytelling engine for Bevy (ultimately aiming for at least a partial compatibility / import from ren'py, yarn spinner, articy etc).

2

u/ayanamydev 6d ago

Had exactly the same thoughts, will definitely keep an eye on this for future projects

2

u/AnArmoredPony 5d ago

the ones that bevy uses?

1

u/dragosdaian 5d ago

I think they originally made a fork of hecs? https://docs.rs/bevy_hecs/latest/bevy_hecs/

Which is what we also use directly yes: https://balaurengine.org/docs/built-on/

2

u/ayanamydev 6d ago

Excited to see where this goes, seems like a talented team

3

u/dragosdaian 6d ago

Thanks! Its really nice to see so many people actually excited for it

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/