Skip to content

feat(worldgen): terrain wonders — scars, continents, overhangs & the tunnel carver - #710

Merged
marceld23 merged 3 commits into
mainfrom
terrain-wonders
Aug 3, 2026
Merged

feat(worldgen): terrain wonders — scars, continents, overhangs & the tunnel carver#710
marceld23 merged 3 commits into
mainfrom
terrain-wonders

Conversation

@marceld23

Copy link
Copy Markdown
Owner

Three worldgen waves + continents, per the terrain-wonders plan. Waves 1/3 are a one-time reshape of existing worlds (accepted, like v0.9.0 and v2026.7.21); continents are gated to newly created worlds.

Wave 1 — signature scars

  • World-girdling mega-rift (~6 % of eligible worlds): meandering great-circle canyon, 100–200 deep, fjord-flooded floors, rim waterfalls.
  • Complex craters: per-body central peaks + terraced walls, aligned crater chains, trig-free ejecta rays.
  • Terrain grain: per-world direction for dune seas + mountain chains (integer stretch + period-normalised shear — the latitude period is not exactly C/2, a naive shear tears the torus seam).
  • Exotic accents: hex basalt column fields, travertine spring terraces with deck pools, penitente blade-ice fields, Voronoi salt polygons.
  • Ring calderas + whole-planet escarpments; style×archetype hybrid (styled worlds hand a rolled 20–40 % of their surface to the regional blend).

Continents (new worlds only)

  • WorldDescription.TerrainContinents (default true for new configs, false on load — the SystemVariance/AsteroidBelts pattern): large planets (circ ≥ 6000, ~50 % roll, ocean type excluded, lava/ashen → basalt continents in lava oceans) get a domain-warped bimodal platform/basin regime; the sea percentile targets the basin share. Flag plumbed via JoinAccepted to the client preview bakes; CLI escape continents=off.

Wave 2 — overhangs

  • Multi-band columns (GetExtraBands, classic sky-island fill bit-preserved) → natural arches, sea stacks, hoodoos, multi-tier skylands with stalactites + endless rim waterfalls, cenotes with overhanging lips + pools, underground mega-caverns with lakes.

Wave 3 — tunnel carver

  • Deterministic worm polylines (capsule y-spans per column): noodle tunnels, wider lava tubes on volcano worlds, skylight shafts + real cave mouths, waterfall plunge-pool incision, crevasse fields on frozen worlds.

Visibility tuning (playtest round 1 feedback)

The start world ("varied", fixed circumference 6064) could never roll continents at the original 8000 gate and carried no big landmark family — gate lowered to 6000, varied added to the butte/arch gate, wonder densities roughly doubled, cenotes enlarged.

Tests

  • TerrainWondersTests (21): seam wrap, shape asserts, gating, determinism, chunk smoke.
  • Full fast tier 1398 green; Slow tier 52 green. Two legacy tests adapted (lava-river scan anchored to the channel band; aggressor duel anchored to the surface).

closes #698
closes #699
closes #700
closes #701
closes #702
closes #703
closes #704
closes #705
closes #706
closes #707
closes #708
closes #709

🤖 Generated with Claude Code

marceld23 and others added 3 commits August 3, 2026 22:52
…tunnel carver (#698-#709)

Wave 1 (one-time reshape, accepted): #698 world-girdling mega-rift; #699 complex
craters (central peaks, terraces, chains, ejecta rays); #700 per-world terrain
grain (oriented dune seas + mountain chains, period-normalised torus-safe shear);
#701 hex basalt fields, travertine deck pools, penitentes, salt polygons; #702
ring calderas + whole-planet escarpments; #703 style/archetype hybrid regions.

Continents #704 (NEW WORLDS ONLY via WorldDescription.TerrainContinents, default
true for new configs): bimodal platform/basin offset on large planets (circ >=
8000, ~50% roll, ocean type excluded, basalt continents in lava oceans); sea
percentile targets the basin share; flag plumbed through JoinAccepted to the
client preview bakes.

Wave 2: #705 multi-band columns (GetExtraBands, classic sky-island fill
bit-preserved); #706 natural arches, sea stacks, hoodoos; #707 multi-tier
skylands with stalactites + endless rim waterfalls, cenotes with overhanging
lips + pools, underground mega-caverns with lakes.

Wave 3: #708 deterministic tunnel carver (worm polylines, capsule y-spans);
#709 lava tubes, skylight shafts + cave mouths, waterfall plunge-pool incision,
crevasse fields.

Tests: TerrainWondersTests (21) — seam wrap, shape asserts, gating, determinism;
LavaWorld_CarvesLavaRivers now scans the channel band (entrenched channels).
Local branch only — no PR (user decision).

Co-Authored-By: Claude Fable 5 <[email protected]>
…ace spot

The terrain-wonders reshape moved the ground at the world origin, so the
hardcoded Y-64 duel column could bury the prey in rock — no line of aggro,
the chase never started and the Slow-tier leash test failed.

Co-Authored-By: Claude Fable 5 <[email protected]>
…nser wonders

Playtest feedback (2 fresh worlds, nothing new visible): the start world "varied"
hashes to circumference 6064 — below the 8000 continent gate — so no player ever
saw a continent without flying to a big planet, and the wonder landmarks were
tuned so sparse a start-size world carried almost none.

- Continent gate 8000 -> 6000 (moons at 2500-4000 stay out): ~50% of new saves
  now START on a continental world.
- varied joins the table-mountain/arch key gate — the start world type finally
  carries a big landmark family.
- Density: calderas cell 3600->2400 chance .08->.20, travertine 1400->1000
  .30->.45, cenotes 1100->800 .25->.45 + radius 9..19.5, sea stacks .12->.25,
  arches .30->.45, penitentes .35->.50, basalt fields .25->.40, hoodoo regions
  .58->.55, mega-rift ~3%->~6%, escarpment ~4%->~5.5%, tunnel skylights
  .12->.22.
- Tests: size-gate case moved to a moon-sized world; cenote rim scan covers the
  bigger diameter. Fast tier 1398 green.

Co-Authored-By: Claude Fable 5 <[email protected]>
@marceld23
marceld23 merged commit 2c1fdf7 into main Aug 3, 2026
12 checks passed
@marceld23
marceld23 deleted the terrain-wonders branch August 3, 2026 22:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment