Current state of Cloud Gaming
self-hosting a low-latency remote desktop
1322 Words
2025-04-23
Since the uprising of cloud gaming capabilities through Google Stadia and the like. I already wrote quite a bit about it in this post.
Potential tools to use for cloud gaming would be:
- Moonlight/Sunshine (former Nvidia GameStream)
- Parsec (requires external account)
- Rustdesk
- Nestri (still only experimental)
- VNC (does not have nice integration, CPU encoded streaming)
- SPICE (nice host integrations, CPU encoded streaming)
- RDP (nice host integrations, CPU encoded streaming)
- X Forwarding (requires very low latency network connection, as every display server message is passed through the connection)
Nowadays, I found that Moonlight works quite well, which is based on Nvidia Gamestream (which has been discontinued with Nvidia Geforce Experience, which is replaced with “Nivida App” which does not have a similar feature). However, there is Sunshine 1 which is a reimplementation of the Nvidia Gamestream and does not depend on having a Nvidia GPU or a GPU at all.
It has a much lower latency than other options, as it offloads the stream encoding into a H264 stream to the GPU as well. I don’t know comparable benchmarks, as the options RDP, SPICE and VNC also depend on the available bandwidth and I remember being able to stream quite well using SPICE as well, though I can say that Moonlight/Sunshine is a much better solution.
So let’s explore how to use it on Linux and Windows with my home Proxmox using:
- Intel i7-3370
- 16 GB RAM DDR3
- GTX 750 Ti
The steps of this are:
- install nvidia-driver
- install sunshine
- add sunshine to autostart
- set system to log on without password
- install steam/games
Linux
Using current linux distros, it is quite easy to install the latest nvidia-driver and get a system going using the non-free repositories.
Installation of Sunshine is either done through the releases or - for Fedora - using the repository:
sudo dnf copr enable lizardbyte/beta
sudo dnf install Sunshine
As mentioned in the docs.
Autostart
Autostart is a little more complicated, as it requires yum install gnome-tweaks
first, and is then easily configurable:

Adding Sunshine to the autostart programs requires to have use Gnome Tweaks
Login without password
Linux is also quite simple to configure to log in without password. Unlocking the User settings in the upper right corner and then toggling the switch “Automatic sign in” is enough here.

Setting the user to automatically login without a password is quite easy in Gnome-based Distros like Fedora 42 Workstation
Steam/Gamse
Steam is also best found in the software repositories of Fedora - though a flatpak version is available as well.
However, when starting up Steam on the latest Fedora 42, I only got a “ELF object binary architecture” mismatch, probably due to some missing 32-bit dependencies for steam.
So I was using Lutris to test my favourite game: Trackmania Nations Forever. It’s not really the best game, but I like to use it as a benchmark as it is like the bare minimum required to have some games running and it does not require signing in or using stream or something like this.
Using Lutris, installation of this old Windows game using Wine is quite a breeze and only takes a couple of clicks.
Of course, the open-source racing game SuperTuxKart is also quite a good candidate for a quick test. I installed it using the flatpak version (I think the default on latest fedora), which was not a good idea, as this did not have access to the GPU somehow. Reinstalling using the RPM version did help to use the GPU for rendering and did run very smooth.
In Proxmox, it is required to not set the GPU as the primary GPU, as it stutters otherwise.

Proxmox settings of the Fedora machine - note that the Primary GPU switch is turned off - PCIe is enabled in the advanced settings
Windows 11
Using Windows 11 with Proxmox is relatively simple nowadays, as various presets for OVMF instead of BIOS are done automatically. However, the virtio drivers are required to use a Virtio SCSI single disk, which is a little more cumbersome.
As I do not want to use an MS account here.
I do need to use the hack to enter Shift+F10
during install to open a prompt and then run OOBE\BYPASSNRO
to reboot without network restrictions2.
To utilize the NVIDIA GTX 750Ti in the VM, we need to pass it with PCI-e enabled in Proxmox - here we do need to set the Primary GPU flag - otherwise I did get the generic GPU error 43.
The Primary GPU flag can only be set if an actual display (or dummy plug) is connected in one of the ports of the GPU - otherwise this is hard to configure.
In such cases without display, it worked to set VirtIO-GPU
as a Display in Proxmox and set the adapter name to /dev/dri/renderD129
(the Nvidia GPU) in Sunshine - otherwise you get a
Failed to initialize video capture/encoding. Is a Display connected and turned on? (Error 503)
For more information about this, see here. However, fixing this did not work on Win11 for me, which still always complained about not having an output with that manually chosen GPU.

Proxmox settings of the MS Windows 11 machine - note that the Primary GPU switch is turned on - PCIe is enabled in the advanced settings
Installation of nvidia drivers requires a good old visit of the driver page. Where I installed the 576.02 version, did add the GPU and rebooted.
Sunshine is installed from the releases exe and is automatically set to start on login. Putting Steam into Autostart is done automatically as well.
The only caveat is the auto logon feature, which is simply not there anymore on recent Windows 11 as the tick to set in the user administration is removed.
However, we can still enable this using regedit.exe
as shown in 3:
- go to
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
- add entry
AutoAdminLogon
with value 1 - add
DefaultUserName
and set it to your username - add
DefaultPassword
and set it to your password (same as username anyway for my test vm) - (optional) add
DefaultDomainName
to your PC hostname or domain as required
Try a reboot to check that this works.
Afterward we can use our Windows 11 VM to use Steam to play games using Steam Big Picture mode.
This also works quite well from my android mobile phone, as the moonlight app provides a gamepad overlay.
That’s it so far, I will have to try this again using a more capable GPU and upload to check if this works well to maintain a 1080p 60 FPS connection.
Update 11.05.2025
With a RTX 6000 which does not have outputs attached, this only works if there is an output configured in the VM. The following Options are available for this:
- None - does not work, as no output at all present
- Default/Standard VGA - works, Sunshine does not run on GPU
- VMware compatible - works, Sunshine runs on GPU, but only 640x480 output possible
- SPICE - works, Sunshine does not run on GPU
- Virtio-GPU - works, Sunshine does not run on GPU, except if manually set via
/dev/dri/renderD129
The latter is the preferred way generally, as it also has decent support otherwise. The games or graphics applications are running on the GPU in all cases anyway, so having Sunshine run on the GPU enables higher encoding performance. With this enabled, the Gaming experience on a Linux Host is more capable than on the Windows host.
It is possible for me to stream 1080p60 from a workstation to my home over Wifi. It sometimes stutters, but looks nice - recommended for single player or graphics applications. For latency-intense multiplayer games, it is still best to have the hardware at home.