My game will do next:

  1. Dealing 4 cards to every player

  2. Random player is turning over 1 card, after him another (which has seen card of previous player) and etc.

  3. On the end player with the highest card wins and dealing cards starts again

I think it would be best that player could choose room in which he would play.

So my question is what type of comunication to use? Over Game center, my custom server or there is some spacialized server for that kind of thing?

UPDATE (added second question):

I have read on severral forums that Game Center has limit up to 4 or 16 players. My game will play over 16 people (for start I'm sure that there will be 30-40 players in same time in game). Or that means that there can be max 4/16 plaers in same match (room)?


My game will have 4 players (exactly 4). I will set max. timeout 10 seconds and after that if player has not turned card game is over for every player (this is that kind of game). Players can not leave the match and return again later. This is the flow of the game: player 1 plays his card, after that player 2, 3, 4 and than again player 1. Each player has to play and it's not possible to skip someone. And I need to do everything programaticaly; start the match, join the match (autom-match is only available except invite).. If all of that i can do with Game center, that's great, I will do that then.

  • \$\begingroup\$ I'm unsure if this qualifies as such, but "which technology to use" questions are considered off-topic for GDSE. Possibly rephrase to ask how you should implement multiplayer and leave off the part asking which platform to use. Also, asking two questions in one is also heavily frowned upon; if you have a second question, post a second question. \$\endgroup\$ Jan 5 '13 at 22:33

You say turn-based, but haven't used the magic word "asynchronous". (The question is, will the players be able to leave the match and return again later when it is their turn? I'd imagine you want the answer to be yes.)

You are right about the max number of players limitation in GameCenter. (16 for asynchronous matches, I'm not sure about real-time.) I believe the minimum number is 2. (Check out the GameKit documentation for more specifics.)

There are a lot of things to consider when deciding whether you want to want to write your own server. Your web programming experience is definitely a factor. (Would you feel confident you are writing a secure and not-exploitable server?) Of course, the cloud services are not guaranteed to be infallible in this regard either. Another is long-term cost. There was that recent story about the company who closed their online servers because the piracy was going to cost them too much. (The game was called Battle Dungeon.)

I'm assuming asynchronous here, but an alternative to writing your own is to use a service. (I'm sure there is someone offering a "cloud based real-time multiplayer service", but I don't know about it offhand.) I have not used any of these, but I would spend some time and evaluate the following list (more or less in order of my impression of them, but again, I can't recommend from experience): Parse, FatFractal, StackMob, Kinvey, Kumulos, Applicasa.

Good luck!

UPDATE after Q #3: Ahhh, you are not wanting asyncronous games then. Yes, you can do all of that with GameKit. Here is a link to the GameCenter Programming Guide section on Real-Time matches.

  • \$\begingroup\$ Thank you for detailed explanation. Please take a look at my updated explanation. \$\endgroup\$
    – iWizard
    Jan 5 '13 at 10:55
  • \$\begingroup\$ I updated my answer. Yes, you can do all of what you want with GameKit/GameCenter. \$\endgroup\$
    – livingtech
    Jan 5 '13 at 20:47

If you choose to write your own server, consider using the Node.js platform. The asynchronous model makes it really easy to handle a lot of connections. In traditional programming network code can make performance plummet if you are not careful.

  • \$\begingroup\$ Please take a look at my updated explanation. \$\endgroup\$
    – iWizard
    Jan 5 '13 at 10:57
  • \$\begingroup\$ @CroiOS I don't know anything about Game Center, if that works for you then great, otherwise I'd still say Node.js would be a good choice for a freely programmable platform. \$\endgroup\$ Jan 5 '13 at 11:47
  • \$\begingroup\$ Have you made any multiplayer game for iphone yet? \$\endgroup\$
    – iWizard
    Jan 5 '13 at 11:59
  • 1
    \$\begingroup\$ @CroiOS Nope, I don't even work in the games industry. It is just a wonderful platform that is easy to work with and does networking particularly well. \$\endgroup\$ Jan 5 '13 at 12:27

Not the answer you're looking for? Browse other questions tagged or ask your own question.