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:
@@ -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.
|
||||
Reference in New Issue
Block a user