Branching Skies

Stories that remember you.

← All posts

Editorial card reading The Baker Already Knew, from the post on games where NPCs remember what you did, Branching Skies.

Games where NPCs remember what you did (and how it works)

Games where NPCs remember what you did all share one piece of architecture, whatever their genre: the event is recorded as structured state the moment it happens, and characters read that state instead of relying on whether they were in the scene. A memory that lives only in the scene dies with the scene. This is why the category of AI-narrated RPGs, which would seem perfectly suited to remembering, is actually worst at it. The story is improvised from a scrolling transcript, so the guard who caught you stealing evaporates from the world's mind a few scenes later, along with the theft.

We build Branching Skies, a mobile AI RPG, and the moment that convinced us our version of this system worked was not one we scripted. It came from a logged play session in our own development build, and it involved a baker who was nowhere near the crime.

What does it look like when a world actually remembers?

Here is the sequence, straight from our session logs. The player cheated at dice in a tavern in Derandil, got caught, and eventually struck the gambler in a crowded room with a watchman named Berimore sitting six feet away. Berimore charged him on the spot: a public assault, written down, two ticks on the wanted meter at once. The player ran, lost the watch in an alley, and slept it off as a marked man.

The next morning he walked across town to a bakery looking for honest work, and introduced himself to a baker who had not been anywhere near the tavern. The baker's greeting: quick enough to outrun the Watch, it seems, that much is whispered already. Then he offered a bread delivery anyway, hood up, and priced it like a man who knew exactly what the other option was, because it pays better than a cell at the Watch Quarters.

Nobody wrote that scene. We wrote the baker, years ago, as part of the town. What the system did was let something the player did in one building at night change how a stranger spoke to him in another building the next morning. The baker had seen nothing. He had heard. That gap between witnessing and knowing is the whole feature.

How does a wanted system actually work?

If you want a one-sentence anchor: think of a GTA-style wanted level, minus the tanks, applied to a fantasy town. Underneath, three rules do the work in our build. Crimes need witnesses: an offense nobody saw writes no charge, because a wanted level is the town knowing, not the universe keeping score. Crimes carry weights: a public assault adds two ticks at once, and the resulting tier decides how the watch treats you, from a second look to active pursuit. And heat cools: keep your head down and your tier drops by one for every three quiet in-game days.

That last number has a story. We originally set decay at thirty days, played it ourselves, and spent an in-game month lying low waiting to be forgiven. It was a boredom simulator, so we retuned it to three. The wider industry is converging on the same instincts, with the Gothic Remake building NPC memory of thefts and killings into its world. The difference in an AI-narrated game is that none of this can be left to the narrator's recollection. Every tick, tier, and decay day in our build is a recorded value the storyteller reads each turn, which is the same discipline behind every consequence system we have written about.

Why can't the narrator just remember the crime?

Because language-model recall is neither complete nor honest about being incomplete. Ask a transcript-based narrator whether the watch is still looking for you and it improvises an answer from whatever recent text it can see. Sometimes it forgets a crime you committed. The failure that actually stings is the opposite one: it invents a manhunt that never happened, with total confidence, and now your campaign has a fork in it that no one chose.

Fixing this is an architecture decision, the same one we walk through in why every AI RPG forgets your story. The state layer records the assault, the witness, the tier, and the days since. The narrator is fed those facts every turn and narrates within them. When the baker mentions the whispers, that line is improvised, and it is improvised from a true record rather than from vibes. Storytelling stays creative. The facts stay fixed.

What separates gossip from a global flag?

Locality. A cheap version of NPC memory is one global reputation number, and you can feel the cheapness immediately: rob a coastal town and a mountain hermit six regions away somehow sneers at you. In our build the wanted record belongs to the town where the witnesses were. Derandil marked our player. The next town over has not heard of him, and that is not a bug, it is geography. News travels inside a town because the record is the town's, and characters in it speak from what the place knows, each in their own voice rather than one interchangeable narrator voice.

Individual grudges layer on top. The gambler the player struck holds his own opinion, stored per character, separate from the town's ledger. And organizations keep their own books entirely, which decay differently from town heat, a distinction deep enough that it gets its own post when we write up factions. If you are evaluating any game in this space, the seven-point memory checklist covers how to test for locality in fifteen minutes.

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. The wanted system, witness-gated charges, per-town heat with three-day decay, and the gossip that reached the baker are all working in our development builds today, and every scene in this post comes from our own logged sessions. The early beta list is open now. If you want a world that notices what you did and has opinions about it, the form below is where that story starts.