One of the biggest stories to emerge from GDC 2009 was the emergence of OnLive, a server-based gaming platform which would allow any PC or Mac, including bare-bones ones, with a fast network connection to play any game by running all the code – including the graphics rendering – on the server instead of on the local machine. In many ways, this service is a return to the “dumb terminal” model of the ’70s where no calculations were run on the user’s computer itself. So far, reactions have been mixed. Osma Ahvenlampi argues that, due to network lag, this model could never work; Adam Martin claims that it could work if the servers are located intelligently. Keith Boesky points out that the actual business model is simply acquisition.
I don’t claim to know if OnLive’s specific tech will work or not, but I would like to talk about the implications of this potential shift to server-based games. (Even if OnLive doesn’t make it work, clearly this technology will arrive at some point.) Of course, we already have server-based games – World of Warcraft runs on numerous servers spread around the world, with appropriate bits of game info set to thin clients running on local machines. However, a client is still a tricky piece of software, and as Raph Koster like to remind us, “The client is in the hands of the enemy.”
With OnLive, the client is so thin, I’m not sure if it’s appropriate even to call it a client. It’s more like a video-player. In fact, while the phrase “YouTube for Games” always refers to user-generated content, one should recall that YouTube had a second, perhaps more important, innovation: regardless of how a video was created, as long as the viewers had Flash, they could watch it immediately. The same concept hold for OnLive – as long as you have their app, you can play any game capable of running on their servers.
The implications of this change are huge – simply put, it spells the end of client-server architecture. Developers no longer need to optimize what data is sent to the client and what is kept back. Or worry about cheating. Or piracy, for that matter. While these advantages are huge, of course, what really interests me is that making a game multi-player is now, essentially, trivial. Put another way, the set of developers making one-man MMO’s will now be larger than just Eskil Steenberg.
Writing multi-player games is very, very hard. Trying to keep everything in-sync between servers and clients in a safe, responsive, fair, and accurate manner is no small challenge. With a system like OnLive, these issues evaporate because there are no clients anymore. Developers simply write one game, run it on some server, and update it based on user actions fed in from the network. If such a technology existed when we made Civ4, not only could we have saved man-years of development time and testing, but we could have easily implemented advanced features (games-of-the-day, mod sharing, massive player counts, asynchronous play, democracy-game support, etc.) with very little effort. Of course, I don’t know if OnLive will be the one to do it, but – from a developer’s point-of-view – the importance of this change cannot be overstated.