ryupold / zecsi

Small game framework made with Zig utilizing the awesome raylib

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

zecsi

small framework with raylib bindings and own ECS.

This project is in an very early experimental state. See https://github.com/ryupold/zecsi-example to see how to use it

dependencies

  • git
  • zig (0.10.0)
  • emscripten sdk (if you intend to build for webassembly)

run locally

zig build run

build for host os and architecture

zig build -Drelease-small

The output files will be in ./zig-out/bin

html5 / emscripten

EMSDK=../emsdk #path to emscripten sdk

zig 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.data

The 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 bindings. See build.zig for how to include them in your project.

TODOs

  • Build System
    • Build as package
    • Windows/Macos
    • WebAssembly
  • [-] Raylib
    • Link with game
    • Some bindings
    • Full API bindings
  • ECS
    • Simple ECS
    • Managing Entities, Components & Systems
    • Archetype queries (slow)
  • [-] 2D
    • [-] Windows scaling
      • Fullscreen
      • Aspect Ratio
      • Resizeable window
    • [-] Grid
      • Quad grid
      • Hexa grid
    • [-] Draw textures
      • Texture atlas (animated)
      • Tile Map (slow)
      • Tile Map (fast)
    • Camera 2D
    • Particle Effects
  • Asset ReLoader
  • Sound system
  • Input system
  • Physics system
  • UI system
  • Scene switch
  • Menu
  • Netcode
  • Window Icon

Helpful links

About

Small game framework made with Zig utilizing the awesome raylib

License:MIT License


Languages

Language:Zig 99.8%Language:JavaScript 0.2%