eb4b2fdd19b7582fc8dab6aed0c725ee695c41b2
The map is now a torus - walk off any edge and reappear on the opposite side, no edges or corners. A new Toroidal helper carries all wrap-aware distance/direction/movement math, and every position comparison in the sim routes through it: soul pressure, node + structure sensing, gift/teacher/ neighbor scans, bonding, movement, the spatial grids (NPC and node cell index both wrap their bucket lookups at the seam), and town centroid (averaged in anchor-relative deltas, since averaging raw coordinates across the seam is meaningless). Towns re-laid as a 2x2 even grid on the torus (quarter/three-quarter points, 320 & 960 on a 1280 world): every town sits exactly 640 units from each of its two axis-neighbours in all directions, wrap included - no more edge-boxed North/South that could only forage inward. World grew 1152 -> 1280 with resources scaled to area. Verified over a 240-day soak: all four towns alive and balanced (pop 23-25), population stable ~96, 119 bonds (27 cross-town), cultures still diverge, and wrapped distances correctly cap at the torus half-diagonal (no false across-seam blowups). 183s headless. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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)
- World gen + NPC base + state machine ← scaffold is here
- Building system
- Trade + soul-imprint-weighted decisions
- Testing protocol + save round-trip + debug UI
Description
Languages
C#
100%