Skip to main content

Introduction

Balaur is a 2D game engine.

warning

There is no release. Balaur is in early development and there is nothing to download yet. See the roadmap.

Model

A game is a tree of nodes. A node has a name, a script, properties and children. The engine walks the tree once per frame and calls each node's update.

A scene is a file describing that tree. Scenes can be nested and reused.

Node classes store their properties in dense arrays rather than per-node heap objects. One pass per class updates every node of that class, including subclasses.

Scripting

Gameplay is written in Rune. Rune has 0-based indexing, native async, and reference counting rather than a garbage collector.

Scripts are compiled per file. Saving a script reloads only the nodes running it; node state is kept, so the running game continues.

The script host is a trait. Other languages can be added without changing the engine.

Dependencies

PurposeCrate
Physicsrapier2d
Renderingwgpu, via kiss3d
Mathglamx
Shaderswesl
Editor UIegui
Scriptingrune

Scope

2D only. Not an ECS. No release yet.

Licence

MIT or Apache-2.0.