Skip to content

feat: zone snapshots, broadcast throttling, persistent worlds#56

Merged
Taure merged 3 commits intomainfrom
fix/world-server-json-and-persistence
Apr 6, 2026
Merged

feat: zone snapshots, broadcast throttling, persistent worlds#56
Taure merged 3 commits intomainfrom
fix/world-server-json-and-persistence

Conversation

@Taure
Copy link
Copy Markdown
Contributor

@Taure Taure commented Apr 5, 2026

Summary

  • Zone sends immediate entity snapshot to new subscribers (late-joining clients see existing entities)
  • Broadcast deltas every Nth tick (configurable broadcast_interval, default 3) to reduce WS traffic
  • persistent config flag prevents world from finishing when empty
  • Pass persistent through game_modes:world_config/1
  • Convert phase start_condition tuples to maps for json:encode safety
  • Ignore asobi_message in world_server running state (zone snapshots in tests)

Test plan

  • 170 eunit tests pass
  • Zone snapshot and broadcast throttle tests updated

Taure added 3 commits April 6, 2026 01:23
- Zone sends immediate entity snapshot to new subscribers so late-joining
  clients see existing entities
- Broadcast deltas every Nth tick (configurable broadcast_interval,
  default 3) to reduce WebSocket traffic
- Add persistent flag to world config — prevents world from finishing
  when all players leave
- Pass persistent through game_modes world_config
- Convert phase start_condition tuples to maps for JSON safety
- Ignore asobi_message in world_server running state (zone snapshots
  delivered to self in tests)
@Taure Taure merged commit 16b83c1 into main Apr 6, 2026
15 checks passed
@Taure Taure deleted the fix/world-server-json-and-persistence branch April 6, 2026 05:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant