Closed marc-n-dream closed 11 months ago
@laurentndream FYI
Switched PR to draft because I need to extract it from Custom Device State into the set_ path that also involves platform.
@andrin-n-dream Thank you for the question.
The feature is not related to players leaving an ongoing game round but new players joining a game that is currently in a stage where new players can not join without negatively impacting the experience for those in the game round, for example in an ongoing race in Go Kart Go or a ongoing guessing round in Trivia. It ensures that newly joining players have a consistent experience if the game wants to allow newly joining players only during certain times of the gameplay.
It is an optional feature as not all games need it. Rope raid for example can fluently integrate new players in the middle of game round, so a game Rope Raid would likely not make use of this feature.
As for players that were silenced during a game that disconnect: If a silenced player disconnects before players are unsilenced, their OnConnect and all device state updates queued while silenced will be discarded as well. Other players and the screen are not aware of this as they were not yet informed of the silenced player connecting.
This implementation covers the airconsole-api aspects of player silencing as per Create a fix for game connect & disconnect with a library (1/3)
To verify the network driven aspects, the Pong game example was taken and expanded to support this stage of silencing with the necessary functionality to replace them as part of the second stage through the controller.
Tthis merge goes onto the 1.9.0 alpha release branch.
Following up on this will be:
to run the tests, visit airconsole-1.9.0-spec.html
Related to the full release of airconsole-api 1.9.0