
Interactive Narrative
Choice → Consequence → Branch → Ending
Your choices genuinely change where the story goes and how it ends — interactive fiction, Life is Strange, and Orange Light (Chengguang) games are built on this.
Every option feels like signing at a crossroads; at the ending you wonder "what if I had taken the other road..." — and then you actually go back and pick it.
This is the border of narrative and gameplay — the "choice → consequence → branch" structure gives a story its first sense of "me."
Instant Playable Demo
The Interactive Narrative pattern centers on the loop where the player's choices genuinely alter the story's direction. At key junctures, the player makes decisions, each producing observable or traceable consequences that cause the narrative to branch into distinct paths and endings. Fundamentally, it is a branching state tree: nodes represent scenes, edges represent choices, and leaves represent endings. In implementation, branching narrative relies on state tracking and conditional systems, and all consequences of choices must be readable and reproducible.
The core purpose of Interactive Narrative is to map the player's decisions directly onto changes in the story's trajectory, transforming the game from passive reading to active participation. It achieves this through state tracking and branching trees, giving players a sense of causality and control, thereby enhancing immersion and replay value.
Mastering Interactive Narrative enables designers to create highly emotionally engaging experiences with limited resources. It blends writing and system design, emphasizing the explainability and cost of each choice, driving deep synergy between story and gameplay, and is a core competitive advantage of modern narrative games.
Core Gameplay System Breakdown

- Ensures choices have real consequences, avoiding "no matter what you choose" pseudo-branching
- Uses state variables to remember what the player has done, allowing consequences to be delayed
- Uses endings to provide a reason for the player to replay
- Understand the minimal structure of a branching tree (nodes/edges/leaves)
- Master state variable design: what should be remembered and when it should be realized
- Be able to design a minimal playable narrative loop with 3–5 distinct endings
- Choice: each node offers 2–4 distinct options
- Consequence: a choice must alter state (immediately or with delayed visibility)
- Ending: states converge into distinguishable final outcomes (at least 2)
Common Combos & Variants
Advanced Design & Algorithms (collapsed)Click to expand
- Pseudo‑branching (different paths that converge with no record) immediately erodes player trust
- Branching explosion makes the script unmaintainable; use convergence points to contain it
- If all consequences are immediate, there is no suspense; if all are delayed, there is no feedback—mix them
- State machine / directed graph: narrative nodes and branching conditions
- Variable system: flags, affinity, clue collection
- Ending determination: multi‑condition thresholds and priority
const ENDINGS: [string, (f: Flags) => boolean][] = [
["Bonfire Night Talk", (f) => f.kind && f.courage], // ordered by priority, highest first
["A Bowl of Hot Soup", (f) => !!f.kind],
["Shadow Under the Lamp", (f) => f.courage && !f.warm],
["Safe and Sound", (f) => !!f.cautious],
];
const ending = ENDINGS.find(([, cond]) => cond(flags))?.[0] ?? "Rain Lets Up";