Or, An Idiot’s Guide to Local Gamestreaming
Having recently built a new PC, I was frustrated with the lack of an easy way to play games from that machine (in my office) on my living room TV. I tried using SteamLink on the TV itself, which was a working solution but found the performance to be pretty poor; poor enough to stop me from using it altogether.
As a result, I tentatively splashed out on an Nvidia Shield TV Pro. It’s a box that can play all your streaming favourites (Netflix, iPlayer et al) and also stream games from a PC on the local internet using Nvidia’s proprietary Gamestream software. The USP of the shield is Nvidia’s homemade AI Upscaling technology which will take a lower resolution image and increase it to 4K using magic AI algorithms (or something). I bought the box from Amazon on the condition I could return it if things didn’t work out. Long story short, I did keep the Shield but using it has been such an experience I felt the need to write about it. There’s a lot of articles out there espousing the Shield as a top-of-the-range steaming box, but surprisingly little on the range of issues that accompany it.
Fair warning, this is an article aimed at people seriously considering getting a Shield, people currently wrestling with one, or nerds. It’s going to get technical so abandon faith all ye who enter here.
My first impressions of the box were very positive. The UI was snappy, a delight in comparison to my TV’s built in software. The remote control was ergonomic and the whole thing had a quality feel. So far so good.
I immediately ran into problems when I started to use Gamestream. I tried to play Immortals Fenyx Rising from my PC on the TV and the game could not be detected. Thus began my first foray into the sprawling and esoteric online Nvidia community. After a little research, it turns out you can add games manually to the Geforce Experience windows app which will then become available to play on the Shield. Once I had done this, it worked pretty well.
However, it raised the question: why wasn’t the game automatically detected (unlike some others that were)? There were vague allusions on forums to some games being “Gamestream Optimised” but I couldn’t find any official word on that. Did these secret “optimised” games run better on Gamestream?
At this point it seems a good time to mention that there is pretty much no online documentation for the Shield – AT ALL. There is a “user guide” on the Nvidia website which amounts to “plug it in and hope for the best”. The GFE Windows app helpfully links you to a now defunct page: originally supposed to be a list of Gamestream optimised games, it now shows games available on Geforce Now (related conspiracy theory detailed below). The scant information that is available is spread in an internet breadcrumb trail between Nvidia’s clunky forums and reddit.
Further problems arose when I tried to improve my Gamestreaming experience using the settings in the app. There isn’t much to play with, essentially just resolution and max bitrate. Once again, I was left puzzling over what “resolution” actually meant to the app, for it didn’t always output the requested resolution. Sometimes it explicitly told me my requested resolution wasn’t available. I could even change the resolution of the settings directly in the game I was playing – what effect did that have?
(If anyone is stumbling upon this article trying to solve that particular riddle: it turns out that Gamestream has the ability to change both the resolution of the monitor being streamed, and the in-game settings (as long as the game is on the sacred, secret “officially optimised” list). So the Gamestream will do its best to output the resolution you have asked for. This is actually quite a cool feature, if only it had any signposting)
Speaking of monitors, one of the most bizarre quirks I have run into is the inability of the Shield to intelligently stream the screen that the game is playing on. In fact, for my unmodified (very standard) dual-screen setup, Gamestream exclusively streamed the wrong screen. I have delved deep into this one too and can provide the peculiar explanation here, which is one of the most mind-blowing pieces of programming oversight I’ve ever witnessed (and I used to be a very bad software developer myself).
Here goes: A GPU has a specific order it checks for connected screens in order to display the startup info for a PC, and the BIOS menu if you activate it. For Nvidia cards this is VGA > DVI-A > DVI-D > HDMI > DisplayPort. As far as I can tell, this is hardcoded and not customisable. Now, Gamestream will ONLY stream the first one of these that your PC has connected. This also cannot be changed.
In my case, my main screen (used for games) is connected by DisplayPort and a secondary screen connected by DVI. The GPU hits the DVI screen first and therefore, when it is connected, that is the ONLY screen that Gamestream will show. This can be solved by unplugging the second screen and restarting the PC, but I don’t want to do that every time I want to Gamestream!
A further arcane mystery of the Shield ( I’m getting to the end now, I promise) is how AI upscaling works. I’ll skip to the explanation on this one, but needless to say the UI itself doesn’t signpost this at all and I only found THE TRUTH after more forum crawling. Essentially, when AI upscaling is active any input below 4K will be scaled up to 4K using Nvidia’s algorithms. This means that you can improve your streaming by asking for a lower resolution and letting the box upscale it. This applies to all possible inputs (Youtube, Netflix) but the results I’ve seen have been mixed. There are a variety of unexplained settings to accompany this that I have yet to master.
In a strange twist, from forum posts I discovered a separate, third-party app called Moonlight which seems to be objectively better than the native Gamestream app in every way. I was surprised other apps were even allowed to connect to a PC with Gamestream enabled but here we are. The Moonlight app has more settings to customise, and they are more clearly explained. I have solved many of my problems by using the Moonlight app and I’d encourage anyone experimenting with Gamestream to try it out.
To sum up, using Gamestream on the Nvidia shield is not a plug-and-play experience. It’s more of a plug-and-spend-two-weeks-poring-over-three-year-old-reddit-posts experience. And sitting here as I am, at what I hope is the end of my saga, I am left wondering why is Gamestream – one of the flagship features of the device, heralded prominently on its Amazon page – so shit?
Don’t worry, internet wisdom has got the answer. Basically, Nvidia has ended up competing with itself with its Gamestream (local game streaming) and Geforce Now (internet game streaming) services. And you have to pay for Geforce Now. So perhaps it’s not a coincidence that the former list of Gamestream games has been replaced with a Geforce Now page. Perhaps the apparent neglect of Gamestream is an intentional ruse to drive gamers toward the paid Geforce Now service. Of course, this is all conjecture and there has been no official abandonment of Gamestream support, but in light of the removal of the official list of Gamestream games Nvidia’s silence is conspicuous. If this tinfoil hat theory is true, it’s a very shady move from Nvidia; they use Gamestream as a selling point for the Shield. Indeed, that’s specifically why I bought it and inadvertently wandered into the mess described above.
And yet, despite all of this, I would actually recommend the Nvidia Shield to users looking for a premium experience. Content streaming platforms like Prime Video are well optimised and can be upscaled if you like and, when it’s working, the game streaming capabilities are exactly what I’ve been looking for.