ayin/readme.md
2025-12-20 15:34:30 +02:00

870 B

Ayin

  • Tiny, procedural, gamedev
  • only user input is controller input
  • Live code reload
  • int, float, string, char, bool, key
  • arrays and maps
  • variables and functions
  • if, loop, continue, break, return
  • function call
  • first class functions
let setup = fn() {
  return {
    .player: { .position: { .x: 10, .y: 20 }, },
  };
}

let update = fn(state, events) {
  let new = 100;
  state.player.position.x = new;
  return state;
}

let draw = fn(frame, state) {
  frame.clear(0,0,0);
}

let migrate = fn(state) {
    return { .player: { .pos: state.player.position } };
}
  • dynamic software updating could occur every frame
  • user might be required to migrate the state (migrate function is hashed and only applied on updates when it is changed)

Build instructions

WASM

rustup target add wasm32-unknown-unknown
make wasm