this space intentionally left blank

January 16, 2014

Filed under: gaming»software

Field of Streams

At the Consumer Electronics Show, Sony showed off the fruits of their acquisition of Gaikai, a company that streams video games over the Internet. This is something with which I have a little experience: in 2012, I worked for Big Fish on the now-discontinued Big Fish Unlimited, which did the same thing but for casual games. I was pretty sure that it was doomed then, and I'm pretty sure that similar platforms — including Sony's Playstation Now and OnLive — are doomed now, and for the forseeable future. The reason is simple: streaming just doesn't scale.

Let's say you're playing a game by streaming it to yourself from another computer you own, as in Nvidia's Shield or Valve's SteamOS. To do this you need two boxes: one to actually run the game, and one to act as a thin client, providing the display and input support. There are lots of things that can cause problems here — network connectivity, slow hardware, latency — but at the very least you're always going to have enough hardware to run the game, because you own both ends of it. Streaming scales in a linear fashion.

Now pretend you're doing the same thing, but instead of running the host machine yourself, it lives in a remote datacenter. For each person who's playing, the streaming service needs another computer to run the game — the scaling is still linear. You can't cache a game on a cheap edge node like you can a regular file, because it's an interactive program. And there's no benefit to running all those games simultaneously, the way that Google can leverage millions of GMail customers to lower e-mail transmission costs and spam processing algorithms cheaper. No, you're stuck with a simple equation: n players = n servers. And those servers are not cheap: they need hefty graphics cards, local storage, cooling systems, sound cards, etc.

And it gets worse, because those players are not going to obligingly spread their playtime around the clock to keep the load constant. No, they're going to pile in every evening in much higher numbers — much higher — than any other time of the day. League of Legends, a single (albeit very popular) game has had more than 5 million concurrent players. During peak hours, streaming providers will struggle to run enough host boxes. During off hours, all that expensive hardware just sits idle, completely unused.

At first, these problems seem solvable. When you don't have a lot of customers, it's not that bad to add new hosts to compensate for growth. Those earlier players may be more forgiving of wait times, attributing them to growing pains. But consider the endgame: if something like Playstation Now achieves real, widespread success (despite all the other network latency and quality of service issues these services always face), Sony's ultimate scenario is having literally millions of rack-mounted PS4s in datacenters around the country, many of them running at peak capacity for hours on end. That's more servers than Google, Microsoft, and Facebook put together.

At Big Fish, the business argument was that casual games could be run with multiple applications to a machine, so the scaling pressure was lower. But it's still linear: you've lowered the total number of machines you might need in the long run, but there's still a direct relationship between that number and your number of players. The only way to scale online gaming gracefully is to either find a way that games can share state (i.e., MMOs), or offload more of it to the client. As a front-end JavaScript specialist, I always thought Big Fish would have better luck porting its games to the browser instead of streaming them to a Java applet.

But there's only so much you can move to the client when your selling point is "next-gen games without next-gen hardware." In the case of Sony and OnLive, no amount of browser wizardry or Playstation branding is going to solve that fundamental scaling problem. It may be workable for instant demos, or beta previews. But for mainstream gaming, without a miraculous breakthrough in the way games are built and executed, the math just isn't there.

Future - Present - Past