Now that the crying from Simcity’s server issues have mostly died down, it gives a bit of space to reflect on what happened. Maxis’s always-online design decisions aside, the controversy would not have been as loud or as pronounced if EA had provisioned enough servers to handle the load of the initial onslaught of players. Of course, this is hardly new with games that have an online component: Diablo 3 ran into the same cacophony of complaints on launch day, and the vast majority of MMOs in recent memory had launches marred by server overload and an eager but idle gamer population.
With such a history of failed launches and inadequate server computing power, you’d think game developers would simply get more machines to handle the big launch, but it’s almost always a poor investment: players are the most active on release day, and buying or even renting (and maintaining) a whole bunch of servers which will most likely sit unused in a month is obviously cost-inefficient. So far, the accepted alleviation strategy appears to be server queues for particularly intense periods of online activity.
As games are being built more as always-available, always-connected services, I thought about how traditional web services and APIs are scaled, and wondered whether lessons could be gleaned from the biggest sites and apps. The biggest problem, though, is that games are structured just about in inverse. A popular web service typically grows its userbase, whereas games are hit-driven and have userbases that arrive from other games and will trail off to yet more games over time.
Which means that for a raising star like Pinterest or Dropbox or even Facebook, the amount of servers and its scaling capabilities are nicely correlated with time moving forward. Assuming that user count moves up and to the right, adding new servers and building new infrastructure are logical investments to make, and they too will move up and to the right.
The hit- and launch- driven gaming model flips this relationship on its head: the flood of users arrives at the start, and unless there is a stream of new content or the game is one of those rare word-of-mouth viral hits, the user count will drop over time. Investments in software and hardware to deal with the load in the beginning are then overengineered solutions over time, and eventually, the userbase is so minuscule that the servers are shut down and presumably reimaged for a newer game. Not only does this cycle guarantee crappy launches, it also effectively promises that these online games will end in a whimper.
So why are games built like this?
One big reason is historical: gamers have traditionally paid money up front for a gaming title, and it’s only been these past few years that the non-MMOs have had major online components. The $60 that goes into a game now pays for the cost of development, publishing, and maintenance of servers amortized over time while its online community is still active. With the game’s profit already made, though, the developer’s main economic incentive for server upkeep is to simply not piss off its players, a problem that tends to go away over time as players get distracted the next big game. This is most evident in annual sports titles: by definition, they will receive a new revision in a year’s time, and outside of some niche issues (e.g., some players preferred last year’s style of play, etc.), most players will move onto the new game and allow the old game’s servers to be shut down.
The main strategy to combat against putting developers in this position is to simply charge players money to maintain the game. MMOs unabashedly require a monthly fee, and MMO players have understood that running servers isn’t free. Alternatively, free-to-play models employed by the likes of Team Fortress 2 and League of Legends work as well, as long as there’s a continuous stream of content that keeps players engaged in the game and willing to spend money to subsidize the maintenance cost. The structure is warmly reminiscent of the upstart web service: build more features your players want, and you scale with the player base as it grows.
I think gaming companies have to eventually move away from the one-time-payment model. Much like how downloadable content helps offset the increasing costs of game development, companies will find ways to pay for server costs, or look to structure their games so that their player base will stick around and justify the money spent supporting their presence.