← Devblog

The road to launch: four phases and one cut

·Jeffrey Torres

I replanned the end of the project this week. The roadmap now shows the result. This post is the reasoning behind it, phase by phase, and an account of the one feature I took out.

First, the phase I am in

The active world has an engine. Skip a week and the application works out who went where and what changed. The current phase gives that engine a world worth simulating: districts inside towns, rated locks, items that change your odds, hunger and fatigue, shops, factions, rumours and rolled encounters. Five of its twenty milestones are done.

Everything below comes after it, in this order.

Play quality and first run

I spent part of September reading what players of AI roleplay complain about. Not what they ask for. What makes them stop. The same few things came up again and again, and none of them is a missing system. They are defects in the turn itself.

The narrator speaks for your character. You write one line and the reply has your character crossing the room, making a speech and agreeing to something. The fix has three layers. The prompt states the rule. The application checks every reply for it, with no model call. And on a flag, a small helper model names the offending sentences and the application deletes them. The helper may only delete. The stored text is always a subset of what the narrator wrote, so the cleanup can never add a word to your story.

The same phrases every turn. The application will count reused phrases and scene openings and hand the narrator a short avoid list on the next turn. No second request, no sampler tricks. Just a count and a list, both visible in the inspector.

A refusal stored as story. When a provider declines to write something, that is a fact about the provider, not an event in your world. It becomes a named turn outcome with its own controls, and it is never saved as narration.

A model that cannot run the game. Vivarium asks more of a model than prose. It needs strict structured answers to decide what your action meant and whether the narration contradicted the outcome. Some models cannot do that. So a model will have to pass a readiness check before it runs a story. The check runs on your own key, behind a prompt that states the rough token cost first. It never runs silently. The results build a shared list of which models are known to work, and nobody who ran a check is ever named in it.

An empty library on day one. Quick start takes a new account from sign-in to the first scene of a starter world, with a guided walk through getting a provider key on the way.

There is also a small one I like: “Remember this” on any narrator message. One tap, and the line becomes a stored fact.

The world catalogue

A feature list cannot show what this engine does. A world can. So the first release ships with five starter worlds in different genres: a fantasy adventure, a mystery in one town, a science-fiction ship or station, a survival world after a collapse, and a port town from Edrath, the world I have been writing for years. Each has a full cast with personalities, relationships and somewhere to be.

The starter worlds sit in one catalogue with the larger worlds I write for Vivarium, and I mean to keep adding to it. The full Edrath is the first of the larger ones. Every listing points at a frozen version of a world, so a story started from it cannot change underneath you when I publish an update.

This is also the place to say how Vivarium will pay for itself, because I would rather you heard it now than at launch. There will be a free plan and one subscription. Nothing is sold one piece at a time: no world, no character card, no shop. The starter worlds are open to everyone. The larger worlds carry a Premium mark and come with the subscription, along with world authoring, deep memory and the wider living world. You bring your own provider key on either plan. I have not set a price, so I am not going to name one.

What I have settled is what happens if you stop subscribing, because that is the part people are right to worry about. Nothing is deleted. The worlds you wrote stay yours, stay playable and stay downloadable. Stories set in premium worlds pause. A paused story stays readable, and it resumes exactly where it was when you come back. Pausing happens only when the subscription has actually ended. A first failed payment pauses nothing. The FAQ has the full answers.

This phase also lets you keep the world a story became. Play for a hundred turns, snapshot the world as it now stands, and start a new story from it.

Launch readiness

This is the phase that opens the door to people I have never met. Self-service sign-up. Account deletion that actually erases your data, with a grace period in case you change your mind. Restoring a world or character you exported, back into your own account.

And a door for the players I expect first. If you already have character cards and lore books from another tool, you can convert them. I chose that word with care. A card is never imported as it stands. It is read as text, your own model proposes a Vivarium character from it, the application validates the proposal strictly, and you review it before anything is saved. Values the model had to guess are marked as guesses. The card’s instruction fields are shown to you and then dropped, because nothing a file says gets to instruct the narrator.

It goes the other way too. A character you wrote can be downloaded as a card.

Hosting

Last, because nothing above depends on it. The whole service is described as code, secrets are encrypted under a managed key, backups are proven by restoring them, and the game gets its own address beside this site.

The feature I cut

Until this week the plan had a sharing phase. You would publish a world, other players would find it and copy it. I designed it in full, then withdrew it the same day. I would rather explain that than let it quietly disappear from the roadmap.

Moderation never ships. Reports, takedowns, appeals and repeat offenders are not a feature that is built once. They are a duty that arrives every day. Vivarium is one person.

Authorship cannot be verified. Whoever publishes first looks like the author. The honest wording I had for a listing was “shared by”, and honest wording does not make the disputes go away.

Hosting other people’s content changes what the product is. Age checks, regional rules and payment-processor questions all come from hosting what strangers upload, and only from that. With nothing hosted, none of them apply.

Players already have a way to share. Cards and lore books are traded freely today. Conversion and card export plug Vivarium into that without making Vivarium the host.

So in the first release, everything you make stays in your account. You can export it as a backup and restore it. The only worlds that come from somewhere else are the ones I wrote. The cost is real: I am the only source of worlds at launch. I will look at sharing again after launch, as a phase of its own, when I know whether people want it.

The principle has not moved. The AI controls expression. The application controls reality. The rest of the road is about making that good to play, and then putting it in your hands.