Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • Since this doesn't take over the desktop (per the FAQ) this sounds amazing for headless machines.

    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.

  • That's not too bad, being able to go all the way back to an RTX20XX or RX 6000 series is pretty old for the kind of person looking to stream some games.

    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’m currently using sunshine and moonlight for remote access to ros2 development VMs with passed through GPUs.

    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.

  • I don't remember whether it was this or "sunshine", but game streaming from your own PC hasn't been the same since it was simply "turn on the Nvidia feature". It was way too difficult to figure out how to make it work the last time I tried and I gave up and haven't tried again since. For all the good they do otherwise, FOSS devs just never seem to get usability right.
  • You should try it again. I had a similar experience to you about 5 years ago and completely gave up on game streaming.

    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.

  • I hope you do try again! It's actually become an incredibly wonderful experience ever since the "turn on the Nvidia (proprietary!) feature" days. Nvidia's implementation as far as the software experience was convenient but also bad in a lot of ways compared to what we have today.

    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!

  • I've tried several times to set this up on my Steam Deck from my PC, and I just can't get it to work reliably. 9/10 times it just opens to a black screen. I've followed 20 different guides on forums, on reddit, on facebook - nothing. The only way it works reliably is if I don't use the virtual screen option, but then it looks all wrong as my main monitor is an ultrawide.
  • I am very happy with Moonlight/Sunshine combo. Runs neatly on my RTX 4000 Pro GPU Server. The only thing I miss is automated resolution adjustment to connected Clients, but I was able to script this with Home Assistent Windows client.
  • This is how people play Switch games on Wii U and 3DS. Emulate on PC and stream on the older systems
  • Also newer handhelds like Ayn Odin/Thor devices and similar. (They are Android)
  • Makes sense, I wrote something in Rust a few years ago to allow multi-player netplay on any emulator and it was surprisingly easy to write
  • I spent quite a while trying to set up streaming from my laptop to my phone using Sunshine/Moonlight. I never got decent results despite following tutorials that were supposed to make it all very easy.

    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?

  • I use Sunshine/Moonlight between my desktop and PS Vita. The key is that your host at least needs to be wired and ideally with low latency to your wireless router, which is hopefully modern and appropriately placed and configured for optimal transmission with the least interference - even in ideal environments wireless connections have much higher error rates (packets needing retransmission), so you only want to use wifi on the client side.
    by t-3
  • Host PC needs to be on a LAN cable and client device needs at least Wifi 6 for 1080p/60fps and up. Works perfectly in my home. Some routers are just garbage and drop packets, get or build a decent router.
  • About a week ago, I set it up on my windows machine (host) to my ubuntu laptop (client) with the help of an LLM in about 30 minutes, with an additional 15 of troubleshooting the first time I tried using it away from the LAN. It was pretty painless and worked right off the bat. And then it turned out that A) the game my friend and I were trying to play had only local multiplayer (so my host machine couldn't connect) and B) despite protonDB claiming limited compatibility, the game launched immediately with no problems natively on my laptop, so the whole exercise ended up not being necessary. But it was relatively painless.

    In case it makes a difference, I was also using Tailscale.

  • I've had it work occasionally. I had a few sessions which worked flawlessly which proves it's entirely possible for it to work, but 90% of the time I'm hit with endless weird issues, configuration problems, breaking changes in updates.

    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.

  • > Moonshine runs each streaming session in its own isolated environment, separate from your desktop. This means your host PC stays usable while you stream, and it works without an active desktop session.

    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)?

  • From the features section:

    > 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.

  • I use moonlight/apollo.

    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.

  • Does this work better than steam link? Obviously I imagine it works with non-steam games is part of the point.
  • I have a question if you don’t mind – do you also have to kill AWDL to prevent lag spikes during a streaming session?
    by hxii
  • Now try it on your phone. Playing Diablo 2 Remastered in bed on an android phone with controller attachment on 6.7" OLED 2340x1080 @ 120hz HDR is super amazing. Better than Steam Deck....phone stays cool and battery lasts forever, it's the same as watching a movie on it.
  • The Sunshine/Moonlight combo allowed me to stream emulated, upscaled SSX Tricky (PS2 game) from my desktop to an (at least 7 year-old) Android streaming box as smooth as silk.

    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.

  • Side note: I miss SSX. Such a great franchise, and sad that EA Big shut down (and that no one else picked it up).

    Tricky was probably my favorite, but they were all great.

  • Ah so this is where the influx of activity comes from..

    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 :).

  • I played with it for 10 minutes, very impressive. Couldn't get vscode to work, will try again later with different apps. (vscode is not that important anyway as it has a remote mode)

    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.

  • I think you're underselling this. Sunshine can't do any resolution on Linux. That's huge. :)
  • I discovered Moonshine last night [0] as a result of frustration with Sunshine's many flaws on Linux, and I'm loving it so far. Thank you for your work!

    [0]: https://bsky.app/profile/philpax.me/post/3mqzrgzitm22f

  • The barrier to entry for tinkering on Linux is so much lower now for anyone with a $20 Claude/Codex plan. What might have been an hours/days of fruitless head-scratching can now be done in minutes while you grab a coffee.

    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.

  • So, to sum up:

    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?