docs(docs): add generator architecture workshop brief
Workshop brief for ticket #562 covering the top-down district generator pipeline (Cities Skylines model). Builds on D-094 chunk/block/district hierarchy. Targets Q-036 and Q-037 resolution. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
# Generator Architecture Workshop Brief
|
||||
|
||||
**Goal:** Establish the top-down procedural generator pipeline architecture — from geography down to individual chunk fill — that will power the 300-world model. Produce a D-record defining generator primitives, the spatial hierarchy, and the sub-chunk building system.
|
||||
**Ticket:** #562 (story, parent: #50 Chunk-based Map System)
|
||||
**Priority:** MEDIUM — prerequisite to #144 (Chunk generation system), Sprint 21+ target
|
||||
**Participants:** Gestalt (systems design), Tyre (architecture), Miri (worldbuilding), Araminta (spatial/visual), Nigel (replayability/procedural gen), Qatux (docs), SI (tickets)
|
||||
**Source:** Station District Layout Workshop (#153, Round 3), lead directive
|
||||
|
||||
---
|
||||
|
||||
## Context
|
||||
|
||||
The v0.1 Transit District is hand-authored. The long-game goal is 300 procedurally generated worlds. The question this workshop must answer is: **what is the generator's architecture — top to bottom?**
|
||||
|
||||
The lead has identified a top-down pipeline model inspired by Cities Skylines:
|
||||
|
||||
```
|
||||
Geography
|
||||
→ Infrastructure (transport nodes, utilities)
|
||||
→ Amenities & Services
|
||||
→ Population (extrapolated from capacity)
|
||||
→ Zoning
|
||||
→ Block generation
|
||||
→ Chunk fill (individual buildings and spaces)
|
||||
```
|
||||
|
||||
This workshop also addresses a related structural question: how does the **sub-chunk quarter system** provide building variety within template-driven generation? A chunk divides into 4 quarters that can merge, split, leave gaps, or host shacks/gardens — producing L-shapes, mixed-use footprints, and irregular structures without breaking the generator's regularity.
|
||||
|
||||
Multi-block structures (train stations, government buildings, stadiums, parks, farmland) span multiple chunks and must be accounted for in the block and zoning passes before individual chunks are filled.
|
||||
|
||||
**Starting point:** Q-036 asks whether the district skeleton (social sites, NPC slots, triangle templates, economic function, access topology) is the atomic generator output unit. D-025 defines social sites as atomic template units for hand-authoring. This workshop must reconcile the two.
|
||||
|
||||
**What is already decided:**
|
||||
- D-025: Social site / functional cluster as atomic template unit (hand-authoring)
|
||||
- D-036: Sova Transit District as v0.1 setting (hand-authored)
|
||||
- D-012: Chunk-based map system (bounded for v0.1, borderless-capable)
|
||||
- #153 D-record (Station District Layout Workshop): district/block/chunk spatial hierarchy, spatial dimensions, access topology gradient — reference `decisions/content.md` for the confirmed record
|
||||
|
||||
**What is still open:**
|
||||
- Q-036: District skeleton as generator output (assigned Tyre, Gestalt)
|
||||
- Q-037: Generator development pipeline / phased production model (assigned SI, Tyre)
|
||||
- Q-039: Procedural gate topology generation
|
||||
|
||||
---
|
||||
|
||||
## Key Questions to Resolve
|
||||
|
||||
### 1. Pipeline Architecture
|
||||
|
||||
1. Is the Cities Skylines top-down model (geography → zoning → chunk fill) the right architecture for The Settled Reach, or does the game's station-centric setting require a different ordering?
|
||||
2. What is the correct sequence — does population follow zoning, or precede it?
|
||||
3. How does the pipeline handle stations (Sova) vs. planet-side cities vs. orbital installations? Same pipeline, different geography inputs?
|
||||
4. Where do political/economic conditions enter the pipeline? (Faction control, prosperity tier, trade routes)
|
||||
5. At what pipeline stage are the triangle templates (D-025) instantiated?
|
||||
|
||||
### 2. Spatial Hierarchy and Primitives
|
||||
|
||||
6. What are the canonical spatial units in the hierarchy? (Region → District → Block → Chunk → Sub-chunk quarter? Or different names/levels?)
|
||||
7. What is the confirmed chunk size in sim tiles? (Reference #153 D-record — the district workshop decided this)
|
||||
8. What is the block size — how many chunks per block?
|
||||
9. What is the district size — how many blocks per district?
|
||||
10. How does the sub-chunk quarter system work mechanically? (Quarter = ¼ chunk, can merge 2×2, 1×2, L-shape. What are the merge rules? Who decides fill vs. empty?)
|
||||
|
||||
### 3. Multi-Block Structures
|
||||
|
||||
11. How are multi-block structures (train stations, stadiums, government complexes, parks) represented in the generator? (Reserved footprint at the zoning pass? Pre-baked templates that claim N×M blocks?)
|
||||
12. What is the maximum multi-block footprint — is there a cap?
|
||||
13. How do multi-block structures interact with neighbouring chunk fills at their edges?
|
||||
14. Can a multi-block structure span district boundaries?
|
||||
|
||||
### 4. District Skeleton as Generator Output (Q-036)
|
||||
|
||||
15. Is the district skeleton (social site arrangement, NPC slot allocation, triangle template selection, access topology) the correct atomic output of the district-generation stage?
|
||||
16. How does the district skeleton output interact with D-025's social site templates? (Generator selects and arranges templates, not individual tiles?)
|
||||
17. What inputs does the district skeleton generator consume? (Zoning type, population density, faction control, economic function, transport adjacency)
|
||||
18. What does the district skeleton output look like as a data structure? (List of social site slots with positions, access tier, NPC capacity, template tag)
|
||||
|
||||
### 5. Replayability and Variation
|
||||
|
||||
19. What variation levers exist at each pipeline stage? (Seed, faction weights, economic tier, historical events?)
|
||||
20. How does the sub-chunk quarter system produce perceived variety across multiple playthroughs?
|
||||
21. How are "flavour" structures (shacks, gardens, market stalls) assigned to unclaimed quarter space?
|
||||
22. What prevents two generated districts from feeling identical even if they share the same zoning type?
|
||||
|
||||
### 6. v0.1 / Generator Boundary
|
||||
|
||||
23. Where does the v0.1 hand-authored content end and the generator begin? What stub interfaces must v0.1 leave behind?
|
||||
24. Which pipeline stages are in scope for implementation, and which are deferred (per Q-037's phased production model)?
|
||||
25. Does the v0.1 Transit District need to be expressible as generator output (for validation), or is it purely an authored ground-truth?
|
||||
|
||||
---
|
||||
|
||||
## Input Documents
|
||||
|
||||
| Document | What to read | Why |
|
||||
|----------|-------------|-----|
|
||||
| `decisions/content.md` | D-025 (social site template), #153 D-record | Generator must compose from these primitives |
|
||||
| `decisions/scope.md` | D-012 (chunk system), D-036 (Sova setting) | Spatial constraints and v0.1 setting |
|
||||
| `decisions/questions.md` | Q-036 (district skeleton), Q-037 (generator pipeline), Q-039 (gate topology) | Open questions this workshop resolves |
|
||||
| `docs/design/sova-station-profile.md` | District types, 6-district layout | The worldbuilding context the generator must reproduce |
|
||||
| `docs/design/spatial-layout-terminal-v01.md` | Terminal layout | Example of a hand-authored chunk cluster |
|
||||
| `docs/design/spatial-layout-bar-v01.md` | Bar layout | Example of a hand-authored chunk cluster |
|
||||
| `decisions/architecture.md` | D-014 (tile-based movement), D-012 (chunk loading) | Technical constraints on spatial units |
|
||||
| `docs/workshops/content-architecture/content-architecture-workshop-brief.md` | Three-tier content pipeline | How templates and procedural generation already relate |
|
||||
|
||||
---
|
||||
|
||||
## Expected Outputs
|
||||
|
||||
1. **D-record: Generator Architecture** — confirmed in `decisions/architecture.md`:
|
||||
- Top-down pipeline stages (named and sequenced)
|
||||
- Spatial hierarchy (named levels, tile dimensions per level)
|
||||
- Sub-chunk quarter system rules (merge/split/fill logic)
|
||||
- Multi-block structure reservation protocol
|
||||
- District skeleton as generator output: data structure definition
|
||||
- v0.1 / generator boundary (what's hand-authored, what's stubbed)
|
||||
|
||||
2. **Resolution of Q-036:** District skeleton as atomic generator output — yes/no + formal definition if yes
|
||||
|
||||
3. **Resolution of Q-037 scope:** Which pipeline phases land in which version window (v0.1 stub, v0.2–0.5 template expansion, v0.6–0.10 generator development)
|
||||
|
||||
4. **Tickets:** Implementation tasks derived from the D-record (chunk data structure update, district skeleton schema, zoning pass stub, block generation stub)
|
||||
|
||||
---
|
||||
|
||||
## Workshop Format
|
||||
|
||||
Three rounds:
|
||||
|
||||
**Round 1 — Domain Inventory**
|
||||
Each participant reviews existing decisions and states what their domain requires from the generator architecture.
|
||||
- Gestalt: what gameplay loops does the generator need to support? What must it guarantee (e.g., always a surveillance chokepoint, always a quiet zone)?
|
||||
- Tyre: what are the hard technical constraints on chunk size, hierarchy depth, and data structure for the district skeleton?
|
||||
- Miri: how does the generator reproduce the cultural/economic variation of 300 worlds? What lore-level inputs drive the pipeline?
|
||||
- Araminta: what visual coherence constraints does chunk fill need to satisfy? How does the sub-chunk quarter system produce plausible streetscapes?
|
||||
- Nigel: what variation and replayability guarantees must the generator provide? What makes two generated districts feel different?
|
||||
|
||||
**Round 2 — Pipeline Proposals**
|
||||
Propose concrete pipeline architecture. Name the stages, define the spatial hierarchy levels with tile dimensions, describe the district skeleton data structure. Respond to each other's domain requirements from Round 1.
|
||||
|
||||
**Round 3 — Convergence**
|
||||
Resolve conflicts, agree on the pipeline sequence, lock spatial hierarchy dimensions, define the district skeleton output format, set the v0.1/generator boundary. Draft the D-record.
|
||||
Reference in New Issue
Block a user