Document client-side movement throttle rates per stance, hold-to-move input model with composite diagonals, and crouch ticks-per-move value. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
21 KiB
21 KiB
Scope Decisions
What we're building: game concept, design pillars, prototype definition, map specs, POI system.
D-001: Build a custom game, not a mod
- Date: 2026-02-08
- Decision: We are building a standalone game, not a Stellaris mod.
- Rationale: No existing game provides the right combination of character-driven dynasty play, wormhole-centric space map, and deep internal politics that the Commonwealth universe demands. Stellaris gets the map right but characters wrong. CK3 gets characters right but the map wrong. Neither supports wormhole-as-infrastructure as a core mechanic.
- Raised by: Team Leader (Jeroen), after team debate across Rounds 1-3.
- Dissent: None. Team unanimously supports after discussion.
D-003: Commonwealth is the first campaign, not the only possible one
- Date: 2026-02-08
- Decision: Build a character-driven space grand strategy framework/engine, with the Commonwealth universe as the first campaign/scenario.
- Rationale: Avoids locking into one IP. The framework has broader value. The Commonwealth provides a rich, opinionated first use case that forces good design decisions.
- Raised by: Gore (Transhumanist Fan), endorsed by team.
D-005: Core concept - single character, first-person, story-generator
- Date: 2026-02-08
- Decision: The game is a first-person, single-character experience. You select a character at game start and play from their perspective. The world is a rich simulation experienced through one person's keyhole view.
- Supersedes: D-002 (dynasty grand strategy concept)
- Elevator pitch: "Pick a character. Step into the Commonwealth. Figure it out."
- Key pillars:
- Single character selection - who you pick determines where you start, what you know, what you can do, and what you care about
- Asymmetric information as core mechanic - you only know what your character knows. Others lie, withhold, reveal. The same world-state looks completely different from different characters
- Rimworld-style story generator - an AI storyteller paces events for dramatic tension. Structural randomness (who's compromised, where evidence is) set at game start. Dramatic randomness (when things happen) driven by pacing
- Wormhole network as traversable infrastructure - you physically move through wormholes between locations
- Crisis events emerge from simulation - not timers, not scripted, but consequences
- Replayability through perspective - same conspiracy, different character, completely different game
- Design references: Rimworld (storyteller/systems), Disco Elysium (character-driven investigation), Sunless Skies (atmosphere/travel), King of Dragon Pass (event-driven decisions)
- Raised by: Team Leader (Jeroen), evolved through Rounds 4-6 with full team input.
- Dissent: None. Team unanimously energized by the pivot.
D-002: Dynasty grand strategy concept [SUPERSEDED]
- Date: 2026-02-08
- Decision: Original concept was a dynasty-based grand strategy game where the player controls a family/faction across generations.
- Superseded by: D-005 (single character, first-person concept)
- Rationale for change: The dynasty model spread the player's attention across multiple characters, diluting the information asymmetry mechanic. Single-character perspective makes "what you know" the central gameplay tension.
D-006: Prototype scenario — Institute/Armstrong/Guardians [SUPERSEDED]
- Date: 2026-02-08
- Decision: The first playable prototype focuses on the Starflyer conspiracy arc, scoped to the investigative/political hub: the Institute, Armstrong City, and the Guardians of Selfhood. This tests the core mechanic (asymmetric information in a conspiracy) with controllable scope.
- Rationale: The conspiracy arc IS asymmetric information. If it's not compelling at this scale, a galaxy won't fix it. If it works, everything else is expansion.
- Raised by: Team Leader (Jeroen).
- Superseded by: D-027 (smuggler + detective vertical slice, 2026-02-10)
D-007: Five pillars of game design
- Date: 2026-02-08
- Decision: The game rests on five core design pillars. All systems must serve at least one.
- Pillars:
- Characters & Information - who you are, what you know, who you know. Asymmetric information is the master mechanic.
- The Wormhole Network - where you go, how you move through the world. Physical traversal of infrastructure.
- Society & Factions - the political landscape you navigate from inside, not above.
- Crisis & Storyteller - what the world throws at you and when. Rimworld-style AI pacing with structural + dramatic randomness.
- Action & Spectacle - what happens when it all goes loud. The punctuation, not the sentence.
- Raised by: Gestalt (pillars 1-4), Team Leader (pillar 5, citing Rimworld's shooter pedigree).
D-013: Diegetic insert/POI navigation system
- Date: 2026-02-09
- Decision: The player's map interface is diegetic - it IS the character's neural insert (Commonwealth technology). Not a game UI bolted on, but the character literally checking their implant's navigation overlay. Points of interest appear on the map only when learned through gameplay.
- How POIs are learned:
- Character background (starting knowledge based on who you are)
- NPC interactions (contacts send locations, tips, "meet me here" pins)
- Research (unisphere searches, case files, institutional databases)
- Physical discovery (finding something while exploring)
- Different characters see different maps: A cop sees flagged locations from case files. A Guardian sees safehouses and dead drops. A Senator sees political venues. Same city, different POI layer.
- POIs can be manipulated: Tips can be traps. Locations can be outdated. Information channels through the insert system carry the same trust/deception dynamics as verbal information.
- Anti-Ubisoft: No "climb tower to reveal icons." Map fills at the pace of investigation. Early game: sparse, frightening. Late game: dense, and you realize how much you missed.
- Cross-reference: Perception mode overlay in D-017. Time display on insert in D-031.
- Raised by: Team Leader (Jeroen) proposed borderless + anchoring concept. Miri confirmed canon basis. Full team contributed mechanics.
D-014: v0.1 map specification
- Date: 2026-02-09
- Decision: First playable tech demo map spec:
| Layer | Spec |
|---|---|
| World map | 3 worlds (Hub/Capital/Fringe), node graph with wormhole connections |
| Local maps | 1 per world, ~150x150 tiles, 2-3 z-levels, chunk-based |
| Key locations | 5-8 hand-crafted buildings/rooms per world embedded in procedural space |
| Ambient fill | Procedural from templates (district types vary per world) |
| Wormhole gates | Physical locations on local map, observable/traversable, social chokepoints |
| Fog | LOS-based shadowcasting with vision cone (forward/peripheral/blind), fog returns on departure |
| Sound | Stereo close-range + visual fog-edge indicators for medium range |
| Navigation | Diegetic insert minimap - dots when close, border arrows for known distant POIs |
| Camera | Locked to character, no panning, no rotation in v0.1 |
| Monologue | Internal character voice for non-visual perception, atmosphere, diegetic hints |
| Perception | Natural vision + basic audio only. Thermal/cameras/tracking deferred to milestones |
| NPCs | ~15 total across all worlds, on schedules, moving between locations |
| Art | Functional boxes with labels. Atmosphere carried by monologue and interaction models. |
- Raised by: Full team across Rounds 8-10.
D-027: Vertical slice — smuggler + detective, two-character proof
- Date: 2026-02-10
- Decision: The proof-of-concept vertical slice is one station district containing: 1 workplace social site, 1 social venue (bar), 1 smuggling ring template, shared NPCs. Two playable characters: smuggler (logistics worker, insider access to criminal templates, social camouflage) and detective (institutional investigator, authority access, analytical). Success criteria: (1) 30 minutes of daily-life breathing room before contamination activates, (2) both playthroughs feel like fundamentally different games, (3) after each playthrough player names an NPC they felt conflicted about, (4) the observe→notice→follow→discover sequence emerges from systems not scripts.
- Supersedes: D-006
- Rationale: Smuggler + detective creates adversarial divergence — the detective's target IS the smuggler's daily life. Same templates, same NPCs, inverted relationships. Proves character-as-lens, contamination, life-sim attachment, and replayability simultaneously. Tyre confirms: ~20% more effort than single-character, no new architecture.
- Raised by: Team Leader (smuggler+detective choice), Nigel (two-character requirement), Ozzie (30-min runway), Gore (emotional criterion), Gestalt (systems criterion)
- Dissent: None
D-038: Audio in v0.1 scope — 8 files via Stable Audio Open
- Date: 2026-02-11
- Decision: Audio is included in v0.1 scope. Minimum viable set: 8 AI-generated audio files, produced using Stable Audio Open (self-hosted, free commercial use under $1M revenue). Audio is additive — the game works through text + visuals without it, but audio multiplies atmosphere.
- Audio asset list:
amb_station_base.ogg— station hum, span gate vibration, ventilation (60-90s loop, global ambient)amb_workplace_layer.ogg— cargo machinery, scanner pings, distant voices (45-60s, logistics hub overlay)amb_bar_layer.ogg— conversation murmur, glass sounds, low Meridian music (45-60s, bar overlay)amb_corridor_layer.ogg— echoing footsteps, ventilation whistle, louder gate hum (45-60s, corridor overlay)sfx_footstep_metal.ogg— single footstep on metal grating (0.3-0.5s, walk trigger)sfx_footstep_metal_run.ogg— faster footstep (0.2-0.3s, run trigger)sfx_monologue_chime.ogg— soft crystalline tone, "neural lattice firing" feel (0.5-1.0s, monologue appearance)sfx_monologue_chime_urgent.ogg— sharper variant for contradiction/anomaly observations (0.5-1.0s)
- Architecture: Event-driven with asset registry + visual fallback. Simulation emits typed sound events; client renders as audio (if asset exists) or visual indicator + monologue trigger (if not). Ambient loops managed separately from event-driven sounds. Monologue chime is a UI sound, not a simulation sound.
- Amendment (2026-02-16, Audio Pipeline Kickoff):
- Hybrid audio generation approach: Stable Audio Open (SAO) for sounds >200ms with organic character (footsteps, ambient layers). Manual synthesis for sounds <200ms with precise/digital character (UI clicks, scanner beeps). SAO ceiling ~47s; accept 45s loops with crossfade for ambient layers. The insert-tech/organic split (D-074) maps to synthesis/generation split.
- Sprint 7 scope expansion: Ticket #440 expanded from 6 to 8 assets, adding monologue chimes (assets 7-8) as deliberate placeholders with Sprint 8 redo mandate. Chimes are critical for D-067 cognitive delay feel but acknowledged as difficult to generate correctly — manual synthesis required for production quality.
- Cross-reference: Three-range sound model (D-018), sound event architecture (Gestalt R2 section 6), audio aesthetic (D-074), recognition chime (D-067)
- Raised by: Ozzie (Round 1 minimum viable proposal, Round 2 full spec), project lead (confirmed, directives #3 and #9). Amendment raised by Inigo (hybrid approach), endorsed by Tyre.
- Dissent: Mellanie and Araminta both proposed deferring audio; project lead overruled. Visual sound indicators remain complementary to audio (not replacement).
D-039: v0.1 wow moment scope — all 6 moments
- Date: 2026-02-11
- Decision: All 6 wow moments identified by Ozzie are in v0.1 scope. The original 4 "essential" moments are promoted to must-have. The 2 "nice-to-have" moments are also promoted to must-have (project lead directive).
- The 6 wow moments (chronological in a 30-minute session):
- Arrival (minute 0-1): Station hum playing, NPCs already moving, first monologue chime. "Where am I? This feels real." Content: opening monologue, station ambient, pre-populated routines.
- The Character's Eye (minute 5-15): Monologue flags something the player didn't notice. Urgent chime. "My character is smarter than me." Content: observation monologue + NPC routine deviation.
- THE FRIEND's Contradiction (minute 20-25): THE FRIEND in the wrong place, urgent chime, deflection when asked. "I trusted you. What are you doing?" Content: full FRIEND content package + spatial staging.
- The Divergence Reveal (second playthrough, minute 5-10): Same room, different colors, different names, different monologue. "I was only seeing HALF of this." Content: all dual-lens content for first location.
- The News Ticker Gut-Punch: Same ticker, opposite monologue reactions per character. "The asymmetry in three words." Content: ticker + dual monologue reactions.
- The Quiet Moment: Idle in a corridor, unprompted reflective monologue. "I care about this person." Content: 2 monologue lines + time_idle trigger.
- Cross-reference: Vertical slice criteria (D-027), THE FRIEND (D-034)
- Raised by: Ozzie (Round 1 identification, Round 2 budget), project lead (all 6 promoted, directive #8)
- Dissent: None
D-051: "Settling is placement" — design principle
- Date: 2026-02-12
- Decision: Object density in a space correlates with how settled it is. The bar is full because Lera made it home. Empty corridors are unsettled. Investigation reads placement as intention — every placed tile is someone's decision. The tile-based world (D-043, 64x64px visual tiles on dual-scale grid per D-066) is thematically load-bearing: stations are literally built from prefab modular construction, so the tile grid IS the construction grid.
- Corollary — "Investigation is archaeology of intention" (Gore): Reading the tile world is reading decisions. A cargo crate in the wrong place. A personal item in a maintenance corridor. The mundane environment IS the evidence.
- Cross-reference: Favorite colors (D-052)
- Canonical reference:
docs/workshops/art-direction-mood-board/workshop-outcomes.md§1.3, §7 - Raised by: Gore (both principles), unanimously endorsed.
- Dissent: None
D-053: Movement as stance toggle system
- Date: 2026-02-13
- Decision: Movement uses a stance toggle ladder: Sprint / Walk / Careful / Crouch / (Prone future). Toggle-based, not hold-to-activate. Each archetype has a default stance via MovementProfile component (e.g., smuggler defaults to Walk, detective defaults to Walk). All characters have access to all stances. Prone: toggle out only in normal play (must explicitly stand up); future combat allows "hit the deck" quick-entry.
- Stance values (server — ticks per move):
- Sprint: 1 tile/1 tick. Monologue at 40% rate (urgent only). Loud footsteps. Interaction buffer cleared (D-055).
- Walk: 1 tile/2 ticks. Monologue at 100% rate. Normal footsteps. Default stance.
- Careful: 1 tile/3 ticks. Monologue at 150% rate + "tell notice bonus." Quiet footsteps. Enhanced eavesdropping via ListeningFocus (stationary_ticks accumulation).
- Crouch: 1 tile/4 ticks. Very quiet footsteps. Uses Prone/Seated occupancy layer (D-054).
- Prone: Future. Minimal noise. Toggle-out only.
- Client throttle (ms between commands): Sprint=200ms (5/s), Walk=400ms (2.5/s), Careful=600ms (~1.7/s), Crouch=800ms (1.25/s). Prevents input flooding; server cooldown remains authoritative. Tuned via playtesting: 5 tiles/sec feels like a flat-out sprint, 2.5/sec is a comfortable walk.
- Input model: Hold-to-move (polled each frame), discrete actions on press. Composite diagonals via simultaneous keys (W+D → northeast). See
client/scripts/autoloads/input_mapper.gd. - Perception coupling: Sprint suppresses interpretation (monologue), not data (overlays still render). Careful enhances observation. Composable via multiplicative formula:
movement_modifier * perception_load_modifier. All stances: NO vision cone change — perception change is cognitive, not sensory. - Emergent tactics: Sprint ahead to get position → Careful to wait and observe → Walk when target passes. Speed modes compose into surveillance patterns.
- v0.1: Sprint, Walk, Careful, Crouch. Prone deferred.
- Cross-reference: Tile-based movement (D-054), sprint suppression (D-055), sound model (D-018)
- Source: Control & Interaction Workshop (2026-02-13)
- Raised by: Lead (stance toggle, final call), Gestalt (Walk/Sprint/Careful triad + perception coupling), Dudley (MovementProfile + tick values), Ozzie (perception gradient), Nigel (character-defining speed)
- Dissent: None after lead call.
D-065: Smuggler inventory — knowledge-primary with physical evidence
- Date: 2026-02-13
- Decision: Knowledge is the primary "inventory" for all characters (you SAW the manifest, not you HAVE it). The smuggler additionally gets a minimal physical inventory for v0.1: 3 specific items (manifest copy, corridor access token, personal comm log). Capacity per archetype: smuggler 3-4 slots, detective 2 slots. Carried items are PRIVATE — they exist behind the information boundary (D-010 principle 2) and are not visible to other entities unless revealed via search, scan, or confrontation. Server implementation: world entities with CarriedBy component. Verbs: Take, Place.
- Evidence presentation differs by archetype: Detective sees case-file-style entries (structured: what/where/when/source/confidence, insert suggests links). Smuggler sees personal notebook (organized by person, informal voice, no contradiction flags). Same underlying knowledge graph, different presentation layer.
- v0.1 items (Paula):
- Manifest copy — proves cargo discrepancy. Leverage proof (smuggler's word doesn't carry institutional weight).
- Corridor access token — proves ring membership. Physical proof of social network position.
- Personal comm log — bridge between KG knowledge and provable leverage. Recorded conversations.
- UI: Pocket icons, bottom-right of screen, 40x40px. No empty slots displayed — icons appear only when items are carried.
- Rationale: Smuggler's word doesn't carry institutional weight — they need tangible proof for leverage. Detective's word IS evidence (institutional authority), so they're mostly KG-only. Three items demonstrate the risk/reward concept and differentiate the smuggler's gameplay loop. Contraband carried on person can be detected if scanned by security.
- Cross-reference: Knowledge graph (D-041), information boundaries (D-010), vertical slice (D-027), contraband (D-037)
- Source: Control & Interaction Workshop (2026-02-13)
- Raised by: Lead (smuggler needs inventory), Paula (three items + presentation split), Gestalt (knowledge-primary framework), Tyre (minimal implementation: SmallVec<3>), Dudley (server model: BTreeMap + info boundary)
- Dissent: Tyre initially argued zero physical items in v0.1 (saves 3-4 sprints). Adapted with minimal implementation after lead directive.
14 decisions (12 active, 2 superseded). Last updated: 2026-02-13