views:

230

answers:

3

I have a card game on the iphone and I really would like to take it to the next step by allowing players to interact with each other in real-time environment.

My questions:

  1. Do I need a web server ?
  2. Is there a third party specifically for iphone multiplayer games that I can use to host the game?
  3. I would probably need a database - what is the best solution?
  4. Should Apple push notifications be considered ?
+3  A: 

First off, I have never done one myself, but I imagine that any massively multi-player game would entail some sort of central server to hold statistics (wins/losses), rankings, game table information, etc.

I imagine some sort of remote service providing server is required. A web server would certainly fit the bill and would most likely be the most logical solution, but certainly not your only choice.

Hosting of this service depends on the service you choose. If you're going the java route there are several places to look. Google's app engine, a straight up java web provider, amazon's cloud, etc. So many choices.

There are several open-source databases that would fit nicely with java. Postgres would come recommended by me. There are certainly others and other commercial options.

Matt
+1 for suggesting AppEngine.
sybreon
Your comment "but certainly not your only choice" a bout the web server, is there any other solution ? can you please clarify.
Unis
A more complete J2EE application stack (Glassfish, JBoss, to name some open-source versions). It's been a while since I've done direct remote calling in Microsoft land, but I'm sure their stack probably offers some app-server like means of providing remote calls.Given the nature of data oriented calls, the web (or web services) server seems like an easier choice as well as the most popular.
Matt
A: 

The server you use is bound to how fast the interactions with players need to be. The problem with HTTP would be that it's hard to have push notifications and it's also probably too heavy, depending on the type of game. If it's in real time, but doesn't have a lot of interaction I'd probably use XMPP for the actual gameplay. If it's something where latency is more important, like a FPS or plataformer (actually any action game really) you'll probably need to roll your own protocol (and server obviously). For the matchmaking a web server is enough.

Phrodo_00
It's been a while since i worked on web server and web services. Basically what you are saying is rolling out the web server as its only push notification! but in case of the card game i need to send information to all connected devices when player play a card
Unis
A: 
  1. Yes, you need a server for a traditional MMO, since an MMO is defined as a game where arbitrarily many people connect to each other. If you require people to be in the same vicinity, you can have an "ordinary" multiplayer game over the phones' wifi.
  2. Doubtful. MMO servers require a lot of custom code. There are servers for high scores and such for more traditional games, however.
  3. For your central database, this is entirely a question of preference. It sounds like cost is important to you, though, so I would go with MySQL since it's a free solution (and I think it's very nice to work with).
  4. That depends on what gameplay will entail. If you're talking about a real-time game (like EverQuest or something), push notifications will probably not be helpful. If you're talking about something like Mafia Wars (is that the proper name of the Facebook one?), maybe.

I'd recommend looking at Parallel Kingdom, which is an existing MMO for the iPhone, iPod Touc and Android.

Arkaaito