721acbd1aa
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>
35 lines
1.2 KiB
C#
35 lines
1.2 KiB
C#
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;
|
|
}
|
|
}
|