docs(workshops): create world generation workshop brief from Q-077

Q-077 promoted to full workshop brief with 9 reference implementations,
7 key questions, 5 zone types, and agent assignments (Tyre, Gestalt,
Nigel, Miri, Ozzie).

Also: Q-089 through Q-092 filed (starfield, Markov names, event audio,
modular settings menu), make clean-imports target added.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-23 20:48:19 +01:00
co-authored by Claude Opus 4.6
parent 23d946a68c
commit e77f66d53a
3 changed files with 112 additions and 7 deletions
+68
View File
@@ -0,0 +1,68 @@
---
title: "World Generation Architecture Workshop"
description: "Design the procedural world generation pipeline — from Rust server layout generation to Godot client rendering. Covers urban, rural, wilderness, and station interior zones."
type: workshop
status: draft
agents: "TYRE, GESTALT, NIGEL, MIRI, OZZIE"
---
# Workshop Brief — World Generation Architecture
**To:** TYRE, GESTALT, NIGEL, MIRI, OZZIE
**From:** Jeroen
## The problem
We need a procedural generation pipeline that creates explorable locations — station interiors, settlements, rural villages, wilderness areas, industrial zones. The server generates the layout (Rust/bevy_ecs), the client renders it (Godot 3D isometric). No location is hand-authored — everything comes from the generator with cultural, economic, and narrative constraints.
## Constraints
- Server-authoritative (D-010, D-020) — generation logic in Rust, client renders from snapshot data
- Chunk-based streaming (D-096) — only load what's near the player
- Simulation tiers (D-097) — Active/Background/State-saved/Ungenerated
- Tile-grid foundation — server works in 2D tile coordinates, client renders 3D
- Must handle z-levels (D-148 confirms multi-height structures)
- Toon shader aesthetic — all assets go through our shader pipeline
- Assets from Poly Haven (CC0) and Quaternius — run through toon shader
## Zone types to generate
1. **Station interiors** — corridors, modules, docking rings, residential blocks, commercial areas
2. **Urban/port zones** — streets, buildings, markets, docking facilities
3. **Rural villages** — scattered buildings, fields, paths, natural terrain
4. **Wilderness** — forests, terrain, water bodies, cave entrances
5. **Industrial** — factories, extraction sites, refineries, warehouses
## Reference implementations to study
These are Godot plugins studied for patterns — the generation itself happens in Rust.
| Reference | What to study | Relevance |
|---|---|---|
| [CityCrafter3D](https://github.com/immaculate-lift-studio/CityCrafter3D) | Road networks, building placement, district zoning, lot subdivision | Urban zones |
| [Chunk Manager](https://github.com/repulobalna/chunk_manager) | Runtime chunk load/unload, LOD tiers, async generation, memory budget | Streaming infrastructure |
| [Retro Terrain](https://github.com/NickToony/gd-retroterrain) | Tile-based 3D terrain, terrain edge transitions, height variation, water | Wilderness/rural zones |
| [Spatial Gardener](https://github.com/dreadpon/godot_spatial_gardener) | Procedural vegetation placement, density controls, collision avoidance, LOD | Wilderness population |
| [GridMapLayer](https://github.com/Caaz/grid-map-layer) | 2D tile rules → 3D grid rendering, autotiling | Client-side tile rendering |
| [Block-based Procedural Map](https://godotengine.org/asset-library/asset/2698) | Perlin noise, seed determinism, chunk loading patterns | Terrain generation |
| [PathMesh3D](https://github.com/iiMidknightii/PathMesh3D) | Extrude 2D profiles along paths (pipes, cables, corridors) | Station interior detail |
| [DeformableMesh](https://github.com/cloudofoz/godot-deformablemesh) | Runtime mesh deformation for variety from shared assets | Environmental variation |
| [Poly Haven](https://polyhaven.com) | CC0 3D models, textures, HDRIs | Environment asset sourcing |
## Questions to resolve
1. **What data does the server send?** Tile palette + grid + object placement? Or higher-level "room type + seed" that the client expands?
2. **How are buildings generated?** Wave function collapse? L-systems? Grammar-based? Template stamping with variation?
3. **How does the client render tiles?** GridMapLayer autotiling? Direct mesh placement? Hybrid?
4. **How do z-levels work visually?** Transparency of upper floors? Cutaway? Layer toggle?
5. **What's the minimum viable generator?** What ships in v0.2 vs what's future?
6. **How do cultural constraints flow into generation?** Corridor heritage → architectural style → tile palette selection?
7. **How does the generator handle interiors vs exteriors?** Same pipeline or separate?
## This workshop does NOT produce
- Working code
- A locked technology choice
- Implementation tickets (those come after)
It produces an architecture document with the data flow, algorithm choices, and client-server boundary defined.