Document the multi-culture-per-continent seeding change in CLAUDE.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TMfyZv91tonDnPJqbaTVJE
This commit is contained in:
parent
cd268167b0
commit
78e58171e5
29
CLAUDE.md
29
CLAUDE.md
@ -479,6 +479,28 @@ on the Live World clock). **Steps 1–7 of the roadmap are done (plus a derived
|
||||
differs from the capital's own name. Touches `src/sim` (`PlanetCulture.cpp`, `PlanetCiv.cpp`) as
|
||||
well as `src/render` — `Nation.name`/`cultureId` are derived/not saved (per the Territory & Culture
|
||||
entries above), so no save-format version bump.
|
||||
- **Multiple cultures per continent (was always exactly one)** *(done — see `Planet::seedCultures()`,
|
||||
`src/sim/PlanetCulture.cpp`)* — a continent seeding only ever one culture at the dawn, combined with
|
||||
the existing border-conversion/backfill dynamics, eroded into one super-dominant culture covering
|
||||
the whole world over a long run. `seedCultures()` now splits each continent into
|
||||
**1..`cultDawnMaxPerContinent`** initial peoples via deterministic farthest-point seeding (each
|
||||
settlement joins its nearest seed point — geographically coherent, Voronoi-like regions, not a
|
||||
checkerboard); the target count scales with the continent's settlement population via
|
||||
`cultDawnSettlementsPerCulture` (both new `planet.cfg` knobs). Per-culture ethos/faith/name hashes
|
||||
now fold in `Culture.id` so same-continent cultures (sharing `regionId`/`bank`) get distinct
|
||||
identities instead of colliding. This surfaced a real, previously-latent **ordering bug**:
|
||||
`computeTerritory()` (realm/vassalage grouping, which prefers matching by actual culture and only
|
||||
falls back to same-continent when culture data doesn't exist yet) ran *before*
|
||||
`computeCultures()` populated per-settlement culture — harmless when one culture ≡ one continent,
|
||||
but would leave temporarily multi-cultural realms now. Fixed at the root: `computeCultures()` split
|
||||
into `refreshSettlementCultures()` (the settlement-level seed/backfill/tally slice, no dependency on
|
||||
`nations`) which `computeTerritory()` now calls on itself before grouping — every caller (the viewer
|
||||
and the dozens of existing test call sites) gets correct behaviour automatically. `test_culture.cpp`/
|
||||
`test_cultevo.cpp` updated to assert the new bounded invariant (a continent has 1..N cultures; a
|
||||
single culture never itself spans two continents — still enforced) instead of exact equality.
|
||||
Verified live: one continent now shows six distinct peoples instead of a single dominant culture,
|
||||
with realms still correctly mono-cultural. `src/sim` + `src/render`; cultures are derived/not saved,
|
||||
so no save-format version bump.
|
||||
|
||||
## Current state
|
||||
|
||||
@ -1341,7 +1363,12 @@ triangles (plates are fixed in phase 1).
|
||||
lower = easier colonial breakaways), `cultSchismMinCluster` (2, distant settlements needed to break away
|
||||
together), `cultSchismRate` (0.08, per-year chance per qualifying culture). All rates 0 = the static
|
||||
pre-Step-8 world. Runs in the yearly `stepCulture` tick (pure hashes, no RNG); the culture list is
|
||||
capped at 64 peoples.
|
||||
capped at 64 peoples. Dawn seeding (`Planet::seedCultures()`, before Step 8 evolution runs at all):
|
||||
`cultDawnSettlementsPerCulture` (5, target dawn settlements per initial culture on a continent —
|
||||
lower = more initial peoples) and `cultDawnMaxPerContinent` (6, hard cap on how many initial peoples
|
||||
one continent can seed) — raise `cultDawnSettlementsPerCulture` or lower `cultDawnMaxPerContinent`
|
||||
for a world that starts more culturally uniform (closer to the old always-one-per-continent
|
||||
behaviour), lower/raise them the other way for more initial diversity.
|
||||
- `upliftGain` (PlanetConfig) — m/tick per unit convergence stress; main
|
||||
knob for how fast/high relief builds.
|
||||
- `relax` (PlanetConfig) — isostatic relaxation toward base elevation. Peaks
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user