Live demos
Three complete apps, each one HTML file on top of a small shared harness, running against the public network. They are the same pages the browser test suite drives on every change, so what you see here is what passes.
Open the same room in two tabs, or on two devices, and play together. Every client runs the whole simulation itself; the network only delivers everyone's inputs in the same order.
FPS Play ↗
First person, 3D box physics. WASD to move, mouse to look, hold the button to fire, R to reload a 30-round magazine, space to jump. Click the canvas once to capture the mouse.
Top-down shooter Play ↗
Arena deathmatch against five bots. WASD or arrows to move, hold the mouse button or space to fire.
Chat Open ↗
An ordered message log, the smallest complete app. Type and send; five bots keep the traffic flowing.
Everyone who clicks lands in the same room, so you may find other people there. To pick your own room name, use the launcher.
What to look for
- Same world everywhere. Each client hashes its world every tick and reports the hash. The nodes compare them, so two tabs disagreeing is something the network notices, not just something you might.
- Late joiners catch up. A client that opens the room later receives a snapshot and the inputs since, and lands on the same frame as everyone else.
- Nodes, not a server. The room lives on one authority node and is replicated to others. Kill a tab and rejoin: the room is still there.
Read the source
The demos are in the repository under e2e/fixtures: fps3d.html, topdown.html, chat.html, and the harness.js they share, which does the connecting, the tick loop, snapshots and reconnection. The whole sequence is a good tour of the SDK, and the Getting Started page walks through the small version.
The demos connect as the shared default app with no API key. Your own app on the public network needs one; see API Keys.
