| Where are all the iPhone multiplayer games? |
| Wed, 19 Nov 2008 08:00 AM |
|
It's been a while since Apple opened doors to the iPhone development garden and encouraged everybody + their dog to fire up XCode and give it their best shot. 100 million downloads later, we have thousands of apps, covering everything from flashlights and tip calculators to language learning assistants and location-enabled social networking tools. But one category seems to be conspicuously underrepresented: online multiplayer games. And the situation is especially puzzling given that a) iPhone is being touted as the next big thing in portable gaming (which has been reaffirmed by the number of games being released for it) and b) the fact that it's almost always connected to the Internet (issues with 3G/EDGE network reliability aside). Most of the titles that do feature online capabilities, limit those to posting player's scores to a centralized leader board or downloading additional game content. Then there are apps that support multiplayer gameplay, but only via Wi-Fi on a local network. Finally, there are a few games out there that allow users to play against each other by connecting to servers on the Internet via 3G, EDGE or Wi-Fi. As of today, this last category contains about a couple dozen examples, including our own Scramboni word game. In the course of the last few years, while developing several products in this category (for PC and recently for iPhone) we stumbled upon several possible explanations as to why, given that multiplayer games gained popularity back when the modems went mainstream, the "most connected" gaming device on the planet still doesn't let me play tic-tac-toe against a friend that is not sitting right next to me. These fall into 2 big categories: "Technology" and "Philosophy". Lets leave the "business" side of running a game development company out of this discussion for now. Technological reasonsIt's complexProbably one of the most cited reasons is that "it's hard to write multiplayer games". Anything that requires asynchronous interaction between two or more entities over a network (client and server in this example) is not easy to code and debug. A multitude of factors outside of developer's control, such as network's reliability and speed, come into play here as well. However, the industry has been doing this for years. Take first person shooters, for instance. Back in the day, you played Quake via dial-up - which was mostly slower than EDGE network today. Algorithms had to be invented to compensate for lag and make the gameplay appear smooth and uninterrupted. Another good example is the real time strategy genre. The point is: it's not trivial but it can be done, and has been done many times before. It requires a different set of skillsSome people can do GUIs really well and some people can do network. Doing both of those and doing it well is tough. Just writing the networking part does not a game make. But, it's often enough to put together some graphics, an interface and engaging game logic to have something that people can play and enjoy, and will even pay for. Given how many games available at the App Store seem to be written by very small teams of developers, it's not surprising that multiplayer aspect is often left out due to lack of necessary skills. It often requires a different set of technologiesThe "server side" can sometimes feel like a different "country" to somebody who is accustomed to writing client-side code. You are now dealing with asynchronous processing of data, network connections and databases. Put simply, it's just more things to learn, more work to be done. Infrastructure, infrastructure, infrastructureRunning a game server usually involves having one or more machines with your server software on it, running 24/7, accessible to your players over the Internet. This means maintenance, having to worry about security, dealing with hardware failures etc. There are a whole range of choices here, from buying rack space in a hosting facility and building server computers yourself, to using things like Amazon EC2 and Google App Engine. All these options come with their own set of positives and negatives. But the point is: creating and maintaining this thing can turn into a full-time job (at worst) or it will divert your attention to not-so-interesting tasks for hours on end (at best). It can be done, but it's not for everybody. Philosophy: Why not all games can or should be multiplayer, on iPhoneWe were searching for game ideas to implement with one major requirement: whatever we create, it must have some interaction between players, hopefully in real time. Who are the potential users and how/where will they be using our product? Are they going to be sitting down and spending hours playing on their iPods or phones? Can they afford waiting for an opponent to become available to play the game? Or are they going to be more of a "casual" kind and play a few short intervals at a time? And this is where it dawned on us that the "immediacy" of the device itself (you have it with you most of the time, it's always on, you usually interact with it for short periods of time) will most likely shape the games that will be created for it. It will probably be used as a "time killer" as much as (if not more than) a "full time" source of entertainment. Some people argued that lack of physical controls (a la Nintendo DS or PSP) will limit the usefulness of the iPhone as a dedicated hard core portable gaming machine. So far, it seems like it's definitely a factor in tipping the scales towards casual games being more abundant. But something similar has been said about Nintendo Wii in the past - and it's been partially overcome when, excuse the oversimplification, enough game designers broke out of the "must control everything with a D-pad" mindset. There is no doubt that more "hard core" games will find home on the iPhone, but as of right now, casual titles seem to rule the day. What does this mean for the genre in question? How do you merge bite-sized gameplay with multiplayer functionality? Does it even make sense? The answer is: it depends on several factors:
Before we look at those in detail, consider an example: chess. If you make me wait for an opponent to show up and then I have to spend an hour to finish the match, how likely am I to enjoy such a game on my iPhone? What if my battery goes dead? What if somebody calls and I have to spend 20 minutes on the phone? Is the opponent going to tolerate my absence from the board for long periods of time? Such gameplay seems to be more suited for more "stationary" devices such as desktop PCs, laptops or gaming consoles. However, if you don't require both opponents to be online simultaneously, allow them to make one move at a time, and generally don't tie me up to my device for prolonged periods of time, I might be more likely to play such a game. Granted, it might lose the appeal of "lose yourself in the game" experience of an uninterrupted chess match, but there seem to be plenty of people who enjoy playing "one piece at a time" (chess by email, now defunct Scrabulous on Facebook etc) to warrant creating such an application. Nature of gamesSome games obviously can't easily be made multiplayer without major restructuring of the game logic. Minesweeper, solitaire, tetris - such "self-enclosed" puzzles don't lend themselves easily to inter-player interactions. Some games are inherently multiplayer: chess, tic tac toe etc. And yet others could be played by yourself as well as with other people: car racing (time trial vs racing opponents), various online RPG games (solo quests vs groups or player-vs-player combat) etc. Multiplayer logicIs it more fun to play Tic Tac Toe against a computer or against a friend? I suspect that a lot of people would vote for playing against another human being. So it makes sense to add some multiplayer functionality here. Can you play against somebody by handing them the device every time it's their turn or can you also do it online? Face-to-face interaction is great, but it's not always available. In our increasingly "connected" society, more and more is happening on the Internet, including socializing - which means that online gameplay is becoming more and more of a norm. Opponent availabilityThis is one of the more interesting aspects. Imagine having a game community with 100 members in it. What are the chances that somebody will be available to play Tic Tac Toe when I come online during my coffee break? Now, what if there are 10,000 registered users? Opponent availability can make or break a game if the rules require having certain number of players. This is where things like buddy lists and established user bases come into play. Even in games like poker, where you can join or leave a table at (almost) any point in time, having more participants is better than having less. If you don't have enough "action" for me, I'll go somewhere else. Clever "matchmaking" algorithms and a large pool of players to draw opponents from are of paramount importance. TransparencyThis factor is very much tied to the previous one. How easy is it for me to start the game? Do I need to scroll through lists of servers with names that don't mean anything to me before I can actually join the game? Do I need to decipher things like "345ms ping times" or "9/45 players" to figure out which server is better? Remember, I'm a casual player. If you greet me with an interface that looks like a dashboard from a commercial jetliner, I'll most likely leave. One button click, please. Maybe two. I'm on the go and I'm busy. ContinuityHow much time do players need to invest into a particular game to extract enjoyment out of it? Casual games tend to have flatter learning curves, allowing people to spend only a few minutes at a time to get the "fix". For a multiplayer title, it means that game participants might change quite frequently and people might not get virtual "face-to-face" time as often as in a more dedicated gaming environment. And your game logic needs to reflect this reality. For instance, don't make players wait for an opponent, if possible - put them into a game whenever they click "start" and pair them up with an opponent when one becomes available. Or, take a car racing game as an example. Allow me to get to the track whenever I want, race one lap and register my score. If I want to race somebody, let me do it one lap at a time, not requiring a commitment of a full-length race. ConclusionSo, where are all the iPhone multiplayer games? There is no short answer. On one hand, we need technologies that would allow people to focus on what they do best (create great games) and not think too much about nitty-gritty of networking code etc. On the other hand, the platform is still young and a lot of developers are still going through the "look, I can touch the screen with 2 fingers and tilt it at the same time" phase and haven't really arrived at the happy "look, this thing is always connected to the internet!" place. - Peter Bakhyryev |