Branching Skies

Stories that remember you.

← All posts

Editorial card reading A Journal That Cannot Drift, from the post on an AI RPG that tracks quests, Branching Skies.

An AI RPG that tracks quests: how a journal stops the drift

An AI RPG that tracks quests saves each quest with named milestones and advances them only when the underlying event really happens. The journal you read is written from those saved steps instead of improvised by the narrator. Almost no product in the category does it. In most, the quest exists only as prose in a chat transcript, and the objective quietly mutates as the transcript scrolls. You accepted a job to find a missing pendant. Four sessions later the narrator is confidently steering you toward a bandit camp nobody ever mentioned, and if you ask about the pendant you get a freshly invented status update.

We build Branching Skies, a mobile AI RPG, and quest tracking was one of the last systems we shipped precisely because doing it honestly is harder than narrating it. In our own development play, the tracking once caught the narrator inventing an item name in real time; that moment is below.

Why do quests fall apart in most AI RPGs?

Because the quest has no existence outside the conversation. A language model predicts the next scene from the text in front of it, and its recall of that text is uneven. The Lost in the Middle research found that model accuracy drops sharply when the relevant information sits deep in a long context. That is where your quest acceptance scene ends up by session three. The model then does what models do. It fills the gap with something plausible. Plausible is the problem, because a plausible objective is close enough to the real one that you may not notice the drift until the ending contradicts the middle.

Telling the model to remember does not fix this, since the failure is in what it can reliably see. The fix has to live outside the model, in the same place your reputation and consequences have to live: saved facts the story has to read.

What does it mean for a quest to be a record?

It means the quest is authored and stored before the narrator ever speaks about it. In Branching Skies, a quest is written into the world's canon with its milestones spelled out, and when your campaign picks it up, it becomes your quest. From then on, the narrator tells the story of the quest, and the journal holds what is true about it: which milestone you are on, what happened at each step, and when it ended.

Open your journal mid-story and you see the quest, the one-line objective you are currently on, and a history of finished quests grouped with how each one actually ended. Because each entry is written at the moment its step completes, rereading the journal next week shows the same words. There is nothing to misremember, which is the property a memory system needs everywhere.

How does the game know you actually did the thing?

By watching facts instead of narration. Each milestone waits on a concrete fact: this item is now in your pack, or this many in-game days have passed since an earlier step. Only a true fact advances the quest.

This earned its keep in one of our own development sessions. A quest milestone was waiting for the player to be holding a particular pendant. When the scene finally delivered it, the narrator invented its own casual name for the item rather than the canonical one in our files. A tracking system that trusted the narrator's words would have missed the moment entirely, and the quest would have stalled forever on a step the player had already done. Ours checked the pack instead, found the pendant sitting in it, and advanced the milestone on the spot. That moment is the whole argument in miniature: the storyteller and the scorekeeper have to be different systems.

This is the same split that decides whether an AI companion picks the right spell in combat. Models are excellent narrators and unreliable bookkeepers, so the game keeps the books itself.

What does quest tracking look like when you are playing?

Quiet, mostly. When a quest opens, a small on-screen moment says so and gets out of the way. While you play, the journal is one tap away, split into your main story, your companion's thread, and the quests you have finished. The current objective is a single line that updates as milestones complete, so a player returning after a week can reorient in five seconds without asking the narrator for a recap it might get wrong.

Completion works the same way in reverse. The finished quest moves to the completed list with its outcome, written from the milestones that actually fired. If you took an odd path, the history shows your odd path.

Can a quest still start by accident?

Yes. In the same play sessions as the pendant moment, a player asked the narrator whether a character's missing pendant was a quest. The narrator, agreeable to a fault, said you are right and started it. That is wrong. Asking whether a job exists is not taking the job. The tracking held together perfectly from that point on, which is its own kind of embarrassing, because it faithfully tracked a quest nobody had agreed to. The fix, gating quest starts on explicit commitment, was filed the same night and sits near the top of our list.

We publish defects like this because the test for any AI campaign worth your time is whether its failures are visible and fixable.

Where this is heading

Branching Skies is a curated, mobile-native AI RPG set in Syrinway, a world we ran as a homebrew tabletop campaign for close to a decade before writing a line of code. Everything in this post is working in our development builds today, from the authored quests to the journal, and every example above comes from our own play. The early beta list is open now. If you want a campaign where the job you took is still the job next month, the form below is where it starts.