What is a responsible time to connect to a Game Center match?

Based on the game options within my game, which are selected by the player, there can be multiple types of matches the player could join which have the required "number of players" but also share the same "player group number".


I am calling "findMatch()" for each different match type one by one, however, I would like to know what a reasonable time would be to wait for Game Center to determine if there is an actual match in which the player can join. When there is not a match available for the game type I am currently searching for, then I cancel the match request and move on to search for the next type of match, via a new findMatch() call and so on.


Would waiting 10 seconds for Game Center to determine if a match exists be reasonable before starting a new "findMatch( )" request in Game Center?

Accepted Reply

1) If the host is requesting a 3-player game then why would it take the third player (non-host player) a much longer time to join the game than it did for the second player (non-host player) to join?


It may take the second player a long long time if there is no host advertising for players. It may take the third player the same amount of time if the third is looking when there is no host advertising for players. As soon as a host appears both the second and third will find a match quickly - but a fourth or a fifth will still await the next host to appear.


2) If the host is requesting a 4-player game then why would the third player (non-host player) have to wait for the fourth player to be available before the third player joins?


They wouldn't have to wait - but the match won't start until all are found.

Replies

That depends on the user. Consider who is playing - all your users will, at some time, ask to join a match. In a two player game, the first such user request will wait until there is a second player. The second such user request will be matched quickly. The third such user request will wait until there is a fourth. So setting a time limit for the second or fourth is reasonable. Setting a time limit for the first or third ... depends on the user.

My game will have a host and a non-host. The host is the player who initiates the game with the game settings defined. The non-host is simply a player who indicates they are searching for a specific game of certain setting types.


The host player (ie: first player) will call findMatch() and there will never be any timer set on the host player as that player will wait forever until all other required players join.


The non-host player will call findMatch() and potentially have a timer set on them to cycle through finding other game types that match their requested game criteria, if the current game type cannot be joined in a certain amount of time


Questions

1) If the host is requesting a 3-player game then why would it take the third player (non-host player) a much longer time to join the game than it did for the second player (non-host player) to join?


2) If the host is requesting a 4-player game then why would the third player (non-host player) have to wait for the fourth player to be available before the third player joins?

1) If the host is requesting a 3-player game then why would it take the third player (non-host player) a much longer time to join the game than it did for the second player (non-host player) to join?


It may take the second player a long long time if there is no host advertising for players. It may take the third player the same amount of time if the third is looking when there is no host advertising for players. As soon as a host appears both the second and third will find a match quickly - but a fourth or a fifth will still await the next host to appear.


2) If the host is requesting a 4-player game then why would the third player (non-host player) have to wait for the fourth player to be available before the third player joins?


They wouldn't have to wait - but the match won't start until all are found.

ok, thanks a lot for the information. That clears it up for me. Much appreciated