Joining and moving within the same zone

JoinWorld completes from the Actor Join completion callback · same-zone Move updates the Zone Spot copy

Joining and moving within the same zone JoinWorld completes from the Actor Join completion callback · same-zone Move updates the Zone Spot copy JoinWorldReq create or get Player Actor; Defer() zone join, end handler EnterZoneReq(zone-nw) EnterZoneRes (join completion callback) JoinWorldRes(25,25) — sent from completion JoinWorldRes MoveMsg(28,27) MoveMsg; validate and update coordinates UpdatePositionMsg ZoneStateNotify source ZoneStateNotify ZoneStateNotify(28,27) Game Browser · Sequence participant Game Browser Gateway · Sequence participant Gateway Player Actor · Sequence participant Player Actor Zone Spot · Sequence participant Zone Spot

Self-actions folded into the following message (archify sequence rejects from==to)

  • • mermaid A->>A: Defer() zone join, end handler — the Actor registers the join with Defer() and ends the current handler normally before EnterZoneReq; the join result arrives in a completion callback.
  • • mermaid A->>A: validate and update coordinates — the Actor validates the move and updates coordinates before sending UpdatePositionMsg to the Zone Spot.

Normative meaning

  • • A zone join is a Framework Actor Join, so it does not complete synchronously inside a handler.
  • • A successful JoinWorldRes means target zone admission has completed — an implementation that produces the JoinWorldRes terminal from pre-admission state (such as a cache) is non-conforming.
  • • Starting state: Gateway, the two ZoneNodes, and Ops have completed readiness, and the browser has connected a STREAM to Gateway. JoinWorld starts at (25,25) in zone-nw.