Set up a remotely accessible arcade gaming PC

poisonborz
16 min readSep 30, 2021

After years of teases and one-off successes like OnLive, nowadays you get remote gaming options in your face at every corner of the net with Stadia, xCloud, Luna, GeForce Now and others. But you have a strong gaming PC idling in your workroom. And/or you want to play your games from down in the living room instead, and don’t want to pay a monthly fee for that (this was my use case). Or maybe you just generally don’t like megacorps recording your every input.

Since I had my big TV in another room as my computer, I wanted to also play there — especially with local couch co-op titles that I really like. I explored a lot about how I could remotely game there while serving the games from my main machine comfortably, “arcade style”, and after I set up an HTPC I did just that. This involved a lot of niche and surprisingly hard-to-search-for problems, after which I thought a specific article would really help others. This will mostly cover the “game on another display from your Windows PC in your own home wirelessly” scenario, but I added a lot of related tidbits that it could be useful for any “high-speed over-the-network screen access” project.

Hardware

  • network speeds:
    - for using over the internet — sufficient net connection, obviously. 30/15mb should suffice, ping/response time matters a bit more, and should be below ~20ms.
    - for home networks, where you expect quality and response times similar to a physical connection: a connection that is stable ~50Mbs+, preferably Wifi6.
  • for host/from where you want to stream from:
    - Hardware: a desktop PC with a sufficiently powerful (preferred discrete) GPU. If you have integrated, you need the latest and greatest, like Intel XE or the new Ryzens.
    - OS: Windows. Sorry folks. For mac/linux hosts: try Steam Link (and not this article)
  • for client/to where you stream/play:
    - Hardware: for desktop: a sufficient GPU. Any non-ancient discrete will do (2014+), as for integrated/on-chip: newer Intel (UHD600) or any Ryzen one. For mobile, any modern smartphone.
    - OS: clients can be of all sorts, Win/macOS/Linux or mobile.

The remote PC

Applicable if you want to game remotely from a main PC. Besides the above list, I don’t want to lament on base hardware too much: I wrote a separate prequel article that might be of interest. The need for CPU performance is almost negligible (except if you also want to play content locally). GPU performance is way more important (especially at larger resolutions) but that, along with network speed requirement varies heavily based on streaming solution and resolution. For home networks, if you can’t use a convenient direct cable to the router, I strongly recommend to use at least an AC, or even better, a Wifi6 connection. Every random network speed drop will be felt by dropped frames or pixelation. If you don’t need the wireless bandwidth otherwise, you can buy a budget router that you just connect as an access point.

Peripherals

  • Mouse & keyboard — You’ll need some sort of them — maybe not for long typing sessions, but at least for logins, searching, or light browsing — which is a bit hard to do on a living room couch, the environment we’re targeting here. You should get a touchpad/keyboard like Logitech K400S — there aren’t many good alternatives right now. If you are really keen to game with a full keying/mousing experience, look around for lapboards like the Corsair LapDog.
  • Controllers — these will be probably far more important in terms of gaming gear. You can use whatever 3rd party wired or wireless controllers, even for Nintendo or PlayStation consoles. If there are any problems with detecting proper keys, the wonderful 360ce can help — it will automatically map almost any controller (from its vast database) to mimic an XBox controller.
  • Needless to say, you can just straight up use XBox controllers, which I would absolutely recommend in the first place due to general compatibility, reliability and customization — choose whatever, from XBox 360 to One, One S or X series.
  • Some peculiarities about newer wireless XBox models:
  • Don’t forget to get the dongle — while you can connect via Bluetooth just fine, triggers and vibration might not work. The connection will also be more stable and quicker. Up to 8 controllers can be attached.
  • Don’t try too much to pair it with your computer wirelessly, it’s rather slow. Simply have a USB cable at hand, plug it in, and disconnect shortly after. The controller will become instantly paired. This will spare a lot of time and frustration.

Streaming software

So this is where it’s at — although I want to stress that performance of all of the solutions are dependent on your config and network setup. Try them all and see which fits you.

Mainstream remote desktop software/protocols

VNC, Microsoft RDP, TeamViewer, AnyDesk, etc. — well, nope. While some offer higher frame rates or good image quality, these are not really capable of proper gaming use, besides maybe Solitaire. Also they offer no support for game controllers.

Steam Remote Play

Valve introduced this as the Steam Link hardware accessory back in 2015, and after adding it to a few TV-s as well, it released it as a built in software component to Steam client to be available on every platform. For mobile, you need to download the “Steam Link” app. You can stream to clients logged in with the same account (although Remote Play mode, in which you can invite others works similarly: you can just share your connection to others)

  • When connecting from a mobile client, it works the most mundane way possible: when connecting, it simply starts Steam in its controller-friendly “Big screen mode” and starts streaming your screen. You can play games as usual. Plain desktop access works by minimising Steam clicking the power button (effectively switching to desktop on the Host). It is noteworthy that (besides supporting a real controller or mouse/keyboard on the phone) the on-screen touch control layout is extremely customizable. Props there!
  • Connection between desktop computers is a bit less obvious: Steam will basically list games that are only installed on a remote client (the list of connected clients is available in Settings -> Remote play). Starting these will start the streaming. On Windows, desktop access can be gained by adding this tiny executable as a “game”. This way, you have full computer access, and with shortcuts you don’t need to launch each game one by one.

My totally subjective review: if you game, you probably already have Steam, so for this use case it is definitely worth a try. For mobile, the on-screen control options are really nice. Work/Desktop access feels too hacky. But more importantly, the overall experience is hamstrung by the rather bad streaming quality. For remote access, dips in quality makes compression artifacts appear randomly even on a stable connection, and on local networks, while quality is good, the frame rate is most often rather low. I didn’t really feel that Valve updated the protocol too much since its inception.

AMD Link

Only for AMD GPU-s. AMD’s attempt to offer something similar to Nvidia Gamestream. It only offers streaming to mobile clients with your desktop as a host. I couldn’t test this, but most of the comments and reviews I read say the quality is rather random, with problematic audio latency — if you have an AMD GPU, try, it might work better for you. Officially it doesn’t work outside a local network, you need to manually open and forward ports 58888 and 41110 on your router (research on how to achieve this).

Rainway Gaming

Rainway seems to be primarily a video streaming network, to which they added Gaming/Game sharing as sort of a free side dish. You need to download a server app to your main pc, which you can access either by their dedicated mobile apps or through their web client play.rainway.com.

  • The web version works well, and the gamepad was detected as well — sadly on a large screen artifacts/blocks are always present even on high speed LAN — it was not bothering gameplay, but wasn’t too pretty either. For work use, the webpage nicely captures mouse and keyboard within the browser window. Note that like other clients, by default only your games are present (scanned automatically, but you can add custom executables).
  • The mobile client worked flawlessly, and the frame rate was top notch. The on-screen controller layout sadly can’t be customized, although it has a serviceable “classic” form.

Remote desktop is possible, but it’s hidden by default, you have to enable it in Settings — after that, it shows up among your games. I still prefer this to manually adding each game — I can only guess that this happens for them to better track what you are playing/using at the moment?

My totally subjective review: A really passable experience. Web client is handy if you can’t or don’t want to install additional software on your client-side PC. But it also has limitations — no hotkey options or other advanced settings, as everything is limited by what’s possible from within a browser. For streaming quality it has really nice frame rates, but on large monitors and TVs artifacts become constantly visible.

Parsec

Parsec was originally a remote gaming service, which nowadays dips more into the cooperative working/professional space occupied mostly by the likes of TeamViewer, adding cool features like multi-monitor and pen support. It has an obscure social aspect called Arcades that lets you make your game sessions public, or hop into others. You install clients, log in, see your devices, and simply start streaming them. Hosting doesn’t work on integrated GPUs per my experience.

Clients follow the easy logic of “log in and see your devices”. After a login, access is easy regardless from where, rarely needing you to do manual work (port forwarding), although this was the only service that needed verification mail after each new IP/device used (great for security, though). Sadly even with a good connection you see some compression artifacts on bigger displays, and it handles very fast movements (think like scrolling text) somewhat badly. But frame rate-wise it still holds up, and it’s a reliable companion. It has a cool seamless mode that tries to maximize the actual desktop feel in terms of input capture. If you not only game, but need an actually usable high frame rate remote desktop, this is more or less your only option.

  • The desktop client has a lot of settings, although some are hidden in the .ini file. Setting quality/bandwidth usage is a bit tricky as it’s done through multiple setting values. Many keyboard shortcuts are customizable which is awesome, and sadly unique among other options here.
  • The mobile experience is ok. After connecting, you see a keyboard button (popping up your Android keyboard) besides the hideable Parsec button. Attached physical keyboard/controllers work, but it’s all a bit barebones on the UI-side — there are no on-screen controller buttons. All in all it’s serviceable, but only if you have physical peripherals attached to your device.

My totally subjective review: My recommendation for remote (over the internet) usage. I found quality over-the-net performance to be better/more fluid than others, the clients have all the bells and whistles, and it’s well geared for both gaming and work usage (although multi-monitor, and some other feats, mostly meant for graphic artists, are only available in a subscription model)

Recently Parsec was brought up by Unity (of game engine fame). While this may be a cause of concern for the future, it seems there are currently no plans to change the free app.

Moonlight (via Nvidia Gamestream)

Nvidia has its own streaming solution bundled with GeForce Experience. This can be theoretically only used with supported devices, like Shield units, not making it too much generally useful. Moonlight is an open source reengineering of this protocol, enabling it to connect its custom clients to any paired Windows PC running the Experience driver.

On the host you need to install GeForce Experience — usually installed by default with your nVidia driver. Opening it lists your (auto-detected) games that you can extend manually. You need to go to the Shield menu and enable the “Gamestream” option. For streaming the entire desktop, you should add the executable C:\windows\system32\mstsc.exe to the game list - this way Moonlight can piggyback on Windows Remote Desktop.

  • On the client you will see any hosts on your local network shown up instantly. When first connecting, you need to enter a “Shield” PIN that the Moonlight client will display to you. There are a good deal of easy to understand options, including even a cool controller “mouse mode” that you can enable with a controller shortcut. You even have an option to “wake on lan” a PC if that was previously enabled in it’s BIOS.
  • Mobile experience: there is an option for a full customizable gamepad overlay (though not as extensive as Steam’s). You can bring up the Android keyboard with a 3-finger tap (while this is way more intuitive than an on-screen button, it was hard to find out). Overall a well-rounded solution.

As seen, it all works really easily over local networks, but for using over internet, you need to possibly forward a good amount of ports.

My totally subjective review: My recommendation for local networks. The clients are full with neat helpful tricks, and quality is fantastic — over a sufficiently fast local network, it is nearly indistinguishable from actual display output.

VirtualHere

This is sort of an easter egg here. It’s not a streaming solution, but can still be a very important help utility. It essentially enables over-the-network USB — meaning you can simulate plugged in devices over LAN/internet, having them plugged in at the client, and showing up at the host. This is essential if you work with some special (input) devices outside the generic trio of mouse/keyboard/controller that streaming services usually support. VirtualHere runs on all devices except iOS. You need to download a separate USBServer and client apps to your respective devices.

Game library managers

The whats? So you have your remote machine, and you can connect to it via a streaming client. But what now? As said, most of the software above allows you to scan for your games or add them one by one. I found this rather tiresome and error-prone. So what to do? Simply stream your desktop (I’ve outlined above how, at each option) and launch all your games from there as you would any program. But browsing your games is tiresome from the couch, and adding shortcut icons also doesn’t cut for large collections. Enter the world of game managers! These are dedicated software to display your game library — by scanning or manual selection — which is kinda the same as with streaming apps, but they are far better at it, and you only need to do it once (and use the same for all streaming options). They all support some sort of “big screen” mode that displays a full-screen, enlarged, controller-friendly interface, showing games as covers, and providing easy filtering with an on-screen keyboard, akin to Netflix or AppleTV.

  • Steam — so yeah, Steam is a game library manager already. You can even add non-Steam games all you like. If most of your stuff is on Steam already (note: below options also support Steam), AND you have no problems with its Big screen mode, that’s all you need.
  • LaunchBox — maybe the most known, and most mature launcher for Windows. It has support for easy addition of emulators, complete theme-ability down to platforms or background music(!), but above that, complete scripting of what happens before and after game launches, and a complex art/media editor for how to display game entries. It’s the choice if you want complete control over the look and feel of your PC arcade cabinet.
  • Playnite — a newer, shinier open-source alternative to LaunchBox — but without a lot of its features, also Windows only. It has a separate desktop and big screen application, with reasonable base functions, simple themeability and extensive Steam integration (transferring even play times). I’d say it’s the best — if simple — choice out of the box.
  • RetroArch — Starting out as a mere emulator frontend, it now supports a lot more, even media players. It has a cool PlayStation-inspired full-screen mode by default, and some limited theming (menu drivers) to mimic other consoles. It has maybe the most extensive support for emulators, and should be the first choice of retro gaming fans.
  • Honorary mentions: Pegasus Frontend (a very new project and a bit unstable, but cross-platform and aims to support a wide selection of entries from Steam to emulators), Photon Game Manager (no active development anymore, but still usable)

Utilities for a better couch playing experience

  • If you use a directly attached external display/TV to game and you have a multi-monitor setup (or in general a more complex display constellation), changing between them (eg. you only need an external display for gaming) is a hassle. Cue MonitorSwitcher, a small utility that saves any number of configurations and loads them effortlessly. Works in the command line and has a tray icon-able app as well. Don’t forget to update your configs if you change your display layout.
  • If you switch between playing a number of small games, jumping from one to the other may be a bit of a hassle. Opening might be easy with a launcher, but to close the previous, you need to navigate back menus until you quit. So you would just hit Alt-F4 to force close (hopefully when the game is not saving at the moment). But you will soon realize that this somehow doesn’t work in all games. For this there’s SuperF4, a small util always running in the tray and is better at actually force-closing any app when you hit Ctrl-Alt-F4 (configurable). You can trigger this also from more couch-friendly methods as a keyboard, see below.
  • In the heat of the game you might want to have some shortcuts at hand (like closing the game as above, changing display output as above, running an app, or turning off the screen etc.) without turning to a keyboard. Flirc is an extremely convenient, cheap gadget I like to promote, that you can order from shops like eBay or Amazon. Being a small USB dongle, you can turn any old IR remote (like TV or Air conditioner) into a keyboard. Also very handy to control media players.
  • To not even have to reach for anything else while playing, you can also trigger keyboard shortcuts directly from your controller. This is tiny bit steeper for average users, but with this script you can achieve this. Follow the instructions on the top of the file, and you can have a small tray app that listens for controller presses.
    - By default the above SuperF4 shortcut is pressed, but you can set it to any key combination by modifying line 41. Choose keys from this list.
    - Instead of keys, you can run an application by changing the whole line 41 with something like Run, "C:\Apps\SomeApp\SomeApp.exe"
    -
    You can also change the controller keys the app listens to, by modifying line 40 with the key names you see above in the file.
    - Run Ahk2Exe after each change you made to build a new .exe file you can run
  • Borderless Gaming — a lot of old Windows games still runs in a window by default, and the only way to make them full-screen is Alt-Enter keyboard shortcut — but that makes some games crash, or at least laggy to alt-tab back and forth (because of different resolutions). This utility forces the modern “borderless windowed” mode even on archaic software.
  • Goldberg steam emulator — if you get your games from Steam, but don’t like the fact that you have to launch/log in to Steam each time to play, with some luck you can “free” them from this integration to be standalone programs. Warning! This procedure might not be legal in your country, proceed at your own risk. First you need to copy out the game folder (in the library, right click on the game -> Manage -> Browse local files) to somewhere else. Then search for a steam_api or steam_api64.dll and simply replace them for the files found in the emulator zip you downloaded. Close Steam, and when launching the game executable, it should no longer involve it — you can even remove the game from Steam. This will not work for all games (with deeper integration baked in).
  • If you play with a keyboard, you surely had the problem of accidentally hitting the Win key or Context menu key, minimizing/sending the game (or whatever fullscreen application) to the background. With the small WinKeyKiller utility you can disable these buttons.
  • If you use your Windows PC on a big display, seeing the Windows logo when booting up might seem dull. You can change this boot logo to any image with HackBGRT. Doing so should be rather safe, but Windows updates may reset the image, in which case you have to redo its steps.

Games

This could well be the easiest part — nowadays it’s very easy to grab whatever style of games from various online game stores. But if you’re specifically interested in light-hearted/party-friendly couch coop, I posted an extensive list on Reddit about my favorites.

I know the ideas above might seem steep or schematic at times, but my main goal was to give leads and ideas for power users getting into remote/HTPC gaming. All I can say is that researching this can absolutely be worth it — commonly the privilege of limited game consoles or cloud services, being able to effortlessly play favorite PC titles the same way with friends and family in the big room is a blast.

--

--