Steamforge Time - wwestlake/Steamforge GitHub Wiki

Steamforge World Time System – Requirements Document

1. Core Time Framework

  • Base unit: Ticks driven by real-time DeltaSeconds.
  • Time units: Seconds, Minutes, Hours, Days, Seasons, Years.
  • Custom calendar:
    • 7-day week with named days (e.g., Sparkday).
    • 12 custom months (e.g., Kindlemoon).
    • Starting Year: 731 FT (Forge Time).
  • Time scaling: Adjustable for gameplay tuning.

2. Day/Night Cycle

  • Defined time slots:
    • Dawn
    • Sunrise
    • Morning
    • Noon
    • Afternoon
    • Sunset
    • Dusk
    • Night
  • Sync Visual + Audio:
    • Lighting changes
    • Ambient sounds (crickets, birdsong, wind)
  • Ritual windows:
    • Example: Sunset Prayers, Midnight Summonings

3. Seasons

  • Four Seasons:
    • Spring
    • Summer
    • Autumn
    • Winter
  • Seasonal Effects:
    • Weather patterns
    • Resource availability (e.g., berries, snow)
    • Wildlife behavior
    • Farming/gathering logic

4. Lore-Tied Events

  • Stored in DataTables:
    • FTimeMarkerEvent
    • FTimeEventMetadata
  • Event Types:
    • Natural: Sunrise, Sunset
    • Astral: Solstices, Equinoxes, Moon Phases (optional)
    • Cultural: Founding Day, War Remembrance, Seasonal Festivals
  • Metadata Includes:
    • Display name, tags, description
    • Optional: Actor to spawn, color, criticality flags
  • Event Triggers:
    • Can spawn actors
    • Trigger audio/visual effects
    • Change environmental state

5. Event Dispatch System

  • Dispatcher Component:
    • Blueprint or C++
    • Interfaces via OnTimeEventTriggered
  • Loose Coupling:
    • Uses interface BPI_TimeEventListener
  • Event Resolution:
    • Metadata pulled from tables
  • Support for:
    • One-off Events
    • Daily/Weekly Recurring Events

6. Developer/Designer Tools

  • Debug UI:
    • Time scrubber: Pause / Fast-forward / Jump-to-Time
  • Calendar View (Editor Tool):
    • Displays current time
    • Highlights upcoming events
    • Lore calendar: holy days, rare celestial alignments
  • Hot-Reload Support:
    • Update event tables without restart

This time system supports narrative design, player immersion, and dynamic world simulation within the Steamforge engine architecture.