HEXWORK - A Lantern in the Deep: 3D ASCII terminal roguelike RPG in Rust. Entirely designed and built by Muse Spark 1.3 to evaluate if I like the model.
hexwork docs 03-systems-design.md
13 kB
Markdown
at main

03 — Systems Design #

Every feature: what it is, how it feels, how it compounds. The engineering source of truth for gameplay.

Design laws apply throughout: TDTTOE, deducible cruelty, everything-has-2+-uses, every death tells a story.


3.1 Character & progression — a delver, not a chosen one #

Ancestries (flavor + small mechanical nudge, no trap picks): Mudborn (Milthollow locals: barter prices, lantern-law standing), Cant-born (salt cantons: swim, haggle), Pale-touched (resurrection-light survivors: see Drowned, feared in towns), Foundling-raised-by-tinkers (identify faster, gods distrust).

Callings (starting kits, not classes — skills grow by use, Elder-Scrolls law): Ratcatcher (polearm + traps + smell range), Lampbearer (lantern craft, courage aura, oil scrip stipend), Tinker (identify, mend, hymn-cards), Corpse-tender (Drowned lore, dragging, last rites = loot blessing), Toll-ward (shields, negotiation, Audit standing), Choir-deserter (swim, dead tongues, wanted).

Attributes (1–20, grow slowly by use + trainers): Brawn, Finesse, Wits, Nerve, Aether (magic conductivity — high Aether = strong hymns AND attracts attention from things that eat signal).

Skills (0–100, use-gated): Climb, Swim, Sneak, Search, Barter, Mend, Tinker, Hymns, Physick, Butcher, Ropework, Dungeoneering (vertical sense: shaft depths, airflow reading), Dead Tongues, Copperlore. Trainers in towns; books; ghosts teach at prices.

No levels. Reputation IS progression: faction ranks, town ledgers, god-credit, and knowledge (identified recipes, mapped regions, translated hymns persist across delvers in the same lineage — see §3.9 death).

Feel: Morrowind character sheet meets NetHack inventoryTetris. You are fragile, specific, and weird by hour 5.

3.2 Core loop — DELVE → HAUL → PREP → DESCEND #

  • DELVE: real-time-with-pause-optional (Story) /ysa turn-tick hybrid: sim runs fixed 10Hz ticks; holding Shift advances one tick (roguelike step mode). Light, oil, rope, rations gate depth.
  • HAUL: weight + bulk + noise. Overburdened = loud, slow, fall-prone on ropes. Mules + sledges + rope-rigging extend range; every aid is a mouth to feed / thing to lose.
  • PREP: identify, mend, cook, copy hymn-cards, buy oil, sleep (world advances: factions move, bounties age, corpses rot, rivals delve).
  • DESCEND: elevators, shafts, wells, collapsed stairs, drowned locks. Descent is a puzzle every stratum; ascent with loot is the boss fight.

3.3 The 3D emergent sim (the crown jewels) #

All systems tick in true 3D (X,Y,Z voxels + continuous actor positions). Every rule is global — monsters obey the same physics the player does.

  1. Light & darkness. Lantern cone + carried/dropped glow + muzzle flash + phosphor flora. Light level per cell; stealth, accuracy, monster courage, plant growth key off it. Douse the lamp = invisible but blind. Light leaks under doors and through grates.
  2. Sound (visible). Every action emits noise with loudness + timbre; propagates through air, muffled by doors, funneled by shafts. Rendered as ( ripples + log lines. Monsters investigate positions, not the player — throw voices (coins, bells, mimic-squeaks).
  3. Air & draft. Rooms breathe: pressure + airflow fields. Smoke, spores, and smells ride drafts; doors slam/change draft; dropping flour or oil-drips reveals flow. Gas pools from floors UP (levitate counters), smoke rises, chlorine sinks. NPCs react to smell lines before they see you.
  4. Fluids. Water (swim, douse, conduct), oil (burn, slick, float), blood (trackable, acidic per species, Rustmother currency), bile/sewage (disease), aether-mist (wild magic). Volumes move downhill, fill pits upward, leak through grates, freeze/melt/boil.
  5. Fire & heat. Oil + paper + gas + timber; heat dries, melts, sets off powder and hymn-cards; smoke chokes (see the canonical mimic kill in doc 01). Water + steam + cracked hot stone. Fire climbs; water falls.
  6. Materials. WOOD / IRON / COPPER / STONE / BRASS / FLESH / SAINT-BONE / GLASS / ROPE / PAPER. Acid pits iron, verdigris eats copper, rust spreads in damp, silver stills Drowned, copper conducts hymns/shocks. Every item lists material; every hazard lists what it eats.
  7. Gravity & falling. Thrown/dropped things arc; actors slip off ledges, get shoved, cut ropes. Falling damage by mass × height; landing ON someone shares it (delver bowling is legal). Shafts connect strata — dropped boulders, lured monsters, and corpses arrive somewhere.
  8. Electricity & signal. Live cable + water + copper armor = tragedy. Hymn-cards are programs; signal propagates along wire/plumbing. Shocks chain through fluids and crowds.
  9. Rope & climbing. Ropes have length, anchor quality, load. Pitons, pulleys, sledges, mule rigs. Cuttable (by you, by things above you — CHECK GRATES).
  10. Scent & tracking. Blood, oil, rot, ozone, wet wool persist as scent volumes; dogs, rats, and worse follow them. Wash in water; smoke masks.
  11. Structural. Timber props, rusted bolts, cracked lintels. Noise + weight + rot collapse things. Sledgehammers open shortcuts and tombs (and alarms).
  12. Time & rot. Corpses bloat → burst → spawn; food spoils; rust spreads; NPC schedules; faction clocks; coaching-inn gossip latency (3 days Milthollow→Copperwash).

The ten verticality toys (ship in slice; each must produce unscripted stories):

  1. Drop boulder down elevator shaft (depth sounding + bombardment).
  2. Pour oil under door + ignite; smoke through grate chokes room.
  3. Flood shaft descent with rope + doused lamp + mosslight.
  4. Throw voice with coins down side-shaft to split packs.
  5. Levitate over pooled gas to loot above it.
  6. Cut rope bridge / enemy rope (and catch the falling loot with a net).
  7. Shout up a stairwell to pull guards, then oil the stairs.
  8. Freeze flooded room with hymn, walk over, it thaws behind you (one-way door).
  9. Drop flour to read draft, find secret vent, smoke-message through it.
  10. Ride the counterweight elevator down while the Audit cherub audits the empty car going up.

3.4 Items — everything has two uses; unidentified everything #

Categories: weapons (polearms rule in shafts; silvered vs. Drowned), armor (material matters more than rating), tools (rope, pitons, poles, nets, sledges, bells, flour, chalk), consumables (oil, rations, moss, bandages, antidotes that are also bait/poison), relics (hymn-cards, aether-cells, saint-bone charms, Drowned bells — illegal), trade goods (wire, pelts, scrap), corpses (butcher/eat/carry/cure — NetHack law).

Identification: by use, by tinker (paid, sometimes lies if underpaid — ledger remembers), by trial rooms (the Lampwrights maintain a testing chapel: cages, water barrels, grounding rods — a beloved safe-toybox), by ghosts (a dead delver's shade identifies one item for a memory). Shops sell unidentified stock honestly labeled as such — the game never lies in tooltips, only NPCs do.

Curses & blessings: NetHack-descended. Cursed gear sticks, lies about weight, calls out in the dark. Blessed gear hums true. Remove-curse is a person (the Corpse-tender), not a scroll — she keeps a garden watered with holy runoff; bring her something that knew the deceased.

Item conditions: rust, damp, cracked, blessed, humming, owed (Audit-liened — glowing fine print; paying the lien mid-dungeon via prayer is a moment).

3.5 Magic — HYMNS (programs) and BARGAINS (prayers) #

Hymns = punchcard programs slotted into a hymn-case (limited slots, loadout strategy). Verbs: FIAT LUX (light), APERI (open/unseal — loud, the Audit hears), PONDUS (weight up/down — falling solved or caused), SILE (silence bubble), FLUCTUS (push water/air), MEMORIA (recall to last lit chapel — drops everything flammable? the ink costs...), CARO VALE (speak with corpse — one question, corpse chooses honesty). Casting = conduct roll (Aether + card condition + copper nearby + weather in the Deep). Miscasts follow debugging logic: wrong target, swapped args, infinite echo (sound!), kernel panic (summon Audit cherub — everyone groans).

Bargains = god transactions (§lore). Kneel (anywhere, but altars give receipt), ask, accept small print. Examples: Lamplighter holds your light when you cannot (your lantern stays lit one tick past empty — debt: bury the next dead you find); Tollkeeper opens anything for exact change (debt: never pass a toll unpaid again — the bridges know); Rustmother mends all iron (debt: your blood rusts — max HP down until you waste nothing for a day — track leftovers!). Blasphemy = collections (see Audit cherub).

3.6 NPCs & towns — the sim runs without you #

Townsfolk have names, jobs, homes, debts, gossip. Schedules: lamplighters at dusk, mills at dawn, chapels at bell, taverns at night, coaches between towns carrying gossip/goods/prices. Services: inn (sleep = world advances), tinker (identify/mend/copy), lampwright (lamps/oil/scrip), warden post (bounties, seal-law), menders (healing + curse triage), fences (Congregation), auction (Audit — buy back your own confiscated loot, humiliating, beloved).

Shopkeepers NetHack-law: ledgers, memory, grudges; break, steal, or kill and the town knows; Audit sells the debt to collectors who visit dungeon floors. Shop floors are physics: shelves topple, oil + shelves = arson-murder, dropping a Drowned bell in a shop empties it (customers AND keeper — then the keeper bills you).

3.7 Contracts (the Witcher heartbeat) & quests (Elder-Scrolls mud) #

Notice boards in every town: 60+ launch contracts across tiers (vermin → hauntings → saints → Deep doors). Each lists: pay, known hazards, what the poster didn't know (discoverable by asking around — gossip checks). Prep-before-fight law: every hard contract is solvable cleanly with the right loadout + questions asked; charging in is legal and educational.

No quest compass. Directions are landmark + depth + draft ("below the mill, where the air tastes of copper, third landing where the bell-rope hangs"). Player chalk + map annotations + mule-pathing replace markers. (Kindness: the log records every direction verbatim and searchably.)

Main thread (thin, ignorable to floor 8): the Widow Rennick's husband (walks since the Last Boot) → the Drowned Saint → the Deep Door → the Vault Choice. Factions pull; the Audit bills; the Choir sings your name after floor 9 (diegetic difficulty warning — players LOVE this).

3.8 Dungeons — the 12-floor Deep #

Generation: hand-designed anchor rooms + systemic fill (NetHack + Spelunky law). Every floor: 3+ vertical connections (stairs, shaft, vent, well, collapse-risk dig, elevator), airflow network, water path, faction presence, secret vent layer. Strata: Shallows 1–3 (cellar/sewer/relay — tutorializes verticality kindly), Works 4–8 (elevators, audit vaults, flooded shafts, server-shrines — the game proper), Deep 9–12 (dream-logic, sideways falls, saint-bosses, Choir territory). Difficulty = depth + debt + noise + light discipline, never raw stat walls.

Bosses as puzzles with HP: Rat-king (lure apart, burn nests), Saint of Rust (the name bargain), Toll-troll Matriarch (negotiate mid-fight — union rules), Audit Seraph (pay, bankrupt it with cursed assets, or drown its ledger), the Drowned Saint (bring it the husband — or don't).

3.9 Death, lineage & story modes #

Classic (default): permadeath. Epitaph + cause-chain + .hexdemo replay + ghost left in-world (your next delver may meet them — they remember one item ID and one warning). Lineage vault: maps, recipes, translated hymns persist; gear does not (the Audit auctions it — you may buy back YOUR OWN sword three runs later; this is beloved, keep it).

Story mode: same sim, checkpoint at town entries, death = wake at chapel owing the Corpse-tender (debt quest, not game over). No shame, same stories.

Ironcartographer (opt-in): one map, no recalls, seeded daily — the streamer mode.

3.10 QoL & accessibility (kindness layer — ships in slice, not later) #

Auto-explore (stops on: new smell/sound/light, veins of copper, grates above, any ?), auto-loot filters, searchable log, look mode with full rules-tooltips, death replay with rule-chain subtitles, colorblind + high-contrast + no-flicker palettes, screen-reader event stream, remappable keys (hjkl/WASD/arrows all first-class), gamma/FOV/shake sliders, motion-sickness camera lock, dyslexia-friendly log font option, pause-step hybrid always available offline.

3.11 Content volume targets (1.0) #

40+ monsters (habit/tell/use each), 120+ items (2+ uses each), 40+ hymns, 5 gods with full bargain tables, 3 towns + 6 hamlets, 60+ contracts, 12 floors + testing chapel + auction house, 200+ epitaphs, 100+ death-replay tutorial subtitles ("the smoke ROSE because heat rises; the mimic BREATHED because rooms breathe").