Perpetūra: building a route from brief to playable
Before I draw a single wall in a level, I write a location brief: what happened in this space, who uses it, what the player is meant to feel while they’re in it. Skipping that brief doesn’t save time. It just moves the argument to the detail pass, where it costs more to lose.
Perpetūra’s routes start the same way, before any prose. Reine’s route, Belle Époque Paris in 1893, is the one I’ll walk through here.
The brief
Before a word is written, the route has a character brief: what she wants, what she fears, which emotional register the story plays in, what the route’s job is in the series. A constraint document, not a character sheet. It names what the route must do to be itself, so the writing can stay on its line.
The research sprint
Once the brief is locked, /new-route triggers a deep-research phase.
For Reine, that meant a research sprint on 1893 Paris: sourced,
adversarially verified, confidence scores on each finding, and an
explicit list of things that seemed right but were refuted.
The output is a research document whose whole job is to surface constraints the brief hadn’t anticipated. Some findings confirmed the plan. Several changed it.
Scaffold before prose
After research, /new-route generates the full story skeleton: an
outline, then a structural stub of all 18 chapters plus prologue and
epilogue. Correct chapter keys, empty prose placeholders, every choice
wired so no path is unreachable. The file compiles and routes correctly
before any real prose exists.
Blockout pass. In level design you don’t dress a space while the navigation is still broken. Same rule here.
Writing chapter by chapter
Prose fills in against the outline, and the outline is there for accountability rather than as a ceiling. I can deviate from it, but that’s a decision, and the reasoning goes in the notes.
Reine is 18 chapters plus three ending variants, written in sequence. Each chapter’s choices feed the lean accumulation that routes the story toward its ending. The player never sees the tally.
The QA gates
Two automated passes run on the finished draft before any human editorial work touches it.
The prose linter catches em-dash counts, repeated sentence openers, name inconsistencies, and style-guide violations. Things a writer stops seeing after the third read.
The structural audit verifies that every chapter node is reachable, every choice is well-formed, every codex entry referenced in the prose actually exists. It’s a connectivity check: the same work as confirming every exit in a level leads somewhere.
The editorial council is a separate step, written up elsewhere in these notes. Reine went through two council passes before release.
Revision in tiers
Fixes go in strict order: spoiler safety first, then structural problems, then over-explanation, then embodiment, then polish. Never out of sequence. Detailing a space whose navigation doesn’t work is the same mistake in both crafts.
Reine’s revision plan documented each fix with tier, rationale, before and after, and the commit that applied it. The plan becomes the audit trail; the audit trail catches regressions.
What done looks like
A shipped story is a data file, three audio tracks, a cast image, codex
entries, a flowchart, and CSS wired to the story’s visual register. The
prose linter passes clean. The structural audit confirms full
reachability. A complete play session at 375px mobile clears without
errors. Then the wip flag flips to false.
None of it is really about moving faster. It’s the same reason I write a location brief before I place a single wall in a level: so that by the time I’m standing in the finished space, or reading the finished chapter, I’m not still arguing with myself about what it’s for.