Game Center Matchmaking notes

Published December 29, 2010
Advertisement
Here's some thoughts I've been having over implementing Apple Game Center's matchmaking feature. I will clean up this post over time:

  • GC Matchmaking uses a 'Match' system, where players join together before the match starts. This is not unlike many 90s computer games, including Doom, and even Spectre.


  • GC Matchmaking uses a peer-to-peer system. My code does not, so one of the devices in the match must be the server. If the server leaves the game, then the rest of the players will leave the match as well, returning to the menu.


    • When GC matches up players, there is no distinction about which device should be the 'server'. This would have to be decided after they connect together.


    • If I still use the Host/Join buttons, where clicking "Host" sets a flag on that device that it wants to be the server, then there is still the possibility that two 'Hosts' will be matched together by the Game Center service. Only one will be the host, so a user may find that they wanted to host a CTF game, but are now playing Deathmatch (hosted by someone else)


    • Using 'player attributes' I might be able to write a quick hack identifying one player as the game host, but there is no guarantee this will work.



  • Reason I ** don't ** want to use it: There is no way to know how much latency is involved with any player that joins. GC Matchmaking may create a lot of games that have very high latency.


  • Reason I * do * want to use it: GC Matchmaking provides an easy way to invite friends into a game. If they're not in the same room, they'd have to contact each other out-of-game to specify who is hosting, or what server they should connect to.


  • GC provides an API function to show how many players are (from what I can tell so far) are waiting to play. Apple's documentation reads "A query allows your application to see how many players have recently searched for a match, across all player groups." In this case I can display a number showing how many players were interested in playing during some past time interval, but there is still no guarantee you will be playing with anyone at all if you decide to wait to join a match.


GC Matchmaking has a lot of advantages to many kinds of games, but I don't believe a client-server based action game to be one of them. I think it would be a significant amount of work to write a feature that will use the less-than-ideal matchmaker to connect users together over 3G and provide high latency that the users have no control over.
Previous Entry Spectre update
0 likes 0 comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement

Latest Entries

Advertisement