NarraTree: free dialogue, authored endings
A plot engine for AI narrative games. Characters improvise dialogue freely, yet every conversation is steered toward one of a story’s authored endings — and the whole reachable story is drawn as a graph the writing team can shape.
The tension
Every studio building an AI narrative game runs into the same pair of goals that cannot be held simultaneously by any single tool. The conversation must feel open — a player should be able to say anything and be answered in character. And the story must hold together: stay inside its lore, keep its pacing, remain safe to ship, and above all arrive somewhere. Hand-authored branching scripts deliver the second and forfeit the first; freely generative models deliver the first and forfeit the second. NarraTree holds both by separating them: the conversation is generated and open, the destinations are authored and fixed.
How the engine works
A story is authored as a small, fixed set of endings — ten is a comfortable number. Between them the dialogue is left open. What the system constrains is not what can be said, but where it can lead: as the conversation proceeds, each exchange re-weights a live plot graph in which every reachable ending is an attractor. A player speaks — by picking a line or typing one — and the system reads the intent behind it, updates the characters and the world, prunes the endings that no longer fit, and sharpens the probabilities of the ones that remain. A story that began with every ending open narrows steadily until it commits to one. The model is responsible for improvising language and local direction; the authored structure is responsible for canon and destination. Neither is asked to do the other’s job.
The plot graph
The graph is built for the writing team. It draws the whole reachable story at a glance: beats that have happened, forks where one road was taken and the others hang faded, beats projected ahead, and the authored endings with their live probabilities. Endings that can no longer be reached are struck through as the story commits. Around the graph sit the readouts a writer wants — character state, active tropes, world flags, story arc position — and any node opens to show what it contains.
Because the reachable space is finite and drawn, a writer approves what a scene can and cannot lead to, instead of proof-reading every line a character might ever say. Effort goes into the endings and the forces that move a story between them; the hand-written branch count stops being the ceiling on how open a game can feel.
The whole of it is drawn so it can be shaped rather than merely hoped for. Openness where it delights, authorship where it counts.