A declarative 2D game engine for Zig
Define scenes in .zon files. No runtime parsing, zero-cost abstractions.
Flexible Entity-Component-System with zig_ecs or zflecs backends.
Box2D integration for rigid bodies, colliders, and constraints.
Build for desktop, iOS, Android, and WebAssembly from one codebase.
Choose raylib or sokol for rendering. Sprite atlases, animations, cameras.
labelle-cli for project generation, hot reload, and builds.
// scenes/main.zon
.{
.name = "main",
.entities = .{
.{
.id = "player",
.prefab = "player",
.components = .{ .Position = .{ .x = 400, .y = 300 } },
.children = .{
.{ .prefab = "weapon", .components = .{ .Position = .{ .x = 20, .y = 0 } } },
},
},
},
} # Install labelle-cli
curl -fsSL https://labelle.games/install.sh | bash
# Create and run your first game
labelle init my-game
cd my-game
labelle run