{"id":13712045,"url":"https://github.com/ryupold/zecsi","last_synced_at":"2025-04-11T17:32:14.244Z","repository":{"id":37571068,"uuid":"476768955","full_name":"ryupold/zecsi","owner":"ryupold","description":"Small game framework made with Zig utilizing the awesome raylib","archived":false,"fork":false,"pushed_at":"2023-12-19T01:38:27.000Z","size":216,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-04T22:08:32.476Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryupold.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-04-01T15:12:41.000Z","updated_at":"2024-05-29T09:07:40.000Z","dependencies_parsed_at":"2023-12-11T03:41:56.666Z","dependency_job_id":null,"html_url":"https://github.com/ryupold/zecsi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryupold%2Fzecsi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryupold%2Fzecsi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryupold%2Fzecsi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryupold%2Fzecsi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryupold","download_url":"https://codeload.github.com/ryupold/zecsi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248449900,"owners_count":21105583,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T23:01:14.334Z","updated_at":"2025-04-11T17:32:13.093Z","avatar_url":"https://github.com/ryupold.png","language":"Zig","readme":"# zecsi\n\nsmall framework with [raylib](https://www.raylib.com/) bindings and own [ECS](https://devlog.hexops.com/2022/lets-build-ecs-part-1).\n\n\u003e This project is in an very early experimental state.\n\u003e See [https://github.com/ryupold/zecsi-example](https://github.com/ryupold/zecsi-example) to see how to use it\n\n### dependencies\n- git\n- [zig (0.10.0)](https://ziglang.org/documentation/master/)\n- emscripten sdk (if you intend to build for webassembly)\n\n### run locally\n\n```sh\nzig build run\n```\n\n### build for host os and architecture\n\n```sh\nzig build -Drelease-small\n```\n\nThe output files will be in `./zig-out/bin`\n\n### html5 / emscripten\n\n```sh\nEMSDK=../emsdk #path to emscripten sdk\n\nzig build -Drelease-small -Dtarget=wasm32-wasi --sysroot $EMSDK/upstream/emscripten/\n```\n\nThe output files will be in `./zig-out/web/`\n\n- game.html\n- game.js\n- game.wasm\n- game.data\n\nThe game data needs to be served with a webserver. Just opening the game.html in a browser won't work\n\n## raylib bindings\nThis library uses [raylib.zig](https://github.com/ryupold/raylib.zig) bindings.\nSee [build.zig](https://github.com/ryupold/zecsi-example/blob/main/build.zig) for how to include them in your project.\n\n## TODOs\n\n- [x] Build System\n  - [ ] Build as package\n  - [x] Windows/Macos\n  - [x] WebAssembly\n- [-] Raylib\n  - [x] Link with game\n  - [x] Some bindings\n  - [ ] Full API bindings\n- [x] ECS\n  - [x] Simple ECS\n  - [x] Managing Entities, Components \u0026 Systems\n  - [x] Archetype queries (slow)\n- [-] 2D\n  - [-] Windows scaling\n    - [x] Fullscreen\n    - [ ] Aspect Ratio\n    - [x] Resizeable window\n  - [-] Grid\n    - [x] Quad grid\n    - [ ] Hexa grid\n  - [-] Draw textures\n    - [x] Texture atlas (animated)\n    - [ ] Tile Map (slow)\n    - [ ] Tile Map (fast)\n  - [x] Camera 2D\n  - [ ] Particle Effects\n- [x] Asset ReLoader\n- [ ] Sound system\n- [ ] Input system\n- [ ] Physics system\n- [ ] UI system\n- [ ] Scene switch\n- [ ] Menu\n- [ ] Netcode\n- [ ] Window Icon\n\n\n## Helpful links\n- [ziglang.org](https://ziglang.org/)\n- [raylib.com](https://www.raylib.com/)\n- [ziglearn.org](https://ziglearn.org/)\n- [raylib.com/cheatsheet](https://www.raylib.com/cheatsheet/cheatsheet.html)\n- [devlog.hexops.com](https://devlog.hexops.com/2022/lets-build-ecs-part-1)","funding_links":[],"categories":["Multimedia \u0026 Graphics"],"sub_categories":["Game Development"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryupold%2Fzecsi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryupold%2Fzecsi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryupold%2Fzecsi/lists"}