epic: ecology / harvesting / natural nodes — server lifecycle + spawner #250

Open
opened 2026-08-02 01:49:41 +02:00 by panda · 0 comments
Collaborator

Umbrella for the server-side ecology / harvesting system (RimWorld-style): natural props spawn by biome, grow through per-species lifecycles, are harvested by skill (server-paced), persist, and appear without manual placement.

Design (recognition + slice):

  • docs/superpowers/specs/2026-08-02-ecology-harvest-audit.md (audit)
  • docs/superpowers/specs/2026-08-02-ecology-slice-design.md (slice design + full Invariants Check)

Resolved decisions: baseline-deterministic + delta persistence · lazy time-derived growth (no scheduler) · species = data (content/ecology.txt, not C# subclasses) · two-category slice (pine+rock) proving variable per-species lifecycles · Chebyshev spacing · 1x1 (multi-cell deferred).

Roadmap:

  • Vertical slice (pine Lumberjacking + rock Mining + minimal spawner) — first sub-issue
  • Extend data-driven to more biomes/species
  • Multi-cell footprint (offset mask) + the redwood
  • Foraging (bushes) / Fishing
  • Per-biome density tuning + suppression zones (roads/player areas)
  • Migrate the world's baked interactive statics -> nodes
  • Map-Editor density preview + regenerate-chunk debug tool

Reject (vs ModernUO): global serial-reference linker; always-loaded per-tile spawners. Adopt: data-driven HarvestDefinition/Spawner, chunk-activated deterministic baseline.

Umbrella for the **server-side ecology / harvesting** system (RimWorld-style): natural props spawn by biome, grow through per-species lifecycles, are harvested by skill (server-paced), persist, and appear **without manual placement**. **Design (recognition + slice):** - `docs/superpowers/specs/2026-08-02-ecology-harvest-audit.md` (audit) - `docs/superpowers/specs/2026-08-02-ecology-slice-design.md` (slice design + full Invariants Check) **Resolved decisions:** baseline-deterministic + delta persistence · lazy time-derived growth (no scheduler) · species = data (`content/ecology.txt`, not C# subclasses) · two-category slice (pine+rock) proving variable per-species lifecycles · Chebyshev spacing · 1x1 (multi-cell deferred). **Roadmap:** - [ ] Vertical slice (pine Lumberjacking + rock Mining + minimal spawner) — first sub-issue - [ ] Extend data-driven to more biomes/species - [ ] Multi-cell footprint (offset mask) + the redwood - [ ] `Foraging` (bushes) / `Fishing` - [ ] Per-biome density tuning + suppression zones (roads/player areas) - [ ] Migrate the world's baked interactive statics -> nodes - [ ] Map-Editor density preview + regenerate-chunk debug tool **Reject (vs ModernUO):** global serial-reference linker; always-loaded per-tile spawners. **Adopt:** data-driven HarvestDefinition/Spawner, chunk-activated deterministic baseline.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
marco/IsoMmo#250
No description provided.