Sunday 28 December 2014

Game Streaming 101

Game Streaming

Everything you need to know about game streaming and what it means for the PC. By Marco Chiappetta

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.

GAME STREAMING: AN INTRODUCTION


How does it work, what are the potential problems, and who are the major players?

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.

Taking control

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 minimizing 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 minimizing lag is far more difficult.

The game-changers

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 say, 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 favorite game.

WHAT DO I NEED TO STREAM MY GAMES?


The specs, the network requirements, and the game settings that will get you streaming

T he hardware requirements aren’t steep. Just like running a game, the more processing power behind the host machine, the less taxing streaming will be on the system. But assuming you’ve got the hardware to accelerate the video encoding process (and almost every system sold in the last few years should), an adequate amount of memory, and decent broadband, then a fairly modest system will work just fine.

Both Nvidia’s GameStream and Steam’s In-House Streaming recommend using a quad-core Intel CPU (or six-core AMD processor). We’d also suggest having at least 8GB in the system. As always, more memory is better. The client systems have more modest requirements, however. They should have a GPU with built-in hardware accelerated H.264 decoding, but just about any modern computer or device should have that. If you can smoothly play high-quality HD video streams, you should be good.

Getting wired

The network requirements are a bit trickier and arguably more important. Not only must there be adequate bandwidth between the game streaming host and client system, but low latency is paramount as well. Ideally you’d have all systems wired to the same network via a network switch, but even a 100Mb connection would offer more than enough bandwidth. Nvidia recommends a 10Mb/s upstream and 2Mb/s downstream, which is nothing for a modern wired network.

Should you have to use a wireless network, a fast, dual-band 802.11ac or 802.11n router/access point would be the next best setup. Nvidia has even worked with a number of partners to certify wireless network devices as GameStream-ready (check out http://bit.ly/11jtnC3). Also note the clients connecting to the wireless access point should feature matching network controllers. It’s best to be in close proximity to the router to ensure a strong signal, and to employ the cleanest channel to minimize interference. Our “Ultimate Router Guide” (http://bit.ly/1vs9YvW) has stacks of suggestions. Streaming outside of your local network is possible, but you’ll be at the mercy of your broadband provider.

Image quality

Game settings matter—lower resolution will require less bandwidth, while turning off vertical sync will help minimize input lag. In-game image quality, resolution, frame rates, and bitrates can all usually be altered, and finding the right balance between image quality, bandwidth, and latency/lag is key to
a good experience.

We’ve found that game streaming locally is typically awesome if you meet the minimum system requirements and have a fast home network. Steam’s In-Home Streaming and Nvidia’s GameStream on the Shield Portable and Shield Tablet often seem just as good as playing on a local PC. Game streaming from the cloud isn’t always perfect, but will improve as broadband speeds rise and more servers are introduced into the ecosystem. As Nvidia adds more servers, the user experience for GRID should improve since the load will be shared and gamers can access servers closer to their location.

GAME STREAMING WITH STEAM, NVIDIA, AND AMD


Setting up made simple

As a reader looking to experiment with game streaming, odds are you’ll already have access to Steam, or Nvidia or AMD GPUs. With that in mind, we thought we’d explain how to utilize Steam’s In-Home Streaming, Nvidia’s GameStream, and AMD’s Gaming Evolved utility to stream games between PCs, between a PC and mobile device, and from a PC to Twitch.

Although they have some features in common, there are fundamental differences between Valve’s, Nvidia’s, and AMD’s current solutions. Steam, for example, can stream games between systems on a local network that are capable of running the Steam client (currently available for Windows, Linux, and OSX). Nvidia’s GameStream technology can stream games from a PC to an Nvidia Shield device on a local network or across the web, provided there’s enough bandwidth available and the latency is acceptable. Nvidia also gives owners of its Shield devices access to the company’s GRID service to stream PC games directly from the cloud, though the service is still in beta. AMD’s Gaming Evolved utility (by Raptr) doesn’t have any built-in mechanism for streaming games to other devices, but it can stream and record ingame action for remote viewing on Twitch.tv. We should note that Nvidia’s GeForce Experience app with ShadowPlay support can also record and stream in-game action, but we’re not going to cover that here.

Steam in-home Streaming

Using Steam’s In-Home Streaming is incredibly simple. All you need to do is run the Steam client on systems connected to the same local network and log in with the same account on all of the machines. The host machine, as in the machine that actually houses and runs the games, must be a Windows-based PC at this time. When you log into the client machines, the option to stream games from the host will be available in the game library. Simply click on the streaming icon for that game and you’ll be off and running. Should you need to tweak the game stream for any reason, Valve offers a number of suggestions on its support site (http://bit.ly/1cZRUdF).

Nvidia GameStream

Streaming your PC games to an Nvidia Shield device is also relatively straightforward if you meet the necessary requirements. You’ll need to have an Nvidia GeForce GTX branded graphics card installed in the host machine, powered by a Kepler or Maxwellbased GPU. GameStream (and GRID) uses Nvidia’s hardware H.264 video encoder to encode and stream in real-time inside the GPU as a game is being rendered. This encoder is only available on Nvidia Kepler and Maxwell GPUs. You’ll also need to have Nvidia’s GeForce Experience application installed and running on the host PC. The GeForce Experience application will scan the system for compatible games and offer a list of suggested settings for the best game streaming experience. On the Shield device, all you have to do is access the Shield hub. In the menu on the left, an option labeled “My PC Games” will be listed. Select “My PC Games” and your Shield will scan the network and present the list of compatible games available in the GFE application.

Also note that Nvidia gives users the ability to stream games outside of their home network as well. Nvidia recommends Internet bandwidth of 10Mb/s from your PC down to Shield and 2Mb/s from Shield up to your PC. The streaming experience will vary depending on the quality of the connection, but it is possible.

AMD Gaming Evolved

Have an AMD GPU and want to stream your in-game activities to Twitch.tv? No problem. The AMD Game Evolved utility by Raptr, which gets installed as part of AMD’s Catalyst driver suite, has the ability to record and stream to Twitch built right in.

First you’ll need an account on Twitch. Once you’ve created an account, run the AMD Gaming Evolved app and click on the Broadcast button on the main interface. You’ll be asked to log into Twitch—do that, then minimize the app. When you run a game, the Raptr overlay should be visible in the upper-left corner (if not, exit the game, access the Raptr preferences and enable under the “In-Game” menu). Then all you have to do is hit Page Up + B when in a game, give your stream a name, and then click the Start Streaming button.

The speed/quality of your broadband connection plays a large part in determining the quality of your stream. If you need (or want) to alter the bitrate, resolution, or frame rate of the stream to improve quality or smoothness, they can be changed via the Twitch menu in the Raptr preferences menu.

CAN I STREAM MY GAMES?


Which games will work, and on which devices?

There are no hard and fast rules to determine which games are best suited to streaming, but there are some guidelines to follow to minimize frustration. If you’re streaming from one PC to another PC (or another device with a mouse and keyboard), the network is arguably the most important link in the chain, because the control scheme is identical. For best results, the host PC should be wired. If that’s not possible, the wireless connection needs to be strong and reliable—an 802.11n or 802.11ac 5GHz router/access point should be a requirement, though a good 802.11g router will technically work as well.

The game’s preferred input method is also a major consideration. Nvidia has a huge list of games posted online that it’s certified as compatible with its GameStream technology (http://bit.ly/1wJigAm), which also illustrates what types of controllers are supported. What you’ll find is that many games support multiple controllers, but a particular type would be ideal for certain games. For example, shooters work best with a mouse and keyboard or maybe a game controller, but they’re less suited to touchscreens. Conversely, racing and sports games are perfectly playable with a game controller or touchscreen, but a keyboard and mouse aren’t quite as intuitive.

Testing times

Then again, preferred input methods are subjective. Less subjective is our tolerance for latency. When the latency between the game server (the system running the game) and client (the one receiving the stream) is too high, the experience won’t be good.

Ultimately, the games best suited to streaming are those compatible and playable with multiple controller types. GameStream and In-Home Streaming are compatible with a wide range of titles in all genres, but game streaming isn’t universally possible across all games and systems/devices. “To enable a GameStream game, Nvidia has to test each game in our lab,” Nvidia’s Andrew Fear, product manager for GRID, told us. “We leverage all of the testing that goes into the GeForce Experience optimal playable settings to develop profiles for each game we support.

“In addition, we have to test games to ensure they start up flawlessly and don’t show any strange dialog boxes during gameplay. It’s a big undertaking to do this for hundreds of games, but we are committed,” Fear says. Some of the testing involves general compatibility, but Nvidia also ensures its Shield controllers are mapped properly, that the game’s interface works and is displayed properly when streamed, and that the experience is generally good. Games not listed may still work properly, but they haven’t been officially tested yet.

THE FUTURE OF GAME STREAMING


Could single-platform games become a thing of the past?

For game streaming to go mainstream and become one of the preferred methods for gamers to get their fix, many things need to improve. Should all of the stars align though, there could be serious implications for the PC gaming industry. By its very nature, game streaming somewhat negates the need for gamers to own their own powerful PC or game console. A system of some sort capable of actually running the game must be available at some stage of the pipeline—most likely in the cloud—but the gamer’s device receiving the stream need only have the ability to connect to a network, accept user input, and playback the game video.

Theoretically, streaming games from the cloud could obliterate the consumer add-in GPU market. So, you’d think AMD and Nvidia would despise the technology, but they don’t. GPUs are still needed to render a game, whether it be local or in the cloud. And ideally, each game being streamed would have adequate GPU resources allocated to render it in the highest quality and for each gamer connected to the service. To that end both AMD and Nvidia have developed boards strictly for use in game streaming servers that can be virtualized to support multiple game instances simultaneously.

So, even though streaming could cannibalize local PC gaming, there’s still huge potential for GPU makers and a need for significant GPU resources. They just may not live under your desk in the future — they’ll be in the cloud.

The cloud’s the limit

When we asked Nvidia how it sees game streaming evolving in the future, it answered with, “Nvidia is committed to giving users as many choices with their games as we can. We are gamers; we enjoy games on many different platforms and usage models. We want to give Nvidia customers choices: they can enjoy local PC games on their own GeForce PC, they can stream the games they own using GameStream, or they cannot even own a PC and stream games from GRID to a Shield.” And that’s really the crux of the issue and why game streaming is being actively pursued by so many players. Game streaming could ultimately give gamers more choice and developers more flexibility.

As things stand, we usually have to buy games for a particular platform, be it the PC, Android, an Xbox, smartphone, or whatever. Developers also have to make the games for each platform. There are plenty of assets that can be carried over for each version, but developing and tuning a game for multiple platforms still requires a considerable amount of time and effort. If game streaming becomes the norm, developers may only have to develop and optimize a game for a single platform and gamers would play it on their preferred device. This scenario could change the way we buy games as well. Instead of buying a game for one platform, we’d simply be buying access to a particular game that can be played on any platform. We could play our games virtually anywhere and have all of our stats and save-games come with us.

A number of the existing cloud gaming services already give us a glimpse of this future. Nvidia’s GRID or Sony’s PlayStation Now betas allow gamers to play games—in these cases PC games (GRID) or PlayStation 3 games (Now)—on portable Android devices or other Sony gaming systems. But make no mistake, there’s no technical reason limiting these services (and others) from working properly on virtually any device, from a smart TV to a smartphone.