Files
settled-reach/docs/workshops/world-generation/gestalt-sw1r1.md
T
jpmschweitzerandClaude Opus 4.6 252e3d380a docs(workshops): complete world generation architecture workshop
3 rounds of SW1 (endgame feature vision) with 5 agents + Qatux.
Produced endgame-feature-vision.md (692 lines) covering the full
galaxy-to-ground generation pipeline, cultural cascade, replayability
architecture, and player experience beats.

Workshop was cut short when PO redirected to a 6-phase development
cascade (wiki content → economics → planetary maps → player control →
world gen → detail coloring). v0.2 target dropped. Heritage roots
(D-104/D-105/D-101/D-107) flagged for supersession — real-world
cultural corridors replace abstract roots.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:12:09 +01:00

12 KiB

title, agent, workshop, round, type, created
title agent workshop round type created
SW1-R1: Gestalt — Product Questions on Generation Systems gestalt world-generation 1 product-questions 2026-03-24

SW1-R1: Gestalt — Product Questions on Generation Systems

Angle: Systems design and fun factor. How do generated spaces create interesting player decisions, support the tycoon/life-sim loop, and interact with NPC behaviour and economy?


Context I read before writing these

  • D-114 (v0.2 proof-of-life = generator producing usable output, not hand-built slice)
  • D-117 (tycoon bookmark — small business owner in Van Maanen's Star, zero investigation content)
  • D-118 (starts as existing small business owner, not mogul — bar, logistics contract, storage franchise)
  • D-097 (guarantee tier system — generator makes spatial contracts it keeps)
  • D-096 (Grid and Organic layout modes)
  • The full DistrictSkeleton data model in server/src/simulation/generator.rs
  • Generator architecture workshop outcomes (the prior spatial hierarchy and two-phase model are settled)

What is NOT settled: how generated spaces plug into the economy, what "functional" vs "cosmetic" rooms mean, how NPCs populate zones, what v0.2 scope looks like, and whether the player ever modifies generated space.


Q1: What does a "functional" room need to provide for the tycoon loop?

The question: When the generator creates a commercial zone (bar, market stall, warehouse), does it also produce the economic hook that makes it a place the player can do business? Or is the simulation layer bolted on separately?

Why it matters: The tycoon starts with a small bar. If bars are cosmetic — they look like bars but have no economic wiring — then running a business is entirely abstract (pure insert interaction, no spatial reality). If bars are functional — they have customer demand, a supply chain hook, a rent mechanic — then the generator is responsible for producing the simulation preconditions, not just the tiles.

Options:

Option What it means
A. Cosmetic Generator produces correct tile aesthetics. All economic logic is layered on manually by game systems.
B. Function-tagged Rooms carry a DistrictType/ZoningType tag that unlocks interaction types (buy, sell, employ, rent). Simulation is sparse but spatially grounded.
C. Fully simulated Generator produces demand curves, foot traffic weights, supply route stubs. Economy is intrinsic to generated space.

Recommendation: B (function-tagged).

Option A breaks the tycoon loop — you can't run a bar if bars are decoration. Option C is v0.5+ scope — we don't even have an economic simulation implemented. Option B gives us the minimum: the generator tags commercial zones, and the economic layer treats tags as permission flags. The player's bar is real because the generator says "this zone accepts commercial transactions" — the rest is simulation-layer work on top of a tag.


Q2: How does the tycoon's starting business relate to generated space?

The question: Does the generator produce a district and the tycoon picks a business from what's there? Or does generation know in advance that a tycoon is spawning and guarantee a specific business type?

Why it matters: This is the first decision point in the game. If the generator doesn't know the tycoon is coming, the player might spawn into a district with no available commercial sites — or the starting business is completely decoupled from the generated world (pure abstraction). If generation is bookmark-aware, the generator guarantees a buyable commercial zone exists — but then generation is character-type-specific, which is an architectural coupling.

Options:

Option What it means
A. Generator-first Generator produces a district. Tycoon bookmark picks a starting business from whatever commercial social sites the generator placed. Generator knows nothing about character type.
B. Guarantee-driven The guarantee tier system (D-097) ensures every ComplexityTier::Full district contains at least one buyable commercial social site. Tycoon always has options. Generator doesn't care about character type — it just guarantees commercial availability.
C. Bookmark-aware generation Generator receives bookmark type as a constraint and builds around the tycoon's starting premise.

Recommendation: B (guarantee-driven).

Option A is too loose — the tycoon might spawn in a district with no commercial sites (e.g., a pure DistrictType::Residential). Option C creates character-specific generation logic which is a maintenance nightmare as more bookmarks are added. Option B is the right architecture: the guarantee system already exists (D-097), we just add "at least one buyable commercial zone" as a Tier 1 guarantee for ComplexityTier::Full districts. The tycoon picks their bar from the available options — first decision is meaningful.


Q3: Do NPC schedules follow zone type or triangle assignment?

The question: When NPCs populate a district, are their daily paths shaped by zone function (they go to commercial zones to shop, to residential zones to sleep) or by their triangle assignment (they go where the narrative needs them)?

Why it matters for the tycoon: The player's bar lives or dies by foot traffic. If NPCs only move according to triangle assignments, ambient customers are invisible unless they're assigned to the tycoon's triangle. If NPCs follow zone function, the bar gets ambient customers automatically — but narrative moments (the suspicious regular, the supplier contact) need special handling.

This is the core tension between simulation-feel and story-feel.

Options:

Option What it means
A. Triangle-only All NPC movement is story-driven. NPCs only appear somewhere if their triangle sends them there. Ambient foot traffic doesn't exist.
B. Zone-only NPCs follow zone-function schedules. Commercial zones attract consumer NPCs. Triangle narrative overrides are not supported.
C. Hybrid (zone baseline + triangle override) Ambient NPCs follow zone-function schedules (commercial zones get foot traffic automatically). Key NPCs with triangle assignments override their zone schedule for plot-relevant moments.

Recommendation: C (hybrid).

Option A produces a ghost town except during triangle events — the tycoon's bar has zero customers unless someone is assigned there. Option B produces living space but no narrative texture — everyone behaves the same, nothing is special. Option C is the Rimworld principle: simple rules (zone attraction) produce ambient life; story layers override locally when they need to. The generator already produces both zone types AND social site placements — C uses both outputs at their appropriate scale.


Q4: What zone types does v0.2 actually need to generate?

The question: The brief lists 5 zone types (station, urban, agricultural, maritime, wilderness). The tycoon lives in Van Maanen's Star. What's the minimum generation scope that produces a playable proof-of-life without spreading implementation across 5 zone types?

Why it matters: Each zone type is a separate generation algorithm, tile palette, NPC schedule model, and spatial grammar. Attempting all 5 for v0.2 is a scope risk that could leave us with 5 half-working zone types instead of 1 fully working one. D-114 defines proof-of-life as "generator producing usable output" — usable requires one zone type that actually works end-to-end.

Options:

Option What it means Scope risk
A. Station only Van Maanen's Star is a station/port. Build the interior generator fully. Low — one algorithm, one palette family, one NPC schedule model
B. Station + Urban Give us the station and the surrounding commercial district Medium — two algorithms, palette transition logic needed
C. All 5 from day one Full zone type coverage immediately High — 5 algorithms, impossible to validate all in v0.2
D. Station + one exterior zone Station proves interior generation; one exterior zone (urban or wilderness) proves the generator can handle open space Medium — two algorithms but deliberately different in kind

Recommendation: A (station only) with explicit deferral of everything else.

Van Maanen's Star is canonically station/port-dominated (that's what makes a tycoon's bar viable — captive population). Station interiors are the most mechanically interesting for the tycoon loop (chokepoints, commercial zones, residential blocks, access tiers). The full DistrictSkeleton supports all 5 zone types architecturally — v0.2 just proves one of them works. Urban, agricultural, maritime, wilderness are all follow-on work once the generator pipeline is validated end-to-end.


Q5: Does the player ever modify generated space?

The question: The data model has ChunkMutations with MutationCause::PlayerAction. The tycoon is running a bar. Can they renovate it — add a table, change the layout, put up a sign? Or is the physical space static and all management happens through the insert/device?

Why it matters for systems: If the player modifies space, the generator needs to produce spaces that are modifiable (correct tile types, clear floor plans, reasonable door placement). Generation also needs to know which spaces the player can legally modify. If spaces are static, none of this matters and ChunkMutations::PlayerAction is future scope.

Options:

Option What it means
A. Static backdrops Generated space is never modified by the player. All business management is insert-mediated. ChunkMutations::PlayerAction is deferred indefinitely.
B. Owned-premise modification only Player can modify furniture/layout of the space they own (their bar). Other zones are static. Generator needs to mark owned zones as player-modifiable.
C. Any controlled space Player can modify any space they own or rent. Generator produces modifiability metadata.

Recommendation: A (static) for v0.2, B as the first enhancement.

The tycoon loop doesn't require spatial modification — you can run a successful bar without moving the furniture. For v0.2 proof-of-life, keeping spaces static eliminates an entire systems layer (construction, ownership transfer, physics, save/load for mutations) and focuses attention on proving generation and economic simulation work. Mark B as the first post-v0.2 enhancement: owned-premise modification is a high-impact feature (players feel ownership when they can redecorate) with bounded scope.


Systems summary: what these answers connect to

If Jeroen answers these 5 questions, the following generator system boundaries become fully specified for v0.2:

Question answered System boundary clarified
Q1 (functional rooms) What tags the generator must produce vs what economic simulation adds later
Q2 (tycoon + generated space) Whether guarantee tier system needs a "buyable commercial zone" Tier 1 entry
Q3 (NPC schedules) Whether Phase 2 (PreparedDistrict) generates NPC manifests with zone-baseline schedules
Q4 (zone type scope) Which tile palettes, generation algorithms, and NPC schedule templates v0.2 needs
Q5 (player modification) Whether ChunkMutations::PlayerAction enters scope or stays stub

The crux question is Q1 — it determines whether generated spaces are an art asset or a simulation primitive. Everything else flows from that answer.