Build multiplayer games with Asobi
Asobi is an open-source game backend built on Erlang/OTP. Write your game logic in Lua or Erlang — both are first-class. Hot-reload it without kicking players. Self-host it or — soon — let us host it for you.
Start here
Quick start
Install Asobi, spin up the engine, deploy a Lua game — all in 15 minutes.
Core concepts
Matches, worlds, zones, voting, phases. The primitives Asobi gives you.
Tic-tac-toe
Your first Asobi game. Two players, one match, authoritative Lua.
Lua API
Full reference for the game.* API available in your Lua scripts.
Erlang API
Behaviours, modules, and specs for writing games directly in Erlang.
Cookbook
Copy-pasteable recipes for common patterns.
Self-host
Run Asobi on your own infrastructure. Docker, bare metal, or k8s.
Why Asobi?
Write game logic in Lua (fast iteration, what game devs already know) or Erlang (behaviour-level control, maximum perf). Both run on the BEAM, giving you:
- Restart-free hot reload. Deploy new code without disconnecting players. Works for both Lua bundles and Erlang beams. Nobody else on the market does this.
- Fault tolerance. Crash one match, others keep running. OTP supervision trees isolate failures.
- Concurrency. One process per match, one process per zone. Scales to hundreds of thousands on one node.
- Mix-and-match. A mostly-Lua game can drop into Erlang for a hot loop. Both call the same
asobi_matchbehaviour underneath.
Hosting
Asobi is fully self-hostable today — see the self-host guide. If you'd rather we run it for you, managed cloud hosting is coming at asobi.dev/cloud — join the waitlist there.
Want something that isn't here?
These docs are new and growing. If a page is missing, shallow, or wrong: open an issue or drop into the Discord.