Standardized YAML frontmatter on all 47 files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
13 KiB
title, description, type, status, workshop, agent, round, created
| title | description | type | status | workshop | agent | round | created |
|---|---|---|---|---|---|---|---|
| Round 3: GESTALT — Systems Design Proposals | Gestalt's systems design proposals based on full interview transcript | workshop | archived | wheres-the-fun | gestalt | 3 | 2026-03-05 |
Round 3: GESTALT — Systems Design Proposals
Workshop: Where's the Fun? | 2026-03-05
Agent: GESTALT (Systems Design) Based on: Full interview transcript, Round 1 notes, all 9 Round 1 files
The Reframe in Systems Terms
Jeroen's vision is: live in the world, have impact. Single-character life sim. Detective is a job you might have, not the whole game. This isn't a tweak to the design — it's a complete recontextualization of what every system is FOR.
The good news mechanically: the simulation engine (routines, perception, knowledge graph, verb architecture) was already built for this. The bad news: the v0.1 scope stripped the player of all their planned interfaces to that engine and then asked them to play. The playtest failure was a scaffolding problem, not a simulation problem.
Let me break down what this means for every system I own.
KEEP — Working, Needs Recontextualization
1. The verb architecture (verbs[] system)
The server-computes-all / client-reads-priority design is architecturally correct and survives the reframe. The fact that every entity gets a full verbs[] array computed every tick, and the client just reads verbs[0], is exactly the right foundation for a life-sim where different jobs need different default actions.
Keep the architecture. The priority profiles need to become job-aware (see CHANGE section).
2. The knowledge graph
It works. The data exists. Jeroen confirmed the planned full information architecture (mystery board, journal, AR overlays, comms) was always assumed — the knowledge graph is the right backend for all of it. Don't touch it.
3. The perception system (fog, LOS, shadowcasting)
Fires correctly. The life-sim reframe needs this even more than the detective game did — your spatial position determining what you know is MORE interesting when what you're doing with that knowledge varies by job.
4. The asymmetric information mechanic itself
This becomes MORE powerful in a life-sim, not less. In the detective-only framing, asymmetric information meant "the detective and smuggler know different things." In the life-sim framing, it means "every job gives you a different lens on the same world." A detective in Sova Transit notices behavioral anomalies. A tycoon notices cargo flow. A smuggler notices authority figures. Same tiles, same simulation, three different games. This is the correct master mechanic. It just needed the broader frame to breathe.
5. The moral arc patterns
The 4-phase arc (belonging → crack → investigation → reckoning) survives as world content — specifically, as what happens when a player pursuing ANY career path encounters the FRIEND/smuggler storyline. It's not the core loop anymore; it's one of the world's live storylines that may or may not intersect with the player's current job. Keep the patterns. Release them from being the mandatory structure.
CHANGE — Design Intent Right, Execution Wrong
1. Verb priority must become job-aware
Current spec: Talk > Examine NPC at close range (default state)
The problem: This was designed for a detective game where the primary loop was observation-then-confrontation. But even within the detective game, it contradicted the stated loop ("Examine first, Talk later"). In the life-sim reframe, different jobs need different default interactions — a tycoon wants to Examine Objects (read manifests, terminals, ledgers); a bar owner wants to Talk; a detective wants to Observe.
The change: Introduce VerbPriorityProfile as a property of the player's current career/job. The server already has all the context to compute this — it knows the player's job, their relationship state, their knowledge graph. The verbs[] computation adds one more input: active VerbPriorityProfile.
VerbPriorityProfile {
detective: [ExamineNpc, Talk, ExamineObject] // Observe first
tycoon: [ExamineObject, Talk, ExamineNpc] // Read the room first
smuggler: [Talk, ExamineNpc, ExamineObject] // Social first
bar_owner: [Talk, ExamineNpc, ExamineObject] // Same as smuggler
}
This is a moderate server change — a new field on the character entity, a refactor of the priority sort step. No client changes needed beyond rendering whatever verbs[0] says.
2. Monologue demoted from primary to supplementary
Current spec: Monologue is the primary feedback mechanism bridging the top-down camera to the character's subjective experience (D-016).
What Jeroen confirmed: Monologue was always meant as "a reasoning nudge and summary tool in the later stages." It was supposed to supplement a full diegetic tool suite, not carry the entire feedback burden alone.
The change: Monologue stays — but its design role must be explicitly restated. It is NOT the tutorial, NOT the primary feedback channel, NOT the player's only window into the knowledge graph. It is: internal color, atmospheric texture, reasoning confirmation ("yes, you did notice something real"). The job onboarding is the tutorial. The diegetic tools are the information architecture. Monologue is the voice that runs on top of both.
Operationally, this means:
- Fewer monologue lines overall (not the only thing firing)
- Higher bar per line (if it fires, it earns its moment)
- Spatial anchoring (source position) becomes a requirement, not a stretch goal
- Monologue queue depth can stay at 1 — but the 2s cooldown may need loosening since the player now has other feedback channels carrying load
3. The storyteller: from seed variant selector to career onboarding engine
Current design: Storyteller picks from detective/smuggler variants (quiet morning, Kael late, container held, etc.)
What Jeroen described: CK3-style bookmarks. Choose a career path. Each career path has onboarding that teaches tools organically. Detective starts with job onboarding (insert enablement, weapon qualification), not a mission. Tycoon starts with the inheritance ping.
The change: The storyteller's primary job becomes:
- Bookmark resolution — which career path did the player choose?
- World state initialization — what is the day's world state? (tensions, schedules, active storylines)
- Onboarding sequencing — which tools get enabled in which order during the first session?
The seed variants (quiet morning, Kael late) survive as sub-options within career paths — they can still modulate the world state after onboarding is complete. But they are no longer the FIRST thing the storyteller decides. Career + onboarding comes first.
4. The "not a tutorial" philosophy — valid principle, wrong implementation
The principle was right: the game teaches through play, not instruction. The implementation was wrong: it assumed the player would naturally discover the verbs and loops through exposure alone, with monologue as the only scaffold.
In the life-sim reframe, the "not a tutorial" principle is preserved through job onboarding. Each career bookmark's onboarding is the tutorial — but it's diegetic:
- Detective: "Your insert has come online. New capability: Pattern Tracking. High-probability behavior anomalies will surface automatically." The player learns Pattern Tracking exists because the insert tells them their own character's professional context.
- Tycoon: "Inheritance received. Portfolio summary available via insert." Player learns portfolio exists because the bank contact tells them.
The tutorial is still not a pop-up. It's the world talking to you in-character. The difference from v0.1 is that the world now has something to say that isn't just atmospheric monologue.
KILL — Design Intent Was Wrong
1. The monologue-only feedback architecture
Kill it as a design intent. Not the monologue system — that survives. But the architectural decision that monologue is sufficient as the player's primary interface to the knowledge graph is wrong. It was always wrong; Jeroen confirms this was a scoping error. The planned tools (mystery board, journal, AR overlays, comms, insert icons) should be treated as CORE, not aspirational.
For v0.2 design, these tools need to be treated as first-class citizens: their absence in v0.1 WAS the playtest failure. Not bad monologue lines — missing interfaces.
2. The single detective/smuggler frame as the game's identity
Kill the framing that the game is fundamentally a detective/smuggler tension. That storyline lives in the world. It may still be the most interesting storyline in the world. But the game is not defined by it. The v0.1 scope was too narrow. In v0.2, the frame is: you are a person in the Settled Reach. What do you do?
This has downstream implications for every design doc that frames every decision as "for the detective" or "for the smuggler." Those need to be reframed as job-specific instances of broader patterns.
3. The verb priority spec as written (Section 4, interaction-verbs-v0.1.md)
The specific priority table is wrong and needs to be replaced with the VerbPriorityProfile approach described above. The section header "v0.1 Priority Resolution" is particularly misleading — it implies the priority is global and static, when it should always have been job-contextual.
Where Does the Fun Come From?
The positive vision for systems design in the life-sim.
The fun is in reading the same world differently depending on who you are.
Every system I own is in service of this. The perception system, knowledge graph, verb architecture, and storyteller all exist to create: the experience of having a specific perspective on a shared world. Not one perspective. Many. Simultaneously incompatible.
The mechanic that produces this isn't "asymmetric information about the detective case." It's "asymmetric information about everything, filtered through your job."
Here's what this looks like as a systems interaction:
Player character (Detective) enters cargo bay
↓
Perception system: LOS reveals 3 NPCs, 2 cargo terminals, 1 supervisor
↓
VerbPriorityProfile (detective): default = Observe NPCs
↓
Knowledge graph query: any known contradictions on these entities?
↓
Insert UI: flags Kael's behavioral anomaly count (2/3 tells observed)
↓
Monologue (if appropriate): "Third time this shift. He keeps checking the gate log."
↓
Player decision: approach (Observe or Talk), examine terminal, wait and watch
The same cargo bay, entered by a tycoon:
Player character (Tycoon) enters cargo bay
↓
Perception system: same LOS, same NPCs, same terminals
↓
VerbPriorityProfile (tycoon): default = Examine Objects
↓
Knowledge graph query: any cargo flow anomalies?
↓
Insert UI: flags the held container (3 days over routing protocol)
↓
Monologue: "Someone's paying demurrage on that. Either they can afford it or they can't afford not to."
↓
Player decision: examine terminal, talk to supervisor, calculate the margin
Same simulation. Same world state. Different games. THAT is the asymmetric information mechanic. THAT is where the fun is.
The systems I need to build to make this real:
VerbPriorityProfileper career/job (moderate server work)- Job-specific insert UI layouts (moderate client work)
- Knowledge graph surface queries per job (what does THIS job flag as salient?)
- Career bookmark selector + onboarding arc sequencer (new storyteller subsystem)
- Diegetic tool suite as first-class interfaces, not stretch goals
Specific Tensions to Resolve in Round 4
-
Career vs. class arc tension — Jeroen wants both job-specific onboarding AND storylines that cut across jobs. How does the gate-builder/smuggler storyline intersect with a tycoon playthrough? The moral arc needs to be job-agnostic (it's about WHAT YOU KNOW, not WHAT YOUR JOB IS). This needs cross-domain discussion.
-
NPC legibility is a prerequisite for everything else — Araminta is correct that visual hierarchy comes first. But it's not just visual. The NPCs need to be legible as PEOPLE before the knowledge graph can produce interesting decisions about them. This requires art, names, behavioral tell animation, AND the insert surfacing entity information. Multiple domains need to coordinate on this.
-
Verb display timing — Tyre asked about pulling v0.2 verb display forward. Given the life-sim reframe, I now think this is higher priority than before: if each job has different available verbs, showing the full list teaches the player what their job CAN do. A detective who sees
[E] Observe [F] Talkimmediately understands something about their role that monologue alone cannot convey.
GESTALT — Round 3 complete. The architecture survives. The interfaces were missing. The fix is: job-aware verb priorities, diegetic tool suite as first-class, career bookmark onboarding as the new tutorial. The simulation engine is already the life-sim engine. It just needed the broader frame.