Files
settled-reach/docs/workshops/control-interaction/control-interaction-workshop-brief.md
T
jpmschweitzerandClaude Opus 4.6 5c3c2a527b docs(workshops): Control & Interaction Workshop outputs
Workshop notes (2 rounds), outcomes document (13 decisions, 27 tickets,
v0.1 interaction model), and updated brief with final lead direction.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 09:34:49 +01:00

16 KiB

Workshop Brief: Control & Interaction Scheme

How Does the Player Touch the World?

Project: The Settled Reach (D-021) Date: 2026-02-13 Called by: Jeroen Prerequisite: Wiki Review workshop established WASD direct control with context-sensitive interaction as unanimous direction. Participants: Gestalt, Ozzie, Tyre, Stig, Dudley, Paula, Araminta, Nigel


Context

The Wiki Review workshop produced unanimous consensus: the player controls their character directly via WASD movement with context-sensitive interaction prompts. The player IS the character. Their body is their attention mechanism.

This workshop designs the specifics of how the player controls the character, interacts with entities and objects, and accesses information through the UI.

Already decided (do not re-litigate):

  • D-005: Single-character perspective
  • D-013: Diegetic insert (neural implant) as map/information interface
  • D-015: Camera locked to character, no panning. Rotation deferred to post-v0.1.
  • D-016: Internal monologue as core perception/atmosphere system
  • D-017: Perception modes as character build system
  • D-018: Three-range sound model (close/medium/long)
  • D-019: Top-down camera at ~15-20° shallow tilt ("the angle"), orthographic, perspective in sprite art
  • D-028: Dialogue architecture (4-layer: access, history, trust, unprompted)
  • D-031: Time system (10 ticks/game-minute, 4 day phases, pause available)
  • D-033: Entity color = relationship to player (palette defined)
  • D-041: Knowledge graph (confidence hierarchy gates dialogue and monologue)
  • D-043: Visual style — "functional warmth," clean 2D, bold silhouettes, Light2D-driven atmosphere
  • D-044: Visual hierarchy — entity (2px) > object (1px) > structure (minimal). Entity always wins.
  • D-045: Environmental neutrality — strict zero visual shift from narrative state
  • D-046: Lighting — Darkwood cone + BR2049 color temperature + Hopper composition
  • D-047: Two-tier animation — clear (public routine) vs ambiguous (private intention)
  • D-048: Neural insert overlay — geometric data + bloom shader, not affected by fog
  • D-049: Z-level rendering stack — 8 layers, fog on layer 5, insert on layer 6

Lead Seed: Current Thinking on Controls

The following is Jeroen's initial direction. Workshop participants should use this as a starting point — challenge, refine, or extend, but this is the baseline.

Movement

  • WASD movement, character stays center-screen, map scrolls.
  • Movement direction snaps to the nearest cardinal 8-axis direction from the input.
  • Mouse pointer controls facing direction. The character looks where the mouse points. This decouples movement from facing — you can strafe sideways while looking at a person of interest.

Camera

  • Fixed top-down angle at ~15-20° from vertical ("the angle," D-019 amendment). Orthographic camera with perspective faked in sprite art. Rimworld's approach: sprites drawn as if viewed from a shallow tilt, south-facing front faces visible. 3D render pipeline Camera3D at -72.5° produces this. Vision cone math remains pure 2D.
  • Scroll wheel zooms in/out, but vision cone and fog still apply — zooming out doesn't grant omniscience. You see more floor, but the fog boundaries don't change.
  • Character remains center-screen at all times (D-015).

Mouse & Interaction

  • Mouse cursor is context-sensitive. It changes appearance when hovering over interactable entities (NPCs, objects, terminals, doors).
  • Left click performs the default action on an interactable. When there is exactly one interaction option, the cursor shows the verb as a tooltip (e.g., "Talk", "Read", "Open"). When there are multiple options, the tooltip shows "Interact..." and left click opens the menu.
  • Radial or dropdown menu for multi-option interactions. Never more than one click away from any action.
  • Mouse doubles as targeting reticle when a weapon is selected — the cursor becomes the aim point.
  • Right click opens a world interaction menu — a general-purpose context menu for non-entity actions: observe room, call taxi, open phone (the neural implant interface). This is the entry point to the insert UI, comms, maps, journal, and any lattice-connected tools the character has.

Fog & Visibility Layers

The map is visible at all times, but layers of fog encode information quality:

  1. Clear (forward vision cone): Full visibility, no fog. Blocked by walls/obstacles as normal (D-011 shadowcasting).
  2. Light fog (peripheral vision): Reduced clarity. You can see shapes and movement but detail is diminished.
  3. Sound pings in fog: When you hear something in the fog (D-018 medium range), a visual ping appears at the fog edge with binaural audio reinforcement. Direction and distance are approximate.
  4. Recognized movement in fog: People you have previously seen (knowledge graph entry exists) and can currently hear moving appear as visible figures in the gray fog. Their identity is known because you recognize them — the character icon overlays the gray figure to communicate how you know they're there.
  5. Unrecognized presence: When you hear someone you haven't identified, a generic gray blob appears at an approximate (fuzzy, non-exact) position. Secondary senses tell you something is there, but not who.
  6. Augmented senses: If your character has IR or sensor implants (D-017 perception modes), additional overlays appear in the fog:
    • IR/thermal: A blob in heat-signature colors.
    • Sensor sweep: A stylized digital effect (matrix-style falling characters or similar) indicating a detected presence.
    • When you know who that entity is, their character icon overlays the sensor blob — showing both the detection method and the identification.

Lead note: "I want a clear distinction between active senses and obscured areas, but I don't want it to look boring." The fog should feel alive — not a flat gray overlay but something with depth and atmosphere. Pings, movement, sensor ghosts should make the fog an active information surface, not a dead zone.

Map Awareness (Fog of War for Unexplored Areas)

What you see in areas you haven't visited depends on your implant loadout:

  • With a maps app (implant): Building outlines and structural layout are visible in the fog — you can see the shape of corridors, rooms, exits. But no movable entities — no characters, vehicles, destructible objects, or anything generated/modified by the story engine. The map data is static infrastructure only.
  • Without an implant (or without maps app): Total fog. Zero information about unexplored areas.
  • Physical map (purchased at a shop): Same as maps app but non-dynamic — shows the map as it was when printed. Doesn't update with story-engine changes.

This creates a meaningful difference between implant loadouts at the start of the game without gating core gameplay.


Layer 1: Movement & Interaction Details

The lead's seed covers the broad strokes. The workshop should resolve these remaining specifics:

Movement

  • Sprint/walk/sneak toggle? Does speed affect perception? Walking slowly = more monologue triggers, more observation? Running = reduced vision cone, less detail noticed? Sneaking = slower but quieter (D-018 sound model — you generate less noise)?
  • Collision model: Tile-based movement (snap to grid) or free movement with tile-based collision? Can you squeeze between furniture? Block doorways?

Interaction

  • Proximity threshold: How close before the cursor changes and interaction becomes available? Line-of-sight required, or can you interact through a doorway?
  • Eavesdropping: Is overhearing NPC conversations purely passive (D-018 medium range triggers monologue), or can you actively position yourself to listen? Is there a "lean in" or "listen" action?
  • NPC interaction options: What's the option set? Does it vary by relationship state and knowledge level (D-041 confidence tiers)?
    • Unknown NPC: "Observe" / "Talk"
    • Known NPC (KnowsOf+): "Talk" / "Observe" / additional context-sensitive options
    • KnowsDetails+: "Confront" appears as an option
  • Object interaction set: Examine, use, take — or is it purely contextual? How does reading a manifest differ from picking up a crate?

Questions for participants:

  1. Gestalt: Does movement speed mechanically affect information gathering? Is this fun or just punishing?
  2. Tyre: Tile-based vs free movement in Godot 4 — technical recommendation for v0.1?
  3. Stig: What UI pattern for the context-sensitive cursor + tooltip/menu? Reference implementations?
  4. Dudley: How does the server compute available interaction options per entity per tick?
  5. Ozzie: Does the cursor-as-reticle / cursor-as-interaction-prompt duality feel natural or jarring?
  6. Araminta: What does the context-sensitive cursor look like across states (default, interactable hover, weapon aim)?

Layer 2: Fog & Perception UX

D-016, D-017, D-018 define WHAT information reaches the player. This layer is about HOW it's presented.

Open Questions

  • Fog rendering: The lead wants fog that feels alive, not flat. What visual treatment makes the obscured areas atmospheric without obscuring gameplay information? Particle effects? Animated noise? Depth layers?
  • Sound ping visualization: What does a medium-range sound ping look like at the fog edge? Ripple? Directional arrow? Glow pulse? How does it interact with binaural audio?
  • Sensor overlay aesthetics: IR blobs, digital sensor sweeps, recognized-entity icon overlays — how do these layer without becoming visual noise? How many simultaneous perception modes can be active before the screen becomes unreadable?
  • Identity overlay on fog entities: When you recognize a heard/sensed entity, their icon appears over the blob. What does this transition look like? Instant? Fade-in? Does it feel like a moment of recognition?

Questions for participants:

  1. Araminta: Visual treatment for the fog layers (clear → light fog → deep fog → unexplored). How do we make fog atmospheric, not boring?
  2. Gestalt: How many simultaneous perception overlays before it stops being a build system and starts being sensory overload?
  3. Ozzie: What makes the "I hear someone I know moving in the fog" moment feel cool rather than routine?
  4. Tyre: Performance implications of layered fog with animated overlays, sensor effects, and entity ghosts in Godot 4?

Layer 3: Information Access & the Implant UI

D-013 defines the insert as diegetic. The right-click world menu is the entry point. What's behind it?

Open Questions

  • Right-click menu scope: What actions live in the world menu? Observe room, call taxi, open phone — what else? Is this the pause menu equivalent?
  • Phone/implant UI: What does "open phone" look like? Full-screen overlay? Corner panel? Does the game pause or continue while you're in the implant UI?
  • Knowledge journal: How do you review what you know? Diegetic (implant records)? Is it organized by person, by topic, by timeline?
  • Maps app UX: How does the implant map interact with the game world? Overlay on the main view? Separate panel? Minimap always visible or on-demand?
  • Active vs passive information: The game pushes information via monologue (passive). The player pulls information via the implant (active). Where's the line? Can you "scan" an NPC for lattice data, or do you have to talk to them?

Questions for participants:

  1. Gestalt: What information should the player actively seek vs. what should the game push? Where's the sweet spot for detective work?
  2. Stig: Right-click world menu implementation — radial? List? Nested? What fits the diegetic framing?
  3. Tyre: Does the game pause when the implant UI is open? What are the multiplayer implications (D-009)?
  4. Ozzie: When does information access feel like detective work vs. menu navigation?

Layer 4: Dialogue Initiation & Confrontation UX

D-028 defines the dialogue architecture (4 layers: access, history, trust, unprompted). This layer is about the player-facing UX — what the player sees and does, not the underlying system.

Open Questions

  • Initiation flow: Player walks up to NPC, cursor shows "Talk", clicks. Then what? Dialogue box appears? Where? How does the transition feel?
  • Response selection: Does the player see a list of topics/questions? Single-branch with the system selecting which lines are available? Or explicit choice from visible options?
  • Gated options visibility: Do locked dialogue options show as grayed-out (player knows they're missing something) or are they invisible (player doesn't know what they don't know)? The latter fits the information asymmetry design better.
  • Confrontation feel: "I know you were in corridor B-7" should feel different from "How's your shift going?" How does the UI communicate tension without a separate confrontation system?
  • Walk-away: Can you leave mid-conversation? What's the NPC reaction? Can you resume?
  • Mid-dialogue monologue: Character reacts internally to what the NPC says (D-016). How does monologue text appear during a dialogue exchange without competing?

Questions for participants:

  1. Paula: How should confrontation feel different from casual conversation in the UX?
  2. Stig: Dialogue box design — where on screen, how much space, how does it coexist with the game world?
  3. Gestalt: Should locked options be invisible or visibly locked? What serves the "asymmetric information" feel?
  4. Ozzie: What makes dialogue initiation feel natural — like walking up to someone — rather than "pressing the talk button"?

Layer 5: Inventory & Physical Interaction

Open Questions

  • Inventory existence: Does the character carry items, or is everything knowledge-based? "You SAW the manifest" vs "you HAVE the manifest" — which model fits the game?
  • Evidence collection: Detective logs evidence in the lattice? Takes photos? Or just observes and the knowledge graph records it?
  • Contraband handling: Smuggler interacts with cargo physically (move crates, hide packages) or abstractly (manage shipments via terminal)?
  • Access systems: Physical keys, access codes, lattice authorization — how does restricted access feel? Does the smuggler pick locks while the detective flashes credentials?

Questions for participants:

  1. Gestalt: How physical should the interaction model be? Does carrying items create interesting decisions?
  2. Tyre: What's feasible for v0.1? Full inventory or knowledge-only with physical interaction deferred?
  3. Paula: How does evidence collection differ by character? Does the smuggler's version of "evidence" (leverage, receipts, debts) feel different from the detective's?

Workshop Format

2 rounds.

Round 1: Each participant addresses their domain questions with concrete UX proposals. React to the lead's seed — validate, challenge, or extend. Describe interactions as "the player does X, they see Y, it feels like Z."

Round 2: Integration pass — how do the layers interact? Movement affects perception, perception feeds interaction options, interaction feeds knowledge, knowledge changes available interactions. Identify the v0.1 minimum viable interaction model.

Expected Outputs

  • Control scheme spec: Complete mapping of inputs to actions (keyboard, mouse, gamepad if applicable)
  • Interaction model spec: How context-sensitive prompts work, what options appear when
  • Fog/perception UX spec: Visual treatment for fog layers, sensor overlays, entity recognition in fog
  • Implant UI direction: What lives behind the right-click menu, how it's organized
  • Dialogue UX spec: Initiation flow, response selection, confrontation feel
  • V0.1 scope: Minimum viable interaction set for the vertical slice
  • Tickets: Implementation tickets for the interaction/UI systems