Dev notes ·

Step 17a: save/load system, title screen, game menu

Step 17 in the plan is "Polydegmon + save system". Split: 17a = saves (done now), 17b = boss framework + Polydegmon.

Built (Unity project):

  • Runtime/Save/:
    • SaveData: plain ids and numbers, versioned JSON.
    • SaveFiles: one slot, written atomically (temp file, then swap), keeps a .bak, falls back to the backup if the save is corrupt.
    • ContentCatalog: every item and affix by id.
    • SaveMapping: pure, tested.
    • PlayerSaveSlot: capture, apply and autosave.
    • RunState: New Game / Continue / Save and quit to title. Resets flags, waypoints, the portal and the loot guarantee between runs.
  • Saved:
    • level and XP
    • drachmae
    • learned skill nodes and ranks (restored in passes so prerequisites work out in any order)
    • bag (by cell), worn gear and the stash, including affix rolls
    • quests: state, step, count and the catch-up history
    • world flags
    • discovered waypoints
    • the first-Blessed loot guarantee
    • time played
  • Autosave: every 15 s, on scene arrival, on quest progress, on level-up, and on quit. Only runs that start from the title screen save; playing a scene straight from the editor is a test run and never touches the save.
  • Loading always arrives in Eleusis at full health (ARPG standard).
  • Title screen (SCN_Title, now first in Build Settings): Continue (class · level · chapter · time played), New game (asks before replacing a save), Quit.
  • Game menu (Esc), WoW-style: Esc closes a window first, then drops the target, then opens the menu. The menu pauses the game and offers Resume / Save / Save and quit to title / Save and quit the game.
  • UIWindows registry so Esc knows whether a window is open. Gameplay input is blocked while paused (UIInputBlock.Paused).
  • Editor menus:
    • Embers → Setup → Create Title Screen
    • Embers → Data → Refresh Content Catalog
    • Embers → Saves → Open Save Folder / Delete Save
  • 11 new EditMode tests (SaveTests). Compiled clean.
  • Tagline on the title screen: "Nothing is ruined, only unattended." (the art law). The user should confirm it.

Next: 17b, the boss framework and Polydegmon (see boss-polydegmon.md).

All dev notes