TimeWalk Event Manager - TimeWalkOrg/Manhattan GitHub Wiki

TimeWalk Event System – Spec (v0.1)

User Stories / Scenarios

  • Battle of Long Island (August 29, 1776)
    • 4:00pm-8:30pm: cannon explosions heard, smoke and flames on Brooklyn Heights
    • 10:45pm-6:00am: fog covers the East River
    • 12:12pm-10:45pm: 6 British ships anchor in East River, retreat with fog
  • Crickets Chirping
    • Crickets begin chirping at sunset and stop at sunrise.
  • The Great Fire of 1776

Core Features

Central Event Manager

  • Single manager (Blueprint/C++) processes all registered events per frame.
  • Objects do not poll time-of-day independently.

Event Registration

  • Any object can register timed events (appearance, disappearance, actions).
  • Events attach Blueprint or Unreal Object handlers.

Scheduling

  • Events specify:
    • Absolute times (e.g., "Sept 28, 1776, 9:10 PM")
    • Variable times (e.g., "sunrise", "sunset", or dynamic offsets by season/date)
  • Central system resolves dynamic times each simulated day.

Actions

  • Supported: Spawn/despawn, move, trigger Blueprint logic, start audio/FX (e.g., fire, crickets).
  • Examples: Ship movement, ambient sound triggers, progressive fire outbreak.

Performance

  • Central manager evaluates all events per frame.
  • Only fires events relevant to the current time.
  • Optimized using sorted/timed lists or equivalent efficient structure.

Extensibility

  • Supports arbitrary triggers, conditional logic, and event sequences.

Debug/Control

  • Manual override and visualization for debugging, timeline scrubbing, and cinematic use.

Ready for more user stories, requirements, or clarifications.