diff --git a/docs/workshops/README.md b/docs/workshops/README.md index 78fa98f15..0a248dc75 100644 --- a/docs/workshops/README.md +++ b/docs/workshops/README.md @@ -25,3 +25,6 @@ docs/workshops/ | [NPC AI State Machines](npc-ai-state-machines/) | — | Brief ready | | [Save/Load Architecture](save-load-architecture/) | — | Brief ready | | [Map Authoring Pipeline](map-authoring-pipeline/) | — | Brief ready | +| [Wiki Review & Content Standards](wiki-review/) | — | Complete (4 rounds + lead interview) | +| [v0.1 Content Scoping](v01-content-scoping/) | — | Complete (2 rounds + closing, 38 tickets created) | +| [Control & Interaction Scheme](control-interaction/) | — | Brief ready | diff --git a/docs/workshops/control-interaction/control-interaction-workshop-brief.md b/docs/workshops/control-interaction/control-interaction-workshop-brief.md new file mode 100644 index 000000000..596d72fa6 --- /dev/null +++ b/docs/workshops/control-interaction/control-interaction-workshop-brief.md @@ -0,0 +1,154 @@ +# Workshop Brief: Control & Interaction Scheme +## How Does the Player Touch the World? + +**Project:** The Settled Reach (D-021) +**Date:** 2026-02-12 +**Called by:** Jeroen +**Prerequisite:** Wiki Review workshop established WASD direct control with context-sensitive interaction as unanimous direction. +**Participants:** TBD — likely GESTALT, OZZIE, TYRE, STIG, DUDLEY, PAULA, MELLANIE, ARAMINTA + +--- + +## Context + +The Wiki Review workshop (2026-02-12) produced unanimous consensus: the player controls their character directly via WASD movement with context-sensitive interaction prompts. The game is not Sims/Rimworld (drafted characters), not point-and-click. The player IS the character. Their body is their attention mechanism. + +This workshop designs the specifics. The interaction model determines everything downstream: camera, UI, dialogue triggers, NPC approach, environmental interaction, inventory, information access, and the perception modes that are core to the game's asymmetric information design. + +**Design constraints from existing decisions:** +- D-005: Single-character perspective +- D-013: Diegetic insert (neural implant map/minimap) +- D-016: Internal monologue as perception bridge +- D-017: Perception modes as character build +- D-018: Three-range sound model +- D-020: Godot 4 client + Rust/bevy_ecs server +- Wiki Review: WASD direct control, context-sensitive interaction, body-as-attention-mechanism + +--- + +## Layer 1: Movement & Camera + +**How does the character move through space?** + +- **Movement**: WASD (confirmed). But: 8-directional grid? Free movement? Physics-based? Sprint/walk toggle? Sneak mode? +- **Camera**: Top-down (confirmed by "top-down immersive sim"). But: fixed angle? Rotatable? Zoom level? How close before you can read a sign? How far before NPCs are silhouettes? +- **Collision**: Tile-based? Free-form? Can you squeeze between tables? Block doorways? +- **Speed**: Does speed affect perception? Walking slowly = more monologue triggers? Running = less observation? + +**Questions:** +1. **Gestalt**: Does movement speed affect information gathering? Should walking vs. running change what you notice? +2. **Tyre**: Godot 4 tile-based or free movement? What's the technical recommendation? +3. **Ozzie**: What camera distance feels right for "I am this person" vs. "I can see the room"? +4. **Araminta**: What visual information density works at the proposed camera distance? + +--- + +## Layer 2: Context-Sensitive Interaction + +**What happens when you approach something?** + +The Wiki Review poll referenced Disco Elysium interaction and Hotline Miami movement. The key design question: how do interaction prompts appear, and how does the player select from options? + +- **Proximity trigger**: How close before options appear? Line-of-sight required? +- **Prompt style**: Single action prompt (changes based on context)? Radial menu? List? Paula suggested single-action prompts that change based on proximity + relationship + knowledge. +- **NPC interaction**: Walk up to NPC → what appears? "Talk"? Multiple options (talk, observe, confront)? Does relationship state change the options? +- **Object interaction**: Examine, use, take? How do you read a manifest on a desk vs. pick up a crate? +- **Environmental interaction**: Doors, terminals, cargo containers, signs — each different? +- **Eavesdropping**: Can you hear NPCs talking without direct interaction? How does proximity affect this? + +**Questions:** +1. **Gestalt**: How many interaction options per NPC at once? Does complexity vary by relationship state? +2. **Paula**: How does dialogue initiation work? Player approaches NPC → what's the UX to the first line of dialogue? +3. **Stig**: What UI patterns support context-sensitive prompts without cluttering the screen? +4. **Dudley**: How does the server determine what interaction options are available based on entity state? + +--- + +## Layer 3: Information & Perception + +**How does the player ACCESS information vs. RECEIVE information?** + +The game has two information channels: +1. **Active**: Player chooses to look, examine, query the lattice, read something +2. **Passive**: Monologue fires based on observation triggers, overheard conversations, environmental tells + +- **Lattice queries**: How do you look up an NPC via the neural lattice? A UI panel? A diegetic device? Walk up and "scan"? +- **Monologue delivery**: Text overlay? Speech bubble? Dedicated UI area? How does it not compete with dialogue? +- **Tell observation**: Player walks past NPC with a behavioral tell — how is it surfaced? Monologue? Visual indicator? Both? +- **Knowledge journal**: How do you review what you know? Diegetic (the implant's records)? Pause menu? + +**Questions:** +1. **Gestalt**: Where's the line between "the game tells you" (monologue) and "you have to look" (active observation)? +2. **Ozzie**: When does information delivery feel immersive vs. intrusive? +3. **Tyre**: How does the knowledge graph surface in the UI without becoming a database viewer? +4. **Mellanie**: How much monologue can appear before the player stops reading? + +--- + +## Layer 4: Dialogue & Conversation + +**How do conversations work mechanically?** + +- **Initiation**: Player walks up, presses interact. Then what? Dialogue box? In-world text? Camera zoom? +- **Response selection**: Menu of options? Single-branch with trust-gated variations? How does the 4-layer dialogue system (access, history, trust, unprompted) translate to player-facing UX? +- **Conversation persistence**: Can you walk away mid-conversation? Resume later? Does the NPC react? +- **Dual-lens integration**: Same NPC, different options per character. How does the UI show what's available vs. locked? +- **Confrontation**: How does "I know you're involved" differ from casual conversation in the UX? + +**Questions:** +1. **Paula**: What does the confrontation UX look like vs. casual conversation? Should the player feel the tension mechanically? +2. **Mellanie**: How does monologue fire DURING dialogue? (Character reacts to what the NPC said) +3. **Stig**: Dialogue box design — full screen? Corner overlay? In-world? +4. **Gestalt**: How do trust-gated options appear (or not appear) without revealing the gating system? + +--- + +## Layer 5: Environmental Interaction & Inventory + +**What can you touch, carry, and use?** + +- **Inventory**: Does the character have inventory? Pockets? A bag? Or is everything contextual (use the terminal, read the manifest, you don't carry things)? +- **Evidence**: How does the detective collect evidence? Take a photo? Log it in the lattice? Pick it up? +- **Contraband**: How does the smuggler interact with cargo? Physical handling? Abstract management? +- **Keys/access**: Physical keys? Access codes? Lattice authorization levels? How does restricted access feel in the UX? + +**Questions:** +1. **Gestalt**: How physical is the interaction model? Carry objects? Or is everything knowledge-based (you SAW the manifest, you don't HAVE the manifest)? +2. **Tyre**: What's feasible for v0.1 inventory? Full system or knowledge-only? +3. **Nigel**: Does inventory variation matter for replayability, or is knowledge-based sufficient? + +--- + +## Layer 6: Time & Routine + +**How does time pass and how does the player relate to schedules?** + +- **Time control**: Real-time? Acceleratable? Pause-to-think? Day/night cycle? +- **Routine awareness**: Can you see NPC schedules? Predict where someone will be? Or do you learn through observation? +- **Waiting**: Can you wait/skip time? Stand outside someone's shift and wait for them? +- **Urgency**: Is there time pressure? Can you miss events? Or is the world patient? + +**Questions:** +1. **Gestalt**: Does time pressure create interesting decisions or just stress? +2. **Ozzie**: What pacing feels right for "quotidian with undertow"? +3. **Dudley**: How does the tick-based simulation map to player-perceived time? + +--- + +## Workshop Format + +**2-3 rounds.** + +**Round 1**: Layer-by-layer proposals. Each participant addresses their domain questions with concrete UX descriptions. + +**Round 2**: Integration — how do the layers interact? Movement affects perception, perception affects dialogue options, dialogue affects knowledge, knowledge affects interaction prompts. + +**Round 3 (if needed)**: V0.1 minimum viable interaction model — what ships first? + +## Expected Outputs + +- **Interaction model spec**: Complete description of how the player touches the world +- **UI wireframe direction**: Enough for Stig/Araminta to begin prototyping +- **Perception UX spec**: How information flows to the player through the interaction model +- **V0.1 scope**: Minimum viable interaction for the vertical slice +- **Tickets**: New implementation tickets for the interaction model