McRogueFace/games/unwritten/design/BIBLE.md
John McCardle 80908f771c UNWRITTEN: complete short-form RPG at games/unwritten/
A 30-45 minute turn-based RPG built overnight as an engine showcase:
six recruitable characters (party of three), four recurring NPCs,
choice-driven dialogue with visible-but-locked skill checks, shops,
loot, levels, two bosses with in-battle Talk options, the reverted
grey-town beat, and an epilogue assembled from the player's actual
choices. 33 dialogue scenes / 171 nodes. Terrain is ColorLayers only;
kenney_tinydungeon supplies characters, items, and props.

Creative direction, story, dialogue, maps, and systems design by
Fable; implementation by four Opus subagents (framework, battle,
overworld, integration). Verified by tests/playthrough.py: a scripted
headless run of all three acts, 20/20 beats passing, plus per-system
unit tests (script integrity, UI kit, 225-battle balance sim,
overworld).

Run: cd build && ./mcrogueface --exec ../games/unwritten/main.py

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014vxWJ6GY384SmZiMVXgrF4
2026-07-03 10:11:12 -04:00

13 KiB

UNWRITTEN

a McRogueFace RPG

Tagline: The world is finished. The story is not.

Creative bible. Authored by Fable (creative director). Implementation agents: this document is canon. Where code and bible disagree, the bible wins unless SYSTEMS.md or ARCHITECTURE.md overrides with a concrete number or contract.


1. Premise

The Maker finished the vale on a Tuesday. Every gear meshed. Every door hung true. The sun ran on rails and the seasons turned on a mainspring, and when the last cobblestone was set the Maker sat down at a desk in the Study, opened a book, and prepared to write down what should happen here.

And could not think of a single thing.

The world was perfect, and pending. The Maker built a Custodian to keep it that way — to sweep up any accident that might accidentally become a story — and then the Maker rested, and has rested for three hundred years. The people of the vale walk their routes. The shopkeeper polishes the same axe. The mayor rehearses a speech for a festival that has never been scheduled. Nothing has ever happened, because nothing has ever been decided.

Then one morning PIP wakes up holding a blank book that was not there yesterday, and discovers they can do something no one in the vale has ever done: choose.

The game is the vale's first story. Dialogue choices are diegetic — every time the player picks an option, the Blank Book "hums" and writes it down. The epilogue is that book read back: an enumeration of what the player actually chose, framed as the story the Maker couldn't write.

Tone: warm, wry, a little melancholy. Terry Pratchett shaking hands with Earthbound. The comedy comes from a world of perfectly maintained pointlessness; the ache comes from characters who suspect they were sketched and never finished. Never cynical. Never winking at the player so hard it forgets to be a place.

Theme (the payload): a made thing does not need its maker to know what it is for. The stage is the artifact; the story is whoever shows up. Final line of the game, non-negotiable: "The Maker built the vale. You were what happened."


2. The Party (6 playable, active party of 3)

Swapping: at Hollowbrook's fountain, at shrine camps, and via the party menu outside battle. Battle offers SWAP as a full-turn action. All sprite indices reference assets/kenney_tinydungeon.png (16px, 12 cols).

# Name Sprite Class / fantasy Combat identity Dialogue tag
1 PIP 85 The Waker. An ordinary person, which in this vale is a miracle. Fast rogue: high SPD, steals, double hits NIMBLE
2 SER BRAMBLE 96 Oathknight who has guarded a door for 40 years because "someone wrote GUARD once and nothing since." Tank: taunt/guard-party, damage grows as he bleeds OATH
3 MOTH 84 Lamplighter of the Order of the Wick. Keeps candles ready for a light no one ever named. Healer/caster: heal, AoE radiance LITURGY
4 VERA 111 Alchemist selling "possibility tonics" that have never worked, because nothing is possible yet. Debuffer/AoE: acid flasks, tonics ALCHEMY
5 CANTOR 109 A chord-golem the Maker built to play the fanfare when the story began. Still holding the first note. Slow nuker: stuns constructs/undead, huge single hits RESONANCE
6 NYX 121 The Unlived. A character the Maker sketched, almost loved, and abandoned. Not dead — never alive. Glass cannon: crits, evasion, cannot be healed by items (only MOTH's Kindle or shrine rest) SHADOW

Recruitment paths (dialogue-driven; see SCRIPT files for the actual scenes):

  • PIP — starter.
  • BRAMBLE — Act 1, Hollowbrook north door. Joins when given a new oath ("guard the people as they walk through it"). An OATH-flavored option makes it graceful; brute-force option also works but sets bramble_grumbles.
  • MOTH — Act 1, Gearwood Cold Shrine. Joins after the player relights the shrine brazier (interaction, no check) and names what the light is for (3-way choice; remembered; quoted back in the epilogue).
  • VERA — Act 1, Griselda's shop dispute. Side with Vera → joins immediately, Griselda's prices +25% (griselda_grudge). Side with Griselda → Vera storms out; she can be recruited in Act 2 outside the Undercroft only via an apology that passes ALCHEMY (gift a Bomb Flask) or NIMBLE (return the ledger page Pip lifted). If never reconciled, she runs a stall in Act 3 and the roster is 5.
  • CANTOR — Act 2, Undercroft Chord Hall. Dormant. The Book writes his name: the first thing the player ever writes rather than picks. (Scripted scene; the choice is which name to write — "Cantor" / "his serial CH-0RD" / player picks silence, which recruits him as CANTOR anyway but sets cantor_quiet, changing his battle bark and one Custodian line.)
  • NYX — Act 3, greyed Hollowbrook, only visible standing where no NPC ever stands (the empty plinth by the fountain). If the player earlier asked Quill about "the ones who never woke" (asked_unwoken), she recognizes being remembered and joins warmly; otherwise a SHADOW-less party must pass a harder choice gate (offer her the Book to read → she joins, nyx_read_book). Missable: if both fail she appears at the epilogue anyway, unrecruited, with one devastating gentle line.

3. Recurring NPCs (4, non-party)

Name Sprite Role Arc
FERRYMAN ODD 87 Poles the canal barge between areas. The only fast-travel. Asks one question per ride about your latest big choice; never comments, just writes your answer on the hull among hundreds of blank planks. Final ride: reveals he was the Maker's first sketch — "I only know one route. The Maker never wrote me a second." If the player promises to write him one (odd_promised), the epilogue gives him a new river.
MAYOR QUILL 100 Anxious mayor of Hollowbrook. Quest-giver. Confidence arc: the player either decides for him (fast, sets quill_dependent) or asks his opinion and endorses it (slower, sets quill_confident). In Act 3 a confident Quill organizes the townsfolk into the Chorus (pre-battle buff vs the Custodian); a dependent Quill loops harder than anyone when the town greys.
GRISELDA 88 Smith & shopkeeper. Sells gear and items. Rival-or-mentor to Vera (see Vera). If befriended (griselda_friend: side with her OR reconcile everyone in Act 3), she reforges the Gatekeeper's Tooth into the best weapon, Toothed Regret, free. Otherwise it stays a trinket.
BELL 110 The Custodian's herald. Small, red, immaculate, courteous. Appears exactly 4 times: Gearwood clearing (curious), Undercroft gate (warning), greyed Hollowbrook (apologetic — "I liked the bakery. But it was becoming a story."), Custodian battle (component). With CANTOR in party + Story Points >= 6, the in-battle [RESONANCE] Ring Bell backward option makes Bell defect, skipping Custodian phase 2 and unlocking the "Rung True" epilogue variant.

4. Antagonists / Bosses (2)

  • THE GATEKEEPER — Act 2 boss. Sprite 20 (gargoyle face) at scale 7, flanked by two Chime-Imps (110, hsl-shifted teal). A wall with opinions. It keeps the deep vale "pending" and considers adventurers a filing error. Attacks: Stone Stare (single, heavy), Toll (AoE, telegraphed one turn ahead — "The Gatekeeper inhales."), Summon Chime (replaces dead imps). Talk option: [OATH] Bramble formally relieves it of duty — removes its DEF buff for the whole fight. Drop: Gatekeeper's Tooth (key item).
  • THE CUSTODIAN — final boss, Maker's Study. Sprite 41 (ornate mechanism) at scale 8 with two slowly rotating gold Frame halos (rotation animate, loop). Not evil. It is doing exactly its job: keeping the world clean, complete, and pending. Phase 1: Sweep (AoE), Redact (removes one party member's skills for 2 turns — "You are simpler now"), Polish (self-heal small). Phase 2 (under 50%): summons Bell + a grey Echo of the starter, gains Revert (undoes the last damage dealt unless a NEW action type was used since — mechanically rewards variety, thematically: repetition is what it eats). Talk options (each once): [LITURGY] name the light (MAG down), [RESONANCE] ring Bell backward (Bell defects, see above), [points >= 8] "Read it the Book so far" — it hesitates: skips its next turn. No drop. The reward is the epilogue.

5. Acts, areas, and the trope checklist

ACT 1 — Hollowbrook & the Gearwood. Hub town (fountain, shop, mayor's porch, the North Door, ferry dock). Recruit Bramble, resolve shop dispute (Vera), ferry to Gearwood: soft encounters (bats, slimes, spiders), Cold Shrine (recruit Moth, camp/swap point), find the Undercroft stair + Brass Key. Bell appearance #1.

ACT 2 — The Undercroft. Proper dungeon: FOV fog-of-war, wandering visible encounters (skeletons, echoes, scarabs), loot chests (one is sprite 92, a mimic — fight it, it drops well), the Chord Hall (recruit Cantor), optional Vera reconciliation outside the gate. Bell appearance #2. BOSS: Gatekeeper.

ACT 3 — Hollowbrook, Reverted → the Maker's Study. The Custodian's answer to the Gatekeeper falling: it reverts Hollowbrook. The player returns to the same map, greyed: desaturated ColorLayers, NPCs standing at their Act-1 positions repeating one line each, the fountain dry, Griselda's shop shuttered (unless griselda_friend), music/pulse gone. This is the "return to a modified area" beat and it must land hard — identical geometry, drained palette. Re-wake each NPC with a tag- or flag-gated choice (each rewake +1 Story Point). Recruit Nyx at the empty plinth. Bell appearance #3. Ferry to the Study — paper-white surreal area, ink-hatched walls, floating desk — BOSS: Custodian (Bell appearance #4), then epilogue.

Trope contract (all must ship):

  • Starter + 5 recruits, active party of 3 → roster above
  • 4 recurring non-party NPCs → Odd, Quill, Griselda, Bell
  • Return to a modified area → greyed Hollowbrook
  • 2 boss fights → Gatekeeper, Custodian
  • Items, shops, loot, levels, skills, stats → SYSTEMS.md
  • Dialogue drives outcome; skill checks & past choices gate options → recruitment paths, rewakes, boss Talk actions, epilogue variants

6. Aesthetic direction

Palette (core/palette.py must define these exactly):

  • INK = (11, 12, 16) — global background
  • PARCH = (232, 220, 192) — primary text
  • GOLD = (212, 169, 78) — accents, selection, the Book
  • DIM = (138, 132, 118) — secondary text, locked options
  • BLOOD = (205, 66, 57) — damage, HP low
  • TEAL = (80, 190, 180) — SP, magic
  • GRASS = (96, 160, 92) — heals, XP
  • PANEL = (22, 24, 32) — UI panel fill; outline (52, 60, 80), 2px
  • Grey-world wash (Act 3): every area color lerped 70% toward (58, 58, 62).

Area ground palettes (ColorLayer only — NO terrain tiles; per John's constraint, the tileset is for characters/items/props only):

  • Hollowbrook: umber field (54,44,34), paths (84,66,44), water (38,66,86), building footprints (30,32,42) with GOLD doorway cells.
  • Gearwood: moss (30,46,32) / (38,58,38) checker-ish variation, canopy-shadow cells (22,34,26).
  • Undercroft: (16,18,28) / (20,24,36), FOV fog via engine perspective colors.
  • Maker's Study: inverted palette — parchment floor (214,204,178), ink walls (28,26,24), everything UI-outlined in ink not gold. The world here is literally paper.

Sprites: characters/props at scale 2.0 on the overworld grid (32px cells → grid zoom handles it; see ARCHITECTURE), scale 4.0 for battle enemies, 5.0 for dialogue portraits, 7-8 for bosses. Chunky and proud of it.

Motion: every UI transition is an easing tween, nothing teleports: dialogue boxes slide up 12px + fade in; damage numbers float (EASE_OUT, 0.8s); battle actors lunge 24px toward target and back; scene transitions via scene.activate(transition=...) if available, else 0.25s full-screen INK frame opacity fade. NPCs idle-bob (draw_pos y +-0.06, 1.6s loop). The Book hum: a small gold Circle pulse behind the dialogue box whenever a choice is made.

Sound: none. The vale is waiting. (Also keeps scope sane.)

7. Voice samples (calibration for any text an agent must improvise)

  • Quill: "It's a very good door. Best in the vale. We're all very proud of it and nobody has ever once been through it."
  • Griselda: "Forty years I've sharpened this axe. You want to know what it's cut? Time, mostly."
  • Bell: "Please don't be alarmed. Alarm is untidy."
  • Odd: "One route. There and back. You'd think the water would get bored. Water doesn't. I checked."
  • Nyx: "You looked at the empty spot. Nobody looks at the empty spot."
  • The Custodian: "I am not your enemy. I am your margin."

Improvised text must match: short sentences, concrete nouns, no modern slang, no fourth-wall winks beyond what the premise already licenses.