▶ PROTOTYPE // NOT A PRODUCT // NO DATE
Myths & Mortals
A server that owns the truth.
Everything else is still a placeholder.
This is the honest shelf. Myths & Mortals is a prototype — a Rust and Bevy client wired to a SpacetimeDB module, built to find out whether a persistent multiplayer world is something we can actually hold up. Players connect, move, hit things, die and respawn, and the server is the only thing that decides any of it. That much is real and running. Everything a person would call a game — art, sound, systems, a reason to log in — is not built yet, and we are not going to imply otherwise on our own website.
There is nothing to download and no date to give you. Prototypes here either graduate into the catalogue or quietly stop getting commits, and we have never been able to tell which in advance.
▶ git log — not a wishlist
WHAT ACTUALLY RUNS
Roughly 1,700 lines across a client and a server module. Everything on this list is implemented and working today; nothing on it is planned, aspirational or coming soon.
-
SERVER
THE SERVER OWNS IT
Players, enemies, damage and death live in SpacetimeDB tables and change only through reducers. The client asks; it never decides. Nothing is trusted from the wire.
-
SERVER
ENEMIES ON A TICK
A scheduled reducer wakes up, moves every enemy toward whoever is closest, and swings. It keeps doing this whether or not a single player is watching.
-
SERVER
DEATH, THEN PAPERWORK
Kills write a death event, the corpse becomes a tombstone the whole world can see, and a scheduled respawn decides when — and whether — anything comes back.
-
CLIENT
EVERYONE SEES EVERYONE
A Bevy client subscribes to the tables and reconciles remote players and enemies as they move. Two windows on one machine is still the entire QA department.
-
CLIENT
CONNECT, FIGHT, RESPAWN
A connect screen, input, a camera that follows, an attack, a self-damage button for testing, and a respawn prompt. Programmer UI, proudly.
-
INFRA
IT HAS A HOME
The module builds and publishes to a containerised server, so the world outlives the laptop it was written on. That was the last commit, and then June happened.
▶ the part nobody puts on a website
WHAT IT ISN'T
A prototype is a question, not a promise. Here is everything this one cannot do, written down in the same place as everything it can, because the alternative is a page that quietly implies otherwise.
-
MISSING
NO ART
Coloured rectangles, all the way down — including the icon at the top of this page. If this graduates, a human gets commissioned to draw the real thing, same as every game we ship.
-
MISSING
NO GAME YET
There is a world and there are things in it that can kill you. There is no progression, no content, no economy, and no answer to "and then what?"
-
MISSING
NO BUILD, NO DATE
Nothing to download, no store page, no wishlist button, no newsletter. When there is something, it will be in WHAT WE SHIP like everything else.
Vibe-coded fast. Labelled honestly. Those two go together or neither is worth much.
▶ cat Cargo.toml
THE STACK
Rust end to end, which is a strange choice for a studio that ships Flutter word games, and exactly why it exists: the prototype shelf is where we find out what a stack costs before a product depends on the answer.
-
CLIENT
BEVY
Rust, ECS, and a renderer trimmed to the features actually used. Runs on Linux, macOS and Windows because nothing in it wants otherwise.
-
SERVER
SPACETIMEDB
The database is the server. Tables hold the world, reducers are the only way to change it, and clients subscribe instead of polling.
-
GLUE
GENERATED BINDINGS
Client types are generated from the module, so the wire format cannot drift from the schema without the compiler having something to say about it.