mmcghen f4e55feff7 Fix the southward migration: explore direction had a hardcoded +Y bias
Root cause of towns (East worst) drifting south: when an exploring soul was
at its anchor with no outward vector, the fallback direction was
Vector2(PersonalityModifier, 1 - Abs(PersonalityModifier)) - and with
PersonalityModifier tiny (+-0.2) that Y-component was always ~+0.9. +Y is
south, so every town's explorers got shoved into the southern corner. East
showed it worst (selfish souls strip resources fastest, so they explore
most). Now the at-anchor direction comes from the soul's identity hash,
spread around the full compass.

Supporting fixes: exploration is bounded to a ~140-unit home range (forage
out and back, don't march to the horizon); private homesteads clamp to
within 120 units of the town anchor (selfish souls sprawl on their OWN
land, not into a neighbor's). Result: every East home now founds near the
east anchor (x~870 vs the anchor's 962), none in South's territory, and
East is the healthiest town.

Also widened the map view (880 -> 1060px) to use more of the window - the
world grew to 1152 but the render was a fixed square, so it looked no bigger.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 22:29:50 -04:00

Soul World Sim — MVP

Godot 4.7 (.NET / C#) world simulation for the soul reincarnation game.

  • Design rationale: docs/DESIGN.md (the why)
  • Production spec: docs/SPEC.md (the what, with 2026-07-21 amendments)
  • Experiment log: FINDINGS.md (the four soak runs and what they proved)
  • Mechanics reference: the Unity POC at H:\Projects\Game\Game (separate repo; soul/debris/imprint systems, proven Feb 2026)

MVP goal

Prove constrained emergence + soul philosophy with one town: 15 nature-souled NPCs dropped into a 256×256 world with no scripted layout. Success is behavioral (SPEC §11): no over-harvesting, voluntary cooperation, an organic community cluster, stable resource bands — then the contrast test (3 selfish NPCs dropped in) to prove weights alone change the society.

Structure

File Role
scripts/GameManager.cs main loop, tick system (1 tick = 1 in-game minute), day/night
scripts/World.cs 256×256 grid, resource nodes, sustainable harvest, daily regen
scripts/NPC.cs NPC data + 5-state machine (gather/build/trade/rest/socialize)
scripts/SoulProfile.cs soul types, behavior weights, imprint triad (SPEC §2 amendment)
scripts/Building.cs modular, physically-sequential, multi-NPC construction
scripts/TradeSystem.cs generous no-currency exchange, imprint consequences
scripts/Visualization.cs top-down debug view (designer sees all meters; the player never will)
scripts/SaveSystem.cs world-state JSON round-trip (persistence is first-class)

Build weeks (SPEC §12)

  1. World gen + NPC base + state machine ← scaffold is here
  2. Building system
  3. Trade + soul-imprint-weighted decisions
  4. Testing protocol + save round-trip + debug UI
S
Description
No description provided
Readme 1.6 MiB
Languages
C# 100%