Thanks for your interest in helping! This project is a handcrafted ECS + game in Zig. The focus is clarity, explicitness, and gameplay feel.
- Install Zig (recent stable version - currently
0.15.2). - Install raylib, or build it locally as described in
README.md. - Build and run:
zig build runExample targets:
zig build example-blob
zig build run-example-blob
zig build examplesIf you are unsure where to help, pick something that aligns with the roadmap (ROADMAP.md).
- Prefer explicit APIs and clear data flow.
- Favor readability over abstraction.
- Keep gameplay simulation separate from presentation.
- If possible, add unit tests for bug fixes and new behavior.
- If you touch Zig code, run
zig fmton the files you change.
- Run engine tests:
zig test src/engine/$MODULE - If raylib headers are not in a standard include path, add includes, e.g.:
zig test --dep engine -Mengine=src/engine/root.zig -I third_party/raylib/include -isystem /usr/include/
- Create a focused branch.
- Keep PRs small and scoped; include a short description of intent and behavior.
- If behavior changes, note how you tested it (manual steps are fine).
Open an issue with:
- What you expected vs what happened.
- Steps to reproduce.
- Relevant logs or screenshots.
- Your OS and Zig version.
By contributing, you agree that your contributions are licensed under Apache-2.0.