Currently, pressing the matchmaking cancel button triggers the following function.
await MatchmakerService.Instance.DeleteTicketAsync(currentTicketId);
There is a slight issue.
If the timing is bad, a match can still be made even if the ticket has been deleted.
And it is not possible to detect that a match has been made.
This can lead to an unpleasant experience for other players who have joined the game.
Yes, we suggest you enable a timeout on the server side for players to connect and to backfill the players who don’t end up connecting to the server.
See that documentation Backfill
The backfilling logic is also completely managed with the new Multiplayer Service SDK when using sessions.
See the documentation: Working with the Multiplayer Services SDK
and the backfilling specific section Multiplay Hosting support
1 Like
I don’t want to use backfill because I’ve implemented a separate reconnection mechanism and initial setup based on matchmaking results.
If a match is made, I want players to join the game (via StartClient) even if the ticket has been deleted.
I want players to decide whether to stop or continue the game after joining.
I use
await MatchmakerService.Instance.DeleteTicketAsync(currentTicketId);
If a match is made while the function is running, I would like it to fail.
I understand but unfortunately that is not possible currently. The matchmaking process is completely asynchronous from the management of ticket.
But we will take your feedback in consideration as to be able to know if a ticket has being matched and is waiting for a server allocation