Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ryupold/zecsi
Small game framework made with Zig utilizing the awesome raylib
https://github.com/ryupold/zecsi
Last synced: about 1 month ago
JSON representation
Small game framework made with Zig utilizing the awesome raylib
- Host: GitHub
- URL: https://github.com/ryupold/zecsi
- Owner: ryupold
- License: mit
- Created: 2022-04-01T15:12:41.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-12-19T01:38:27.000Z (12 months ago)
- Last Synced: 2024-08-03T23:24:02.148Z (4 months ago)
- Language: Zig
- Size: 211 KB
- Stars: 13
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-zig - ryupold/zecsi
README
# zecsi
small framework with [raylib](https://www.raylib.com/) bindings and own [ECS](https://devlog.hexops.com/2022/lets-build-ecs-part-1).
> This project is in an very early experimental state.
> See [https://github.com/ryupold/zecsi-example](https://github.com/ryupold/zecsi-example) to see how to use it### dependencies
- git
- [zig (0.10.0)](https://ziglang.org/documentation/master/)
- emscripten sdk (if you intend to build for webassembly)### run locally
```sh
zig build run
```### build for host os and architecture
```sh
zig build -Drelease-small
```The output files will be in `./zig-out/bin`
### html5 / emscripten
```sh
EMSDK=../emsdk #path to emscripten sdkzig build -Drelease-small -Dtarget=wasm32-wasi --sysroot $EMSDK/upstream/emscripten/
```The output files will be in `./zig-out/web/`
- game.html
- game.js
- game.wasm
- game.dataThe game data needs to be served with a webserver. Just opening the game.html in a browser won't work
## raylib bindings
This library uses [raylib.zig](https://github.com/ryupold/raylib.zig) bindings.
See [build.zig](https://github.com/ryupold/zecsi-example/blob/main/build.zig) for how to include them in your project.## TODOs
- [x] Build System
- [ ] Build as package
- [x] Windows/Macos
- [x] WebAssembly
- [-] Raylib
- [x] Link with game
- [x] Some bindings
- [ ] Full API bindings
- [x] ECS
- [x] Simple ECS
- [x] Managing Entities, Components & Systems
- [x] Archetype queries (slow)
- [-] 2D
- [-] Windows scaling
- [x] Fullscreen
- [ ] Aspect Ratio
- [x] Resizeable window
- [-] Grid
- [x] Quad grid
- [ ] Hexa grid
- [-] Draw textures
- [x] Texture atlas (animated)
- [ ] Tile Map (slow)
- [ ] Tile Map (fast)
- [x] Camera 2D
- [ ] Particle Effects
- [x] Asset ReLoader
- [ ] Sound system
- [ ] Input system
- [ ] Physics system
- [ ] UI system
- [ ] Scene switch
- [ ] Menu
- [ ] Netcode
- [ ] Window Icon## Helpful links
- [ziglang.org](https://ziglang.org/)
- [raylib.com](https://www.raylib.com/)
- [ziglearn.org](https://ziglearn.org/)
- [raylib.com/cheatsheet](https://www.raylib.com/cheatsheet/cheatsheet.html)
- [devlog.hexops.com](https://devlog.hexops.com/2022/lets-build-ecs-part-1)