This article was provided by Maximum PC magazine for TechRadar PC Gaming Week. Click here to subscribe.
Game streaming is huge. It accounts for epic amounts of web traffic and is even an integral part of some companies' survival strategies. Look no further than Nvidia's GRID and GameStream technologies, plus the meteoric rise of Twitch.tv's traffic – it's now the fourth largest peak traffic producer on the Internet, just behind Apple and ahead of Hulu – to know that game streaming is big business.
Billions of dollars are spent on games every year and being able to access them in some form from virtually anywhere, and on any device, is appealing to almost all gamers. Developers are keen on the technology, too, because they can make their game for one platform and stream it to almost any other.
But streaming means different things to different people. For some it's broadcasting their game so fellow players can check out their skills. To others, it's running games on a local PC, but streaming the action to another device, like a tablet. It can also mean playing games that live in the cloud – no PC required. Each of these is completely different, but they're all "game streaming."
Regardless of how you define it, there's a lot to consider. There are control mechanisms, hardware and software configurations on the client, server, and network sides to account for, and a myriad of possible bottlenecks and pitfalls in between. But fear not, we've got you covered. We'll take you through the many methods currently available and explain some of the issues you may encounter along the way.
How does game streaming work?
There's a lot of complex engineering involved in getting game streaming "right." At its core, however, the concept is fairly straightforward. When you break things down, every game is essentially a collection of frames displayed on-screen that are affected by the gamer's input. Multiple things must happen to run and interact with that game, but the on-screen imagery, audio, and interaction are what are ultimately conveyed to the gamer through the monitor, speakers, and input devices.
It works by taking some of the game's frames, converting them into a video stream on the fly, and transmitting the video out to a remote device. The game's control interface and audio is also sent to the remote device, whether it be another PC, a smartphone, or a tablet.
On some levels, streaming is like an interactive YouTube video. Almost every device currently available can smoothly stream a video from a site such as YouTube. But not every device can render and run a complex game. By leveraging the horsepower of a more capable machine to actually run the game, and then converting the game feed into a video stream, gamers can watch and/or play their game from a different device.
The challenges associated with game streaming are significant, though. Modern hardware of all types (GPUs, mobile SoCs, CPUs and APUs, etc.) typically have the ability to encode HD quality video in real time with adequate frame and bitrates, so generating a video feed and broadcasting it out to another device isn't an issue for the most part. And neither is streaming the audio, though streamed in-game audio tends to be sent as a stereo signal to save on bandwidth – not multichannel surround.
The control schemes, however, can be tough to get right. Not only are there the plethora of input methods to consider, such as touchscreens, game controllers, plus keyboards and mice, but the lag associated with sending/receiving inputs can make a gamer feel disconnected from the game.
If a game stream suffers from noticeable lag, or latency, the action on screen won't be affected quickly enough, and the experience is degraded. As such, making effective use of available bandwidth and minimising lag are the keys to good user experience.
Image quality is also important, of course, but that's easier to control by altering game settings or increasing compression on the video stream. Masking and minimising lag is far more difficult.
There are a multitude of companies involved with game streaming at the moment. AMD, Nvidia, Microsoft, Valve, Sony, and many others are directly involved with, or are inventing the technologies, that make game streaming possible or will enable new use cases in the future. Nvidia in particular is aggressively pushing game streaming forward on the PC, Android, and in the cloud.
In fact, Nvidia's GRID technology is arguably the de facto standard of most game streaming services. GRID is available from Amazon Web Services (AWS) and allows companies from around the world to rent capacity to build streaming services. GRID's partners currently include companies such as G-cluster, Playcast, Gloud, Ubitus, and others. Nvidia was also involved with Gaikai before it was acquired by Sony.
There are also non-gaming companies (we use that term loosely) involved in game streaming. Twitch.tv, for example, doesn't necessarily provide any gaming-related services per se, but millions of people stream their games to the site nonetheless.
Twitch doesn't facilitate remote game play or offer interaction with the game stream, over and above chatting with the game streamer, but gamers still flock to the site in droves. Some visit Twitch for the entertainment factor alone, while others use it to find tips and tricks for their favourite game.