Nvidia’s GameStream is dead. Sunshine and Moonlight are great replacements. – Ars Technica

ipad displaying a number of games available for streaming via Moonlight
Enlarge / I wish I had more games installed for iPad-on-the-couch photo purposes, but I just don’t keep that many games on my drive at once!

Kevin Purdy

Nvidia’s GameStream had one job, the one in its name: stream games from the Nvidia graphics card inside your PC to the Nvidia Shield hooked up to your TV (or, back in the day, a Shield tablet). It did this job fairly well, making setup simple and optimizing games with some custom stream-smoothing. Now Nvidia is removing GameStream from Shield devices—but an even better DIY game-streaming solution is already available. Let’s take a look at it and talk to the developers about why and how they made it.

Nvidia's GameStream was a key part of the hardware company's pitch for its Shield products.
Enlarge / Nvidia’s GameStream was a key part of the hardware company’s pitch for its Shield products.

Nvidia

Nvidia is done with local streaming

Nvidia says a Shield update arriving this month will make it so “the GameStream feature will no longer be available in app.” If you try to skip the Shield update, GameStream will still stop working at some point (and possibly be removed from the GeForce Experience app in Windows). In the meantime, trying to dodge that update means not using GeForce Now, one of Nvidia’s recommended replacements, on your Shield and missing out on all the other update fixes and features that arrive with system updates.

If you’re a Shield owner, like I am, this stinks. Shield devices have merits of their own, receiving the longest and most consistent stream of updates of any Android/Google TV device ever released. They’re still perfectly functional as stream boxes (and even more appealing if Google lands an NFL package). But a big benefit of having both a Shield and a GeForce graphics card will soon be shunted.

The company’s suggested replacement for local streaming, Steam Link, is a reasonably simple option—if all the games you want to play are on Steam, if it performs well enough, and if there’s a client for your system. I’ve found setting resolutions and controller options to be a bit fiddly on Steam Link, and its network reliability to be (relatively, subjectively) less robust than the newer alternatives. Nvidia itself admits that with optimal settings, Steam Link is still 10 ms in latency behind its own streaming codecs.

The other Nvidia suggestion is GeForce Now. While it’s pretty impressive at its higher tiers, it also provides only a limited slice of your games library. It requires a great broadband connection and a monthly subscription, and it serves far fewer clients than Moonlight (including, notably, Apple TV).

Proof of Linux life for Moonlight.
Enlarge / Proof of Linux life for Moonlight.

Kevin Purdy

The better streaming client: Moonlight

While GameStream was meant to push Nvidia gear, it also sparked the creation of the wonderful Moonlight software. This free, open-source app has given people access to the output of their GeForce cards from all kinds of screens since 2018. It’s how I played Marvel’s Midnight Suns on an iPad on my couch and Elden Ring on a Windows laptop at my in-laws’ place, streaming from my own home.

With Moonlight, you can beam a game from an Nvidia card inside a Windows PC to a Windows/Mac/Linux computer, Chrome OS, iOS and Android and Amazon FireOS devices, a Raspberry Pi 4, and, if you’re willing to tinker, homebrew apps on the PlayStation Vita, Wii U, LG’s WebOS, and other single-board computers. As noted, this device doesn’t even have to be on your home network if you’ve set up your game-streaming PC and network as such.

All that effort could have been sunk when Nvidia nixes GameStream as a service. Luckily, Moonlight also works seamlessly with a different, more flexible server: Sunshine.

If you thought GameStream didn't give you enough options and settings, Sunshine will ... not have that problem.
Enlarge / If you thought GameStream didn’t give you enough options and settings, Sunshine will … not have that problem.

Kevin Purdy

The better streaming server: Sunshine

The Moonlight team and other developers already had a backup plan for Nvidia’s GameStream retirement. Sunshine is an open-source, appropriately named alternative GameStream-like server. While setting it up is a bit more involved, it’s far more expansive and useful than GameStream:

  • It works on Windows, Mac, and Linux
  • It supports AMD and Intel GPUs, along with Nvidia
  • It can also work with software encoding if needed
  • It supports far more native resolution options than GameStream (including custom)
  • It is managed and paired through a webpage
  • It can stream to multiple clients

Setting up Sunshine and Moonlight

For many people, setting up Sunshine can be as simple as installing it. Read the minimum requirements, check out the full documentation, grab the latest release, and install. On Windows and Mac, your system will likely warn you about this app being from an unknown developer; click through to install it if you’re OK with that. Each system currently has a few extra steps to tackle for certain setups (gamepads on Windows, audio on Mac, input on Linux); be sure to read up on them.

Most of the work for Sunshine takes place in a web browser. Once the app is installed and the service is started, open a browser and go to localhost:47990(you might get a certificate/security warning, which you can click to move past). This web console is where you can create a PIN to pair Sunshine with a Moonlight client, create shortcuts to your games (either through a wizard or by editing a JSON file), tweak configuration (including adding custom resolutions and FPS options), and stop/restart and troubleshoot Sunshine. It’s a sparse interface, but it’s fairly straightforward. Your first priority should be changing your admin password.

If you want to play games on your Sunlight server from outside your network, grab the Moonlight Internet Hosting Tool. Run it on your Windows PC, and it should automatically create the secure UPnP connection through your router that allows Moonlight to connect from outside. It’s easier to make it work if you connect Moonlight to your Sunshine server while on the same network before you go remote. If you can’t, you’ll want to have a good way of knowing your public IP address (and you’ll likely want a VNC connection ready).

One thing to note about Moonlight versus GameStream or Steam Link is that it gives you far more options to fine-tune your connection quality and speed. You can set exactly how much bandwidth you want the app to aim to use while streaming gameplay, prioritize quality over frame rate, and other options. Dig around in the settings and set aside some time to figure out your Goldilocks connection setup.

I’ve had some issues getting my games to launch directly from Moonlight’s interface using Sunshine; I seemingly don’t always enter the right commands in the “Detached Commands” box. But it’s worth noting that even if you can only get the default “Desktop” shortcut working, that works, too. If you get to a desktop, you can then use your touchscreen or mouse cursor (toggled on gamepads by holding down the start/menu/plus button) to navigate to your game and launch it. There’s no latency penalty; Sunshine and Moonlight are really just opening a hyper-optimized VNC connection for you to play games on.

How Moonlight was made

Yes, the Ouya really was the genesis of this huge project to open up Nvidia's game streaming ecosystem. It did something!
Enlarge / Yes, the Ouya really was the genesis of this huge project to open up Nvidia’s game streaming ecosystem. It did something!

Ouya

Moonlight was developed in 2013 by a group of Case Western Reserve University students at MHacks, a hackathon at the University of Michigan. Cameron Gutman, one of those students, found inspiration in an unlikely place: an OUYA box. Gutman had an OUYA without “many good games,” and an Nvidia Shield. He “thought it would be a neat project to try to get the SHIELD-exclusive GameStream functionality running on the OUYA,” Gutman told Ars.

When Gutman and his team started, GameStream’s protocol was “much simpler,” he wrote. There was no encryption, and each protocol—session, video, audio, input—was mapped to a different port. GameStream also logged “quite verbosely” on the client and server side, further speeding up the learning process. Gutman and his teammate Diego Waxemberg could simply run Wireshark to watch the traffic, then map the results from various gamepad buttons. These days, input is encrypted; a similar weekend reverse-engineering session would be far trickier. Moonlight continued to be improved and expanded upon at hackathons like MHacks and HackCWRU (Case Western) and then as an open-source GitHub repository.

There are three major headaches for the development team for different reasons: Android, iOS, and embedded clients.

Android’s ecosystem, Gutman wrote, is “full of nightmarishly broken hardware decoders.” Some devices based on system-on-chips (SoCs) require manual fix-ups of their video bitstream in order to output frames “without hundreds of milliseconds of latency.” Those same fix-ups can increase latency or fail entirely. You can read about some of the most notable nightmares in Moonlight Android’s decoder-errata.txt file, like how the HEVC decoder in the Tegra X1 inside the Pixel C can lag on certain streams, but the same Tegra X1 inside the 2019 Shield TV does not.

The iOS client, meanwhile, is beset by an entirely different (but not unfamiliar) problem: App Store review. Early on, Apple would accept a video of Moonlight streaming to verify its functions, but reviewers eventually wanted to test the app themselves. Because setting up GameStream or Moonlight requires on-screen PIN verification between server and client, Gutman had to “write relay software that would fake a completely insecure server that didn’t require pairing and would stream to any client that asked it.”

Then came App Store Review Guideline 4.2.7 for Remote Desktop Clients. Gutman said his team went back and forth with Apple and was once told that Moonlight simply wouldn’t be allowed. The team had to intuit that the issue was Moonlight’s inclusion of a default app to connect to, Steam. In Apple’s view, Gutman surmised, remotely connecting to Steam through a Moonlight client could have violated 4.2.7(d), involving “a store-like interface” or “the ability to browse, select, or purchase software.” Removing that tile from the iOS client got Moonlight back on the store.

By comparison, the challenges of getting Moonlight working on Raspberry Pi, Rockchip, Amlogic, i.MX, Tegra, and other SoC-based devices are more straightforward, if arcane. Each manufacturer “just rolled their own decoding API,” Gutman told Ars, with most being poorly documented and some even conflicting with other binaries from the same vendor. Most are slowly moving toward the Video for Linux API (V4L2), but even that has its challenges. Gutman and his team have to build clients that work with different forks of FFmpeg, each with its own unique out-of-tree kernel patches, to make each board work.

How Sunshine stepped in

A developer called ReenigneArcher picked up maintenance of Sunshine in December 2022 after the original developer, Loki (aka loki-47-6F-64), became too busy to stay on. They were originally interested in Sunshine as a way to build multi-platform support into their existing project, RetroArcher, but Sunshine soon took over their time and focus.

It’s not just—or even mostly—their work, though. “Sunshine is probably a somewhat unique open-source project, as the majority of contributions come from the community,” they wrote in a Discord interview. In particular, Chris Gutman, brad-richardson, psyke83, and TheElixZammuto have been heavy contributors.

The hardest part of keeping Sunshine alive is testing all the possible scenarios in the sprawling ecosystem, ReenigneArcher wrote. “In Linux alone, we have close to 30 possible capture scenario depending on the hardware and type of desktop environment. Then we also have Windows and MacOS. Linux and MacOS both also support arm64 in addition to x86_64. So the scenarios to test quickly become overwhelming.”

I asked ReenigneArcher why they, like other Moonlight/Sunshine fans, couldn’t just settle for Steam Link. They noted that they’d tested out Steam Link, Parsec, and other systems but found Moonlight and GameStream to offer the lowest latencies. Sunlight has typically performed better than Steam Link and Parsec, but it’s still slightly behind GameStream. With improvements that are making their way through unstable versions, Sunshine and Moonlight should soon be on par with GameStream, or even ahead of it in certain setups.

Moonlight and Sunshine are yet another focused, impressive open source project born out of a larger company’s loss of interest in a dedicated but small market. Here’s hoping you might find the pair helpful for your own PC gaming while away from your PC.

Previous post Newly Discovered Trove of Vermeer Works Reveals He Painted Mainly Dogs
Next post 2023 NFL Draft: Projecting the cost for the Detroit Lions to trade up
سكس نيك فاجر boksage.com مشاهدة سكس نيك
shinkokyu no grimoire hentairips.com all the way through hentai
xxxxanimal freshxxxtube.mobi virus free porn site
xnxx with dog onlyindianpornx.com sexy baliye
小野瀬ミウ javdatabase.net 秘本 蜜のあふれ 或る貴婦人のめざめ 松下紗栄子
سكس كلاب مع نساء hailser.com عايز سكس
hidden cam sex vedios aloha-porn.com mom and son viedo hd
hetai website real-hentai.org elizabeth joestar hentai
nayanthara x videos pornscan.mobi pron indian
kowalsky pages.com tastymovie.mobi hindi sx story
hairy nude indian popcornporn.net free sex
تحميل افلام سكس مترجم عربى pornostreifen.com سكس مقاطع
كس اخته pornozonk.com نسوان جميلة
xxnx free porn orgypornvids.com nakad
medaka kurokami hentai hentaipod.net tira hentai