An exploration of the systems and techniques to deliver gaming on demand
Copy Link
‘Netflix for games’, ‘Games on demand’, whatever you want to call it; the gaming ecosystem has been on the hunt to make games more accessible. The promise is wider distribution, and a few technologies hold the promise of achieving that dream. Through this multi-part newsletter, we’ll explore some of the technologies, systems, and techniques that could power this future. Today, we’ll start with the well known (and hyped) cloud gaming as well as explore Level of Detail (LOD) streaming.
Big players have poured tens of millions into building out cloud gaming platforms; Microsoft, Google, Sony, EA, Amazon, NVidia, the list goes on. But so have many smaller startups over the last few years (note the recent news on Shadow’s bankruptcy). As of today, the dream of cloud gaming is growing, but unrealized.
Cloud gaming has had a storied history (OnLive, Gakai), but it’s still early days. The argument is that it’s a technical problem (latency) and we’re now on the cusp of solving it for the masses with the help of heavyweight balance sheets. For cloud gaming to work, the game simulation must take place in a remote server and the viewpoint video is streamed (pixel streaming) back to the player to interact with. Their control inputs (keyboard, mouse, controller) are similarly streamed up to the remote server, and thus, the game is played.
Data transfer over the internet is expensive though. It takes time for data to transfer from a remote server to a local computer. The more data, the more expensive and taxing that transfer is on internet infrastructure. Control inputs are cheap: up, down, left, right, click, shoot. The possible inputs are in the range of tens or the very low hundreds, modern fullsize US keyboards have 105 keys. Describing an accurate picture of a game scene? They say a picture is worth a thousand words, but personally, I think that is an underestimation by orders of magnitude. Nevertheless, it’s a lot more costly to transfer a single video frame (or even a change in image - see inter frame compression), and most gaming requires at least 30 frames per second.
Let’s explore the alternatives. The status quo today is gaming locally. Basically the same data transfer happens between your screen, keyboard, and computer; it just doesn't do it across tens or hundreds of internet infrastructure miles. So why do we want to move towards cloud gaming, a potentially more inefficient technology? Yes, the internet infrastructure is expensive, but so are personal computers and consoles. The goal with cloud computing is to put games in the hands of anyone without a high end gaming system. It opens distribution to new potential players, it grows the serviceable market for games.
There are other options, though they all require some local compute. A few technologies worth exploring are LOD streaming (for lack of a better term), webGL/webGPU, and WebAssembly. Let’s start with LOD streaming, and in the coming weeks we can dive into some of the other promising technologies.
Today, when you play an online multiplayer game, the entire map and 3D environment data is downloaded to your computer and any changes to the map or movement of other players are sent to you from the game server (the authoritative source of truth across all players). Rather than the entire map, you could send across just the data on the area you are located and for which you’re able to see given your line of sight.
For a small map, this might not make sense, but for a huge world or universe of content, this could be quite useful. Just how your vision is less detailed as you look at something in the distance, map items in the distance could be less detailed (require less data) and reduce the amount of information required for the player position at any given time. This technique is broadly referred to as Level of Detail (LOD) and exists in games today; however it’s used to determine the detail of what the GPU renders on the screen, not necessarily what data is delivered to the client. LOD Streaming would encompass that.
As your character moves closer to elements, more data is sent across to add detail to the scene. This type of system would allow for larger and more dynamic worlds to be supported, but there is also one way it can help with the processing limitations of local machines. You could transfer less detailed worlds on the whole to local devices with limited processing power. A gaming PC with a high end graphics card might get the best visual representation of the world, but an old Android phone could still run the game with reduced graphics. Though not everyone would have the same visual experience, it would still open up distribution to more people.
So what games would people play with LOD streaming then? Nothing today; It’s a shift in how games would be developed and delivered, and therefore there is no backlog of readily available content for LOD streaming like there is with cloud gaming. What good is distribution without product?