Arena Engine Challenge Operator
| |
[new session] | |
| createChallenge(id, options) |
|--------------------------------->| factory creates instance
| |
[player A | |
joins] | restore(storedChallenge) |
|--------------------------------->| rehydrate from storage
| join("inv_A", "userA") |
|--------------------------------->| registers player
| serialize() |
|<---------------------------------| persist state
| |
[player B | |
joins] | restore(storedChallenge) |
|--------------------------------->| rehydrate from storage
| join("inv_B", "userB") |
|--------------------------------->| all joined -> onGameStart()
| | sends private data to players
| serialize() |
|<---------------------------------| persist state
| |
[player A | |
acts] | restore(storedChallenge) |
|--------------------------------->| rehydrate from storage
| message({ type: "guess", ... }) |
|--------------------------------->| scores guess, calls endGame()
| | broadcasts game_ended event
| serialize() |
|<---------------------------------| persist final state