moxzi.game
2,048 actors. One canister. Sixty frames a second.
Write the game in Motoko. Every entity is a real actor with its own state, its own identity and its own upgrade path. The renderer is a detail.
Play Lanternfall → Documentation Build a game
Lanternfall runs 2,048 courier actor* instances in a
browser tab, sustained for ten minutes at ~20 simulation ticks and ~60 presentation
updates per second. Developer preview.
You write Motoko. That is the game.
A project is Motoko, YAML and assets. Game state lives in actors and stays authoritative there. The framework owns the Rust: rendering, host services, platform export. No game-specific Rust host. No game logic in JavaScript.
- Every entity is an actor. 2,048 couriers, each with private state and
a principal you can address — inside one canister, not 2,048 of them.
(
actor*is experimental, behind--experimental-local-actorsand--experimental-local-actor-persistence.) - The renderer is disposable. Snapshots and deltas mirror into Bevy proxies. Throw the proxy away, rebuild it, and the game never notices.
- Deterministic and headless. The same package runs without a window, so you can simulate, checkpoint and profile it in CI.
- Saves that survive. Portable saves, lifecycle handling and atomic New Game replacement, handled by the framework.
Where it runs today
Qualified: Apple Silicon macOS, physical arm64 iPhone, the iOS Simulator, and the headless tools. Experimental: desktop Chrome 153 and Firefox 156 over WebGPU. Windows x64 is a development port. iPad, Intel Macs, Safari, mobile browsers, Linux and Android have no qualified path yet.
Get it
Play Lanternfall now — no install, no account. Desktop Chrome 153 or Firefox 156 with WebGPU, about 11 MB.
Install the tools
Two installers, because most people who want the Motoko compiler do not want a 3D renderer, and the two are licensed separately.
# the compiler — builds your game's Motoko
curl -fsSL https://moxzi.ai/install.sh | sh
# the game tools — moxzi-game and the player
curl -fsSL https://moxzi.ai/install-game.sh | sh
Both verify every artifact against the release's SHA256SUMS before
unpacking, and refuse to install if they cannot. Apple Silicon macOS; about 35 MB for
the game tools, which carry a renderer. Then point the builder at the compiler:
export MOXZI_BIN=~/.local/bin/moxzi
export MOXZI_COMPILER=~/.local/lib/moxzi/compiler.wasm
export MOXZI_LINKER=~/.local/lib/moxzi/linker.wasm
Build your own
A complete starter game — Pong, four Motoko files and a folder of assets — installs with the tools. Copy it out and build it:
cp -R ~/.local/lib/moxzi-game/examples/pong ~/pong && cd ~/pong
moxzi-game build . out/pong
moxzi-player out/pong native
Then change something: the ball speed in src/Game.mo, the court colour in
assets/court.material.yaml, a new button in
assets/controls.ui.yaml.
Headless for CI — no window, no GPU:
moxzi-game run-headless out/pong 1200 report.json
Full walkthrough in Build a game. Direct downloads and checksums are under /releases/game/.
Apple Silicon macOS is the qualified host today. One-command export to every platform is the next milestone.
Licensing
moxzi.game is licensed separately from the moxzi compiler. The compiler is source-available under BUSL-1.1. moxzi.game is All Rights Reserved while its terms are being settled. Third-party components — Bevy, the Rust crate ecosystem, the Motoko runtime — stay under their own licences.