glassesneo/zenithor
Hyper extensible "game engine framework" for Zig
f4f4118471e98a13f17c37515577b48631fc8d7686ef49719c0fba172bd5ba8c6e46327066a1fd54a89e0594214cf315de033c7cb6c144c7b54da09bA 2D/3D "Game Engine Framework" for Zig, backed by Sokol and Sparze ECS. Native and WebAssembly targets with compile-time plugin architecture.
src/core/CLAUDE.md).# Run tests
zig build test
# Native example (window, input, rendering)
zig build run-demo_window
# Other native demos
zig build run-demo_2d
zig build run-demo_imgui
# WebAssembly build + local server
zig build demo_2d -Dtarget=wasm32-emscripten
zig build serve-examples -Dtarget=wasm32-emscripten # serve all WASM demos
zig build serve-examples -Dtarget=wasm32-emscripten -Dfilesystem # with IDBFS for serialization
# Graphics backend override (default: -Dgl)
zig build <target> -Dgl | -Dgles3 | -Dwgpu
Minimal app:
const zenithor = @import("zenithor");
const Graphics = @import("graphics_plugin");
const Time = @import("time_plugin");
const Input = @import("input_plugin");
pub fn main() void {
zenithor.run(.{ Graphics, Time, Input }, .{});
}
-Dfilesystem.src/root.zig # Public API exports
src/core/ # Engine core (application, builtin, scheduler)
plugins/ # Standard plugins (graphics, time, input, imgui, serialization)
examples/ # Example programs
build.zig # Build graph and plugin module wiring
Licensed under either of:
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.