feat(worldgen): varied system & planet naming — registries, numerals, landmark proper names - #681
Merged
Merged
Conversation
… landmark proper names (#678) Systems roll one of several naming registries (coined "Tharion" ~55%, catalog "HX-113" ~25%, two-part "Ember Veil" ~15%, rare archetype-flavored names for pirate/hub/desolate/belt space). Planets carry Roman-numeral designations ("Tharion II"; exoplanet letters in catalog systems), while landmark worlds — ringed, Lone Giant, Twin Worlds (shared stem), the Hub capital and the start planet (new EnsureStartPlanetProperName server hook, mirroring the ring guarantee) — get coined proper names flavored by their biome. Moons letter after their planet ("Tharion II-a") or coin their own names around landmarks; asteroid fields and wrecks are single coined words; a Hub's first station is a coined port ("Port Halvek"), all others stay "<planet> Station". Baked-in English ("Asteroid", "Wreck near") is gone from generated names — the space map now pairs wreck/asteroid names with the localized kind label. Names are galaxy-deduped and profanity-blocklisted (EN+DE substrings). Retroactive by design: names are display-only (ids key everything), so existing worlds keep every waypoint and wake up with better names. The naming draws come from their own rng stream (salt 700) with the legacy MakeName draws burned in place, so the body layout of every existing universe stays byte-identical — pinned by new GalaxyLayoutRegressionTests with SHA-256 layout fingerprints captured before the rework. closes #678 Co-Authored-By: Claude Fable 5 <[email protected]>
…erprint SystemX/Z go through MathF.Cos/Sin, whose last bits differ between the Windows capture machine and Linux CI libm — the fingerprints failed on CI while passing locally. Positions derive from hashes, not from the body rng stream this test guards, so dropping them loses no signal. Hashes recaptured from the reduced field set (id/kind/type/parent/size/rings/period), which the full pre-rework capture already proved unchanged. Co-Authored-By: Claude Fable 5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
closes #678
What
Replaces the single formulaic naming pattern (
Veyra-42/Veyra-42 1) with a varied, deterministic scheme — retroactive for all worlds:Tharion, ~55 %), catalog designations (HX-113, ~25 %), two-part region names (Ember Veil,Korveth's Reach, ~15 %), and rare archetype-flavored names (pirate space sounds menacing, hubs busy, ~5 %).Tharion II), exoplanet letters in catalog systems (HX-113 b) — except landmark worlds, which get coined proper names flavored by their biome (ice sounds cold, lava harsh): ringed planets, the Lone Giant, Twin Worlds (one stem, two endings), the Hub capital, and the start planet (newEnsureStartPlanetProperNameserver hook, mirroring the ring guarantee).Tharion II-a) or get short coined names around landmark worlds.Asteroid,Wreck near) is gone; the space map pairs their names with the existing localized kind labels (ui.map.kind_*, DE+EN already present).Port Halvek); all others stay attributive (<planet> Station).Safety
MakeNamedraws are burned in place so the body rng sequence is untouched. NewGalaxyLayoutRegressionTestspins SHA-256 layout fingerprints (id/kind/type/parent/size/rings/orbit/position for fixed seeds) captured before the rework — they pass unchanged after it.Verification
dotnet format --verify-no-changesclean; clean rebuild-warnaserror: 0 warnings.Client.dllverified.🤖 Generated with Claude Code