While the gaming industry has been around for decades, its popularity has grown tremendously in recent years. Gaming is expected to grow at a yearly rate of 12.9% from 2020 to 2027. eSports have become even a full time job for some. And as old technology challenges are overcome, companies like Google and Microsoft are pushing toward building games in the cloud.
Cloud gaming is the future of seamless entertainment
Although it requires a high-speed internet connection, cloud gaming brings advantages like portability and unlimited games. You don’t need to keep physical copies or store all your games locally. And, any patch for them is directly run on the cloud gaming server. Also, a single game can be used on any platform or mobile device. Support for mobile devices and other platforms is destined to grow, which makes cloud gaming the future of seamless entertainment.
One of the most popular cloud gaming solutions today is Stadia, developed and operated by Google. It is capable of streaming video games up to 4K resolution at 60 frames per second with support for high-dynamic-range, via the company’s numerous data centers.
Why is Stadia of particular interest to us at WebRTC.ventures? Because at the core of this application, we have WebRTC! It is used as the protocol used to connect with the data centers, consume the video games, and interact with it.
Why is WebRTC perfect for cloud gaming?
- Low latency
- Built to be multiplatform
- Proven and tested in many large real time applications with billions of users. Google Meet, Slack, Facebook Messenger, Discord, and House Party are among the applications built on WebRTC.
What does a WebRTC based cloud gaming architecture look like?
WebRTC was originally created for peer-to-peer communication between users. However, most of the time it is actually implemented for client-to-server and server-to-client communication (using media servers.) For cloud gaming, it is not that different. Instead of connecting to just a media server, we would be connecting to a game instance.
As we can see in the figure above, we have inbound data going into the cloud service and outbound media going downstream to the player home. Through the controller, or our own device, we send commands using the WebRTC data channels to the cloud game service. Those commands are processed and executed in the game. The new audio and video frames are encoded and sent back through the internet to the player home using the RTCPeerConnection API. The device then decodes the audio and video. Although not shown in the image, there would be multiple instances of the same game to scale to millions of players, similar to a live streaming application.
A few years ago, this type of cloud gaming architecture wasn’t possible with shooting or combat games. The round-trip time (RTT), or the amount of time it takes for a signal to be sent plus the amount of time it takes for an acknowledgement of that signal to be received, was the major challenge and it seems that Stadia has mostly overcome it. Based on Stadia documentation and several tests I did, Stadia achieves HD quality at 60fps with 10 megabits per second (Mbps) with input latencies between 100ms and 200ms and supporting even 4K resolutions with the right bandwidth.
And now, Stadia …
Now, let’s unbox my new Stadia and go through some more of the technical aspects of this cloud gaming platform.