Room creation and authentication / entry

the Spot manager issues RoomId and chooses the owner — the ingress doesn't change the owner

Room creation and authentication / entry the Spot manager issues RoomId and chooses the owner — the ingress doesn't change the owner CreateGameHttpReq create Room Spot (TicTacToeGameCreateReq) create and initialize Room Spot accept creation creation result (RoomId) CreateGameHttpRes(RoomId, RequiredLevel, ...) AuthenticateReq via tictactoe.api → AuthenticatePlayerReq AuthenticatePlayerRes(PlayerInfo) GetOrCreate(PlayerActorCreateReq) current ActorRef AuthenticateRes(PlayerInfo) JoinGameMsg(RoomId) dispatch JoinGameMsg to bound Actor TicTacToeGameJoinReq(PlayerInfo) TicTacToeGameJoinRes push JoinGameNotify to current session JoinGameNotify PlayerJoinedNotify to existing member Client · Sequence participant Client Api A/B · Sequence participant Api A/B Spot Manager · Sequence participant Spot Manager Play Session · Sequence participant Play Session Player Actor · Sequence participant Player Actor Room Spot · Sequence participant Room Spot

Participants and ingress note

  • • Api A/B = Api A or Api B; Spot Manager = Framework Spot Manager; Play Session = Play A or Play B Session.
  • • The host uses Play A; the guest and observer use Play B. (mermaid Note over Client,Play)
  • • CreateGameHttpRes carries RoomId, RequiredLevel, PlayEndpoints, PlayNodes, and GameName.

Create, authenticate, join

  • • The Spot manager issues the RoomId and chooses the owner; the owner doesn't change based on the Play ingress the client uses.
  • • P selects one Api through tictactoe.api and sends AuthenticatePlayerReq; then GetOrCreate with PlayerActorCreateReq(PlayerInfo).
  • • R checks Level >= RequiredLevel (mermaid self-step) before replying TicTacToeGameJoinRes.
  • • A join failure is reported by JoinGameFailedNotify on the current session; JoinGameMsg or PlaceMarkReq before authentication ends in an error.