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
The tools run on Apple Silicon Macs, with a windowed player and a headless mode for CI. Games have also run on arm64 iPhones and, experimentally, in desktop Chrome and Firefox over WebGPU, but those exporters aren't in the preview tools yet. iPad, Intel Macs, Safari, mobile browsers, Linux and Android aren't supported.
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 check every download against the release's SHA256SUMS before
unpacking, and stop if a checksum doesn't match. 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.