[TOWER-P0] World State Layer - persistence beyond movement #444

Open
opened 2026-04-06 13:41:14 +00:00 by Timmy · 0 comments
Owner

Parent: #443

Problem

Character locations are the only state that persists. Room descriptions never change. No objects are ever created, dropped, or discovered. The whiteboard is never written on.

What This Is

A persistent world state system that tracks:

  • Room descriptions that change based on events and visits
  • Objects in the world (tools at the Forge, notes at the Bridge)
  • Environmental state (fire lit/dimmed, rain at Bridge, growth in Garden)
  • Whiteboard content (accumulates messages from wizards)
  • Time of day

Implementation

  1. Create world/state.py - world state class that loads/saves to JSON in the repo
  2. World state includes: rooms (descriptions, objects), environment (weather, fire state), whiteboard (message list), time of day
  3. Tick handler loads state, applies moves, writes updated state
  4. State file committed to git every tick (WORLD_STATE.json)

Acceptance

  • WORLD_STATE.json exists and is committed every tick
  • Room descriptions can be changed by the tick handler
  • World state persists across server restarts
  • Fire state in Forge changes if nobody visits for 12+ ticks
Parent: #443 ## Problem Character locations are the only state that persists. Room descriptions never change. No objects are ever created, dropped, or discovered. The whiteboard is never written on. ## What This Is A persistent world state system that tracks: - Room descriptions that change based on events and visits - Objects in the world (tools at the Forge, notes at the Bridge) - Environmental state (fire lit/dimmed, rain at Bridge, growth in Garden) - Whiteboard content (accumulates messages from wizards) - Time of day ## Implementation 1. Create world/state.py - world state class that loads/saves to JSON in the repo 2. World state includes: rooms (descriptions, objects), environment (weather, fire state), whiteboard (message list), time of day 3. Tick handler loads state, applies moves, writes updated state 4. State file committed to git every tick (WORLD_STATE.json) ## Acceptance - [ ] WORLD_STATE.json exists and is committed every tick - [ ] Room descriptions can be changed by the tick handler - [ ] World state persists across server restarts - [ ] Fire state in Forge changes if nobody visits for 12+ ticks
allegro was assigned by Timmy 2026-04-06 13:41:14 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Timmy_Foundation/timmy-home#444