null0

A game is a "cart": a zip file with main.wasm in it, plus your assets. Anything that compiles to WebAssembly can be a cart, and 23 languages have real bindings, examples, and a docker image that builds them - from C, Rust and Zig to Lua, Python and Haskell.

The API is small enough to learn in an afternoon: draw things, play sounds, read input, load a Tiled map. Every language gets the same one.

It is good for learning, for jams, and for the kind of small game that should not need a 3GB engine.