Advertisement
Advertisement
⚡ Community Insights
Discussion Sentiment
86% Positive
Analyzed from 4853 words in the discussion.
Trending Topics
#sunshine#steam#desktop#moonlight#linux#streaming#games#game#apollo#display
Discussion Sentiment
Analyzed from 4853 words in the discussion.
Trending Topics
Discussion (135 Comments)Read Original on HackerNews
First there was Nvidia Gamestream, which was proprietary and later deprecated by Nvidia themselves.
Then came Sunshine and Moonlight, open source server and client implementations of the protocol to allow low latency streaming for all platforms.
Along the way the Game on Whales project started, to allow multi seat streaming plus virtual displays so currently logged in user sessions aren't impacted. Basically this is a whole "host your own Stadia/Geforce Now" solution. But instead of running already setup applications as an existing user, you run these curated containers of Steam, Firefox, etc.
Then someone forked Sunshine and Moonlight into Apollo and Artemis, to make streaming from a virtual display turnkey and OOTB easy. Sadly the virtual display feature of Apollo is in practice Windows only.
And then there's this, Moonshine, in a way doing what Apollo brings to the table but for Linux servers.
Oh, and along the way someone forked Apollo into Vibepollo, an almost fully vibecoded "enhancement". Personally not touching that.
Did I miss anything?
While the hardware is no longer being sold the software sort of lives on. In an android app among other things.
Tangentially it almost feels like steam could make a stadia like thing work. They have most of the moving parts including crucially, the bit google didn't, an established base of customers. Tomorrow steam could introduce a "play your games anywhere on any hardware" feature and no one would be surprised.
It is built-in on every Steam. You can basically press two buttons and stream from your desktop to laptop if both have Steam with same accounts logged in.
> Tangentially it almost feels like steam could make a stadia like thing work. They have most of the moving parts including crucially, the bit google didn't, an established base of customers. Tomorrow steam could introduce a "play your games anywhere on any hardware" feature and no one would be surprised.
Already possible. While not so optimized as Games-on-whales.
A truly headless solution with a web ui would get me really interested.
VPN having issues, can't connect to any of my stack? Atleast I have a desktop on my LAN I can remote into...from my phone...
Basically anytime I have network issues while I'm away, reliable Steam Link connects me back to my infra ~97% of the time.
For the record, I always wondered why I couldn't do something like this with whatever magic is happening under the hood with Syncthing.
I've been doing networking related things for over 20 years, and it's still wild what doesn't click for me...
So if I used sunshine, and streamed a game, the display of the box running sunshine would be showing the game? and this moonshine allows us to do away with that, to be able to run headless, or to run multiple games at once or something?
Is that correct?
Is it just a new implementation? is that it?
[EDIT] all answered here: https://news.ycombinator.com/item?id=48976789
If you have claude code installed (or ssh access for it), you can ask it to investigate your entire boot chain. It can find and fix it in 5 minutes.
On windows, is it possible to use the server at the same time as someone is remote gaming? Most virtual display solutions I found just turn the server display off.
Windows requires an active user session with a connected display(physical or virtual) in order to build a desktop to render something. RDP can create a backgorund session, but on non-Server editions of Windows, you can't have a background RDP session while you are using it. It only allows one active session unless you patched the RDP service.
Nothing seems to do exactly that, though this (moonshine) seems like it might be the closest yet.
Can it run a desktop environment as the "Application" that it's streaming?
It took a fair bit of iteration to get my setup to the point where it mostly works the way I like, but it's been pretty stable for months now. I game exclusively on my handheld streamed from my desktop, and on my local network the input lag is pretty consistently low enough that I don't notice any difference from when I had tried to play things locally on SteamOS, only I can easily max the graphics settings on most games I play (and on the rare ones that do struggle, there's often not a ton of downside to lowering the resolution a bit due to the handheld only being 1200p).
What was the motivation? Games on Whales seems to work perfectly in my experience.
Does anyone happen to know how to make a Windows machine, the extended display of a Linux machine? Both machines are on the same network.
I'm looking to use a Windows laptop as a mere HDMI monitor for the Linux laptop. I don't need gaming/streaming requirements. Like, can anyone list our options in 2026 as the parent comment did?
I assume one can use this Moonshine on the server (Linux laptop) and run Moonlight on the client (windows laptop)?
At least on Sway (and I imagine other wlroots-based compositors) it's very easy to do: create a virtual output and start a VNC server attached to it. Start your vnc client on windows. A comment I posted 5 years ago: https://news.ycombinator.com/item?id=25892128
The comment linked above is on the topic of Deskreen, which is a tool that does that.
Funilly, I also commented something similar there: https://news.ycombinator.com/item?id=34010970 the article explains how to do it on a lower level (pretending a display is connected to the GPU), works under X11 too.
A few days ago, an update locked me out of my server. I used a cheap USB HDMI capture card to use my laptop as a screen, which worked very well: that could be another option.
Then I guess that there is this option, which is new to me. It feels like this could be a toogle in sunshine, somehow :)
About Apollo, someone started a fork of Sunshine to be the equivalent of Apollo (with virtual displays) for linux, it's called Polaris https://github.com/papi-ux/polaris (nb, it's not the apache polaris). It's very Alpha right now and the UI feels wonky but it's promising.
Those implementations don't have access to the low level encoding Nvidia has.
There is a rumour, that they did this because of GeForce now, because there never will an open source implementation/ service competition for GeForce now.
Steam has had good built-in streaming for a long time.
Hi, creator of Moonshine here.
I'll try to answer some common questions here instead of replying the same thing everywhere:
What is it?
At it's core it's similar to Sunshine but with one important difference: Moonshine creates its own compositor and does not rely on an existing desktop environment. The benefits:
- You do not need a running desktop environment: it can run headless.
- The compositor is created with any resolution and any refresh rate, without requiring a dummy plug.
- Because Moonshine controls the compositor, it has HDR support out-of-the-box, even if your monitor does not support HDR (ongoing development, it works in the games I tested).
- If you do have a running desktop environment, you can keep using it while streaming a game at the same time.
On a more technical level: I like the narrow focus that Moonshine has. Only one encoder (Vulkan), only one OS supported (Linux), no GUI, no compatibility with old Moonlight clients. The codebase is intentionally "lean". Of course this also has disadvantages like requiring semi-recent GPUs & drivers, only working on Linux and newer Moonlight clients, but I can live with that.
Why create it?
The short answer: a lazy girlfriend and a stubborn Linux user.
The long answer: Moonshine is a hobby project that I've been working on for a few years (first commit goes back to 2022). It was (and still is) a fun exercise and helped me learn a lot, which if it never became functional would have been a nice outcome already. In fact, in earlier README's I advise people not to use it because at the time it did what Sunshine does but worse. I removed that section when I started adding features that made it different from Sunshine.
Should I use it?
Today I would say to a new user: use Sunshine, there's tons of guides and online information and it will likely work fine for you.
If you like tinkering and trying out new things: sure, why not :).
While I haven't tried this yet, I do have a Bazzite box that would be a good fit. I wouldn't treat the rough edges as a deterrent the way we have in the past.
I much prefer the idea of this where I don't have to worry about resizing the existing screen.
[0]: https://bsky.app/profile/philpax.me/post/3mqzrgzitm22f
Comparatively, Moonshine "just worked". Claude set it up, porting across relevant settings from Sunshine, I connected to it, punched the client pairing code into the server, and then I was able to play Clair Obscur on my TV without being logged into my workstation. Pretty cool!
I understand (well, "guess" more than understand when it comes to graphic stack in Linux) that it being it's own compositor probably means running a full desktop environment in it is infeasible, but a good way to run software remotely is painfully missing in Linux right now, even one app at a time. The built in servers in kde/gnome are problematic in general and require the monitor to be turned on.
The only downside was that the game had to be running, visibly, on the screen of the desktop machine, meaning the desktop is unusable for anything else - ie. if someone else wanted to play the game while I was working on the desktop.
This appears to solve that. Sunshine/Moonlight was already cake with a fair layer of icing. This is a sprinkling of glacé cherries on top. I love glacé cherries.
Tricky was probably my favorite, but they were all great.
I can’t have played it in fifteen or twenty years but I still think about Tokyo Megaplex every month or two. It tapped into something deep in my brain.
Thanks for the reminder of it. I won’t know what heaven looks like until I’m at its gates, but when I die, I hope I get to ascend via that weird updraft tube, and ride those red and white candy cane rails for eternity. If not, God might have missed a trick. What an incredible piece of work that game is.
On a big screen TV with the upscaled graphics made it feel a lot less like retro-gaming too.
1. Connect my Dualsense controller to my macbook
2. Open moonlight on my macbook
3. Connect to my gaming desktop in full screen mode
3. Launch my AAA game on Steam
4. Profit
Over Wifi 7 I get basically no discernable lag, which was crazy to me the first time I tried it. I also have a Minisforum attached to my large screen TV and the process is identical except I push a different combo on the Dualsense controller to connect to the Minisforum. Because apollo saves settings, I can pretty seamlessly switch between the two with basically no issues.
Every time I've tried PC gaming on undersized screens, every single inch makes a big difference to the immersiveness and reduced eye-fatigue. It just ends up being something I have to put down early because of that. 8 inch is the smallest I can go where the compromise makes sense.
So does this create like a virtual desktop? How does that work? Is this just a separate "screen" or is this more like an entirely separate compositor instance (if thats the right term here)?
> Isolated streaming sessions: Each stream runs in its own compositor, completely separate from your desktop environment.
So yes, a compositor per session. I love the idea of a gaming box that can host multiple instances; that would be very very good.
We needed an old version of Ubuntu hence the VM. And gpu pass through is needed for gazebo simulations.
I started with RDP but the desktop was super laggy and unresponsive. Sunshine/moonlight has made it usable.
scales nicer for multiple clients, keeps dependencies far away from my host
and lets me use NvFBC for lower latency, which yes you can easily patch onto consumer nvidia gpus
Although I can't use my PC at the same time as streaming, I'm really happy with my janky setup for now, but kinda really want to try this!
Perhaps the first thing I would recommend is Steam's built-in Remote Play feature along with their apps. This is the most dummy-proof method, though you can get better/more customizable results with Sunshine/Moonlight and of course you aren't tied down to Steam if you are using Sunshine/Moonlight. (Not that being tied down to Steam is particularly limiting since Steam can launch non-Steam applications and games)
There are a lot of YouTube guides out there if you prefer that way, or another way to go is to have an AI help you.
For example, I had some trouble recently getting my streaming setup to work and I just kept asking AI what to investigate, and it turned out my Linux distro software firewall was defaulted to blocking the streaming ports on my desktop system.
I recommend trying local network only to get started and only worry about Internet streaming later as that process is a little more involved. Though, maybe it's not if you already have your own home VPN like Wireguard or Tailscale.
It'll really work best if your desktop is wired. Clients being on WiFi is usually okay, especially if you have 6Ghz support...of course, wired everywhere is most ideal.
Admittedly, none of this is anywhere near as convenient as the black magic that PS Remote Play does. That is a downright incredible user experience. But still, I encourage you to give it another go!
Sunshine/Moonlight kind of works and in the desktop it works fine but when I open a game the display scales wrong on my client device despite looking fine on the host.
However, I had a cold a month or so ago and wanted to play Oxygen Not Included from the couch from my old-ass Linux laptop which couldn't run it. I set up Sunshine and Moonlight in about... 5 minutes? And it "just worked". And worked well. I was able to play perfectly, and that is including my host machine being on WiFi even though all the documentation says use Ethernet if at all possible (which ofc would be better).
It was honestly the most magical thing I've done with technology in the past few years.
Disclaimer: this was only for local/wifi streaming.
Shame it needs such a modern GPU and $feature which isn't offered by my preferred Alpine Linux. But that shouldn't detract from what it's promising.
If you go back much further your client device might just have enough horsepower to run the game you're trying to play without streaming at all!
I Googled a little to see if the GTX 1660/Ti supported Vulkan Video and found this page from Nvidia[1] that says Pascal or later, so I wonder what the blocker is in this program.
1: https://developer.nvidia.com/vulkan/video/get-started
For example, in Elden Ring an optimized 800p with mixed low to medium settings will hit 45 FPS.
On a 5700XT you’re looking at the high 90fps range for 1080p medium settings.
So it’s really in all practical purposes 2-3 times better and your steam deck has a maximum refresh rate of 90Hz anyway. On a screen that size you’ll barely see the difference between medium and ultra settings.
Something notable is that because of how math maths, 45FPS is a LOT better looking than 30FPS.
Finally, I’ll point out that anyone with hardware this old still has the option of using normal sunshine. Or you can just get a 6000 series card, the difference in cost between a 6600XT and a 5700XT is less than $50.
GoW had that advantage over Sunshine, that it allowed selecting any resolution, it didn't require hdmi connector that simulated a monitor.
Gaming is something I do to relax and I eventually decided it wasn't worth it since I had spent a week of my limited downtime messing around with codecs, latency, wifi settings, trying different apps, etc. and not gotten any kind of usable results.
I guess it was about three years ago. Have things improved since then?
There are some people who it seems to be working for, but I think it still needs a lot more work to iron out all of the issues.
In case it makes a difference, I was also using Tailscale.
I was quite excited by that, I even got a controller that could clamp on to the phone. Just couldn't get it to work reliably.
If it’s pass-through like the README makes it seem, then I’m instantly sold.
Is this basically Apollo but for Linux?
EDIT: maybe you're mixing up Sunshine and Moonshine (this project)?
https://games-on-whales.github.io/
https://github.com/games-on-whales/wolf
Note that Moonlight also has a fork, Artemis.
I'm genuinely not sure what difference Sunshine/Moonlight has vs somewhat newer Apollo/Artemis, but kind of just posting here to let folks know there are already some fairly active forks from Sunshine, the classic way to host a server for Moonlight clients.