Adventures in Chrome OS cloud gaming

What is cloud gaming?

Let’s start with the basics: Cloud gaming is a new paradigm in the market, wherein a user rents a remote server, hosted in “the cloud”, instead of building a PC. This server, for the purpose of cloud gaming, requires a powerful CPU, a dedicated GPU, 12+ GB of DDR4 RAM, and an SSD large enough to contain the games the user wishes to install. That said, you’re not renting the games, and you’re not renting a console — you’re renting an interface to a machine on which games you already own will run.

Traditionally, the machine will have some version of Windows 10 installed, as that provides the largest quantity of supported games. Some cloud services allow you to “bring your own” Windows 10 license, but most bundle Windows 10 with the server rental fee.

There are a number of cloud gaming server providers, including AWS, Paperspace, Shadow, and LiquidSky. Microsoft and Sony are rumored to be releasing next generation consoles that feature game streaming technology. There are even hints that Google may get into the game with a platform known only as Yeti.

The client

So, you have a shiny new cloud gaming rig. But how do you access it? Right now, the answers are mostly proprietary and vary based on whose service you’re paying for. The exceptions are Parsec and Rainway, two services that provide software that runs on (almost) any Windows 10 cloud gaming host and pairs with a piece of client software to stream the games to you. Parsec and Rainway can also be run on your own home desktop PC, assuming you have the necessary hardware and network speeds.

Parsec provides a desktop client, whereas Rainway opts for an HTML5 web client that runs in most modern browsers. (Hint: Internet Explorer is not a modern browser.) In my personal experience, Parsec’s setup seems to provide a more reliable streaming experience with less mandatory configuration to boot. Parsec also provides Android mobile and Android TV clients, something Rainway is lacking with its web-centric model, although they promise an Android app in the near future.

Paperspace and Parsec

Image via Paperspace Help Center. Used under Fair Use guidelines.

Paperspace, in my experience, seems to provide the most “bang for your buck” with a cloud gaming rig. Parsec, for its part, will let you rent a server directly from them and based in Paperspace’s data centers. But for someone who wants to experiment a little more, like myself, renting the server through Paperspace directly with Parsec preinstalled is the best option. Paperspace’s customer service has been great, and they even issued me a partial refund of my subscription when their servers went down once in the past.

The caveat with renting directly through Paperspace is that their GPU servers, including the Parsec image, require a ticket submitted to their customer service with an explanation of intent. Simply telling them that I wanted to run a Parsec cloud server was enough justification for them, and now I can create and destroy as many cloud gaming rigs as I want, need, and/or can afford.

Chrome OS and Crouton

Getting the Parsec Android client running on Chrome OS is fine and all, but the mouse and keyboard input is borked thanks to the way Android interprets mouse input; it generally doesn’t expect it at all except by touch gestures. So to get my cloud gaming rig up and running on my Chromebook (or Pixelbook in my case), I resorted to switching to developer mode on Chrome OS. (The instructions for switching to developer mode differ by Chromebook or Chromebox model.)

Once in developer mode, I installed Crouton through the Chrome OS shell. I created my first chroot in the default Ubuntu 16.04 configuration, only to run into a conundrum: Hardware acceleration for Parsec only works in Ubuntu 18.04 and higher due to their requirement for the next-generation VA-API software.

So I installed Ubuntu 18.04 in a chroot, only to discover that the Chromium browser doesn’t work properly in 18.04’s XFCE interface. (XFCE is the Crouton default.) I had to install Gnome to get it to work properly. Once that was up and running, it was time to install the Intel graphics drivers. After they were installed, I was able to launch the Ubuntu Parsec daemon (backend client interface) with the command parsecd app_daemon=1 . Simply launching the Chromium browser from within the chroot and visiting https://ui.parsecgaming.com/ got me up and running!

Other notes

Bluetooth LE has limited support on Chrome OS, so the new Steam Controller firmware does you no good if attempting to run the Steam Link Android app in Chrome OS. The controller connects initially, but disconnects repeatedly afterwards.

Other Bluetooth gamepads I’ve tried work with varying degrees of success in Chrome OS.

Gamepads from 8Bitdo in Bluetooth mode don’t seem to work inside a chroot at all. They’re registered in the device list, but input doesn’t register.

Using a USB cable to connect those same 8Bitdo gamepads provides proper input recognition inside the chroot.

Network speeds and latency (ping) have a great deal of effect on the quality of the cloud gaming stream, but speeds equivalent to 4G LTE should suffice in most cases.

Finally…

If you want/need specific instructions for getting Chrome OS up and running as a cloud gaming client, feel free to comment on this post. I’m more than happy to assist in any way I can. I’m a programmer by training, and an API support technician by profession, so this kind of experiment is my lifeblood.