Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

Game Center Matchmaking notes

Sign in to follow this  


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.
Sign in to follow this  


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!