During a concept discussion for a multiplayer game, the topic of matchmaking came up. Our goal from the start of the project was to architect the game so it relied 100% on Game Center and did not require its own server to coordinate matches or gameplay. Unfortunately, Game Center’s black-box matchmaking logic was a huge issue for us and we ended up having to move forward with a hybrid. However, I’d like to point out how the addition of a simple Game Center feature could greatly improve its usefulness to developers.
Realtime multiplayer games are only fun if you have other people to play with. It’s not fun to sit and wait for players, nor is it enjoyable to go to all the trouble to establish a match, only to have a player drop and end it. In a mobile game, where players are likely firing up the game for a quick fix while standing in line, the matchmaking process needs to be fast and seamless. Furthermore, players are likely to drop out, leaving the game in an unplayable state.
Currently, Game Center focuses on creating rigid matches which start and end in a very deliberate manner. There is no concept of filling seats in existing games. Therefore every game and player combo needs to be join together at the start, and if a single user abandons a game that requires a minimum amount of players the game is ended.