Mile
Zero

January 16, 2014

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.