Manual
Scenes and nodes
Balaur scenes: nodes are ECS entities, scenes are TOML, and every component is a scene key, a script field and an inspector row.
Scripting
Scripting Balaur in Rune: lifecycle hooks, exported properties, async/await, hot reload that keeps state, and a debugger with breakpoints in the editor.
Shaders and materials
Shaders in Balaur are WESL (WGSL with imports and variants), linked at run time. A material asset names a shader and its values; meshes take one.
Rendering
Lit 2D scenes in Balaur: light2d and occluder2d build a light map every sprite, polygon and tile is multiplied by, plus camera ambient and screen-space post.
Animation
Animation in Balaur: clips and easings, crossfades and state machines, tweens, 2D bones with skinned polygons, 3D rigs from glTF, and IK.
Physics
2D and 3D physics in Balaur through Rapier, stepped on a fixed 60 Hz tick with enhanced determinism: bodies, colliders, joints, characters and vehicles.
UI
Two UI layers in Balaur: widget components for game HUDs, saved in the scene and edited in the inspector, and an immediate-mode ui module for tools.
Input
Input in Balaur: actions declared in project.toml, bound to keyboard, mouse, gamepad and touch, read as one snapshot per frame and replayed from a recording.
Networking
HTTP, WebSockets and WebTransport for Balaur scripts, delivered once per tick; a recorded session replays with the network included.
Gamend
The gamend module connects Balaur scripts to a Gamend backend (login, REST endpoints, lobbies and server hooks) with replies delivered once per tick.
Stores
The platform module is one script API over every store: sign-in, achievements, leaderboards, cloud saves and in-app purchases, with StoreKit behind it.
Plugins
Everything above the Balaur core is a plugin. Build one into the engine, or load it at run time from a shared library written in Rust or C.
The editor
The Balaur editor is itself a Balaur project: five workspaces (Scene, Script, Animation, Physics, UI), gizmos, timeline, rig tools, play-in-editor and undo.
Determinism
Same inputs, same outputs on every platform: a fixed 60 Hz step, Rapier's enhanced determinism, libm math, per-tick digests, and record and replay.
Shipping a game
Ship a Balaur game as a .bpak of bytecode, scenes and assets, or fuse it onto a runtime for one self-contained executable per platform.
Build size
What is in the Balaur web module, which cargo features and dependencies decide its size, and how to build a smaller runtime template.
Continuous integration
Three reusable GitHub Actions build a Balaur game on every push: setup installs the engine, export-game signs and uploads, build-engine compiles a runtime.
Text
The text2d and text3d components: keys, outline and shadow, markup, script calls, measuring, bitmap fonts and what a block costs.
Tile maps
Tile maps: solid, one-way, animated and light-blocking tiles, one voxel collider, autotiling from a rule table, isometric and hex, Tiled and LDtk import.