Kelly Mears

Procedural Narrative

Story content generated algorithmically from rules and state at runtime, trading hand-crafted specificity for combinatorial scale.

Play & Games2 min read291 words4 out · 2 in
also calledGenerated Narrative

Procedural Narrative describes story content assembled by a rule system at runtime rather than written in advance by an author, trading the specificity of hand-crafted prose for a scale no writer's room could produce line by line. Dwarf Fortress's legends mode is the extreme case — centuries of wars, migrations, and dynastic collapse generated from simulated cause and effect, none of it individually written, all of it individually loggable after the fact. Middle-earth: Shadow of Mordor's Nemesis System is the more legible mainstream case: a random orc who kills the player is remembered, promoted, and given a face and a grudge, so a procedurally assigned encounter accretes into something that reads as a personal rival without anyone having authored that specific enemy in advance.

The distinction from Branching Narrative is about authorship, not branching itself: a branching narrative's every path was individually written by a person even if the player never sees most of them, while a procedural narrative has no author standing behind any single instance — only the generator that produced it, and the generator has no idea which specific outcome any player will actually get.

The genre's real weakness is a legibility gap between generation and experience. A Dwarf Fortress legend reads as riveting history summarized — a paragraph pulled from the simulation's log — but living through the same events in real time, one simulated tick at a time, is usually tedious, because the generator has no sense of dramatic pacing; it doesn't know which of the thousand events it produced is the one worth foregrounding. Procedural narrative systems that work well, like the Nemesis System, tend to solve this by generating sparingly and letting the player's own attention supply the pacing a pure simulation log can't.

See also4

Linked from2