South town MVP: world sim, seasons, granary, contrast test + findings
Godot 4.7 C# world simulation per SPEC.md (with 2026-07-21 amendments). 15 NPCs, 5-state machine, demand-driven work, soul-imprint triad data model, seasons with winter frost, granary, need-based gift economy, selfish-soul contrast wiring, daily/per-villager/gift CSV logging. FINDINGS.md documents the four soak experiments: the dead paradise, the buffers winning, the emergent hungry gap, and the contrast test proving the four-town thesis (and that selfishness wins until the soul-consequence layer exists). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
using Godot;
|
||||
|
||||
namespace WorldSim;
|
||||
|
||||
/// <summary>
|
||||
/// World-state serialization (SPEC §9 amendment).
|
||||
/// "The world is the save file" — persistence is a first-class MVP system,
|
||||
/// not a Phase 4 afterthought. Baseline test: save → load → the simulation
|
||||
/// continues identically (round-trip).
|
||||
///
|
||||
/// TODO(Week 4): serialize World.Nodes, Npcs (position, state, inventory,
|
||||
/// fatigue, health, imprint triad), Buildings, and TotalTicks to JSON at
|
||||
/// user://worldsim_save.json; load must rebuild identical state.
|
||||
/// Design note carried from DESIGN.md: when object imprint histories arrive
|
||||
/// (Phase 3), old imprints compress into net values + a few significant
|
||||
/// preserved entries — "what the world remembers in detail vs. aggregate"
|
||||
/// is a design decision expressed as a data policy.
|
||||
/// </summary>
|
||||
public static class SaveSystem
|
||||
{
|
||||
public static string SavePath => "user://worldsim_save.json";
|
||||
|
||||
public static void Save(GameManager gm)
|
||||
{
|
||||
// TODO(Week 4): implement JSON round-trip.
|
||||
GD.Print("[SaveSystem] Save not yet implemented.");
|
||||
}
|
||||
|
||||
public static bool TryLoad(GameManager gm)
|
||||
{
|
||||
// TODO(Week 4): implement JSON round-trip.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user