how does it actually work?
How the MMO works.
The technical side, for the curious and for authors: what a shard is, how shards fit together, and how far along the road we are.
Today: a single-player alpha: seven shards, and a 3 × 3 grid you can walk across. Next: multiplayer, uploads, creator keys. Every part below says which it is.
- 01 · your machineBuild anything
Claude or any coding agent writes the code, with any tool you like. The code stays home; only its output ships.
- 02 · the packageA shardfile
wildshard buildbakes it into data, assets and sandboxed WebAssembly. - 03 · admissionChecked before play
wildshard validateruns on your machine the check the server will run. - 04 · the gridPlaced by the server
Upload it with your creator key; the server gives it a cell and everyone walks in.
Planned · not built yet
what is a shard, exactly?
The shardfile.
One sealed package: a shard.json, and every other file named by its SHA-256. No three.js objects, no functions, no custom shaders: only data the engine reads.
{ "version": "0.1", "identity": { "author": "Wildshard", "name": "Template shard", "revision": 1, "seed": 357, "slug": "template" }, "requires": { "sdk": "0.1" }, "authorCaps": { "players": 32, "speed": 15 }, "serverBudget": { "commandsPerTick": 32, "entities": 100, "memory": 16000000, "tickMicros": 5000 }, "runtime": null }
runtime: null means no trusted code at allWhat else is in a shard.json?
identity: slug, name, author, revision, seed. Never a grid position: placement is the server's.look: sky, sun, fog and grade, from the platform's fixed families, with a day cycle.simandstate: a 60 Hz fixed step, and named shared and per-player fields, each public, owner-only or host-only.creatures,encounters,quests,items: brains, packs, bosses and their phases, quest graphs and loot, as rows.edgeandentryways: four edge profiles, and an 8 m opening at the middle of every edge, at road height.tiles,files,budgets: 62.5 m and 125 m tiles, every file's bytes, triangles and draws, and the caps it promises.
how is a stranger's shard safe on my phone?
Budgets first.
Nothing loads until it fits. A shard declares what it costs, and admission checks the real bytes against it before anyone plays it.
wildshard validate my-shard
prints a report card: memory at the worst spot, draws, triangles, script CPU and fuel, download size, time to playable
- Strict data
Checked as JSON before a field is read: functions, classes and unknown keys are refused.
- Exact bytes
Every file's exact size and SHA-256, again on every load.
- Hard caps
Library ≤ 25 MB in memory, 8 MB to download; simulation ≤ 25 MB and 2 MB. The whole page: 1,000 MB playing, 1,800 loading.
- Four roads in
An 8 m opening mid-edge, flat, clear and dry. Miss one: "illegal shard".
- A measured run
The simulation runs headless for 240 ticks to measure script CPU and fuel.
can a shard run its own code?
Behaviour in a sandbox.
Yes, for new behaviour: a puzzle, a boss's mind, a gadget. It's written in AssemblyScript, compiled to WebAssembly, and run metered, with nothing to reach.
- It only touches its own shard. It writes its declared fields, spawns, moves and sends events within limits, and asks the world four things: raycast, overlap, nearest walkable point, path.
- A runaway is stopped, not waited on. Every loop pays fuel. On a trap nothing it wrote is kept, and after three failures the module is switched off.
- The same result everywhere. Every float is guarded, so the same bytes give the same answer in Node and in Safari's WebKit: a gate checks it on every push.
how do shards become one world?
The grid.
Every shard is a 500 m cube, built alone, then placed on the grid. A 15 m highway runs between shards and the platform eases each edge down to it: centres sit 555 m apart.
- No loading screen. The next shard gets ready while you're on the road. You enter its simulation 6 m before its edge and leave 10 m after, so a border never flickers.
- The crossroads is the worst case. Where four shards meet, four corners are within ~39 m, so every budget is proven there. At most four shard simulations are in memory.
- Each shard owns its frame. Inside, it sets the sky, sun, fog, grade and post. On the highway, the neutral road look.
what's the engine, and what's mine?
Four layers.
The code is four packages, and imports only point down. Guards in the repo refuse anything that points up or sideways.
src/shards/<slug>One folder per shard. A shard never imports another.
@wildshard/sdkWhat authors build against: the shardfile schema, the
wildshardCLI and the runtime facades.@wildshard/gameKnows it is Wildshard, never a particular shard. Holds what two or more shards share.
@wildshard/engineRendering, physics, input, audio. Knows no game and no shard: content arrives as data.
The truth today: the template is pure data. The six older shards still carry their own TypeScript in a runtime/ folder while they move onto the format, in stages: 80/20, then 90/10, then 100/0.
how will we play together?
Multiplayer, as planned.
Planned · not built yetNot built yet: today every shard is single player. This is the design the shardfile is built to fit.
- The server decides everything shared: creatures, combat, loot, quests. Hits are settled against what you saw.
- Rooms of up to 32. A full shard opens a copy and keeps parties together.
- Two wallets. Your name, title, cosmetics and catalogue gear travel; a shard's own coins and items stay in it, so no shard can break the economy.
- One ledger. Only what the server saw can grant a reward, and only once: a dropped connection never pays twice.
Already true: the simulation runs without a renderer (the template's runs in Node), and every shard.json declares a serverBudget, a promise for the server that doesn't exist yet.
who owns a shard, and what does it cost?
Yours. Free.
You keep the rights to what you build. Uploading gives Wildshard a licence to host it and show it in the world.
- Playing is free. Building is free with your own agent. Uploads are never charged.
- Your creator key is your author identity: it signs your uploads.
- A renovated shard keeps its original author's name; a remix of a public shard credits it automatically.
- The first authors to upload become Founding Authors, with a plaque on their shard.
how far along is it?
The honest road.
States, not dates: the MMO's milestones, read from the plans on 10 October 2026.
- ✓ doneThe package
The template boots from its shardfile with no trusted code, and its simulation runs in Node with no renderer.
- in progressThe grid
A 3 × 3 you can walk across with no loading screen. The crossroads test passes on desktop; on iPhone, frame pacing still misses.
- in progressEvery shard on the format
The template is data only; the six older shards are moving onto it, none at 80/20 yet.
- not startedMultiplayer
Two players in one shard on an authoritative server. Designed; no plan yet.
- not startedUploads and creator keys
An outside author uploads a validated shard and it appears on the grid.
- not startedThe 25-shard grid
Twenty-five shards live, the highway between them, and profiles that travel.