VR gaming in the cloud: CloudXR with Oculus Quest (Part 1)

Chris D.
7 min readMay 11, 2021
Half-Life: Alyx, a highly rated VR game that unfortunately only runs on PCs.

Virtual reality headsets and gaming has grown tremendously during the recent years, and so has the visual quality, resolution, and motion tracking capabilities. But with increased visual quality comes increased system requirements, which is particularly unfortunate with the current global shortage on chips, and in particular graphics cards.

Oculus Quest and Quest 2

The Oculus Quest 2 has become the most popular VR headset, and with the freedom you get from its capability to play games without any cables attached, it’s easy to see why. There are several amazing games that runs directly on the Oculus Quest, like The Walking Dead: Saints & Sinners and The Room VR: A Dark Matter. However, if you don’t connect your headset to a PC you will miss out on highly rated titles such as Half-Life: Alyx and Boneworks.

Playing PC VR Games

There are ways to connect your Oculus Quest to your PC to play titles on SteamVR. You can use the Oculus Link Cable, the recent Oculus Air Link, or the popular Virtual Desktop. But those methods require you to be connected to, or at least on the same local network as your PC. I have tried using Oculus Air Link and Virtual Desktop on a cloud server, but the poor image quality caused by the heavily compressed video stream as well as the input lag from the controllers make games unplayable.

If you don’t have a powerful PC in your home, you’re out of luck.

That is, until you have set up CloudXR from Nvidia.

Nvidia CloudXR

CloudXR is NVIDIA’s solution for streaming virtual reality (VR), augmented reality (AR), and mixed reality (MR) content from any OpenVR XR application on a remote server — cloud, data center, or edge.

In short, CloudXR is optimized for streaming virtual reality games and other applications from a remote server directly to your virtual reality headset. For me, it’s on par with playing games through Oculus Air Link or Virtual Desktop with the server on your local network, and is the only streaming solution that has worked well for me when running on a remote server.

CloudXR takes a little bit of tinkering to set up, but I will guide you through every step of the process.

Register for CloudXR

At the time of writing, CloudXR is in early access. This means that you have to apply for access, and wait for your application to be accepted by Nvidia. For me this was a quick process, and I was up and running in less than 24 hours after applying.

Formally the early access is for companies within telecom, network integrators, device and platform manufacturers, independent software vendors, and enterprise users and IT managers. I am not sure what Nvidia base their acceptance on, but if you’re an independent software developer interested in using the technology, I imagine you’re eligible. They do specify that you should enter your “company email credentials”, so perhaps an email address without a custom domain won’t work.

Let’s get practical.

Register an Nvidia developer account

Go to developer.nvidia.com/login and enter your email. As stated above, preferably an email with a custom domain (gmail, outlook, etc. might have a more difficult time to be accepted).

In the next screen, enter your display name, date of birth, accept the conditions, and pass the captcha.

Click the confirm link in the email Nvidia just sent you, and head back to the Nvidia registration tab. Here you have to enter some more personal details, and probably want to opt in for the Nvidia developer program to clarify that you’re a developer.

Click Submit, and you’re done!

The last step in the Nvidia developer program registration. It’s good to opt in for the developer program to show that you’re a developer.

Apply for CloudXR access

In order to gain access to CloudXR, you need to apply and have your application approved by Nvidia. For me this took less than 24 hours, but it might take longer.

Go to developer.nvidia.com/nvidia-cloudxr-sdk-early-access-program and click Join now.

Example of the filled out CloudXR SDK registration form. Please enter your own details and plans for using CloudXR.

Enter the information about how you plan to use CloudXR, and click Submit.

Now you’ll be redirected back to the CloudXR page, with a banner stating “If you have questions about your application status, please contact [email]”.
If you’re eager to try the CloudXR soon, it might be good to contact Nvidia using that email.

When you’ve been granted access, you’ll have access to downloads and documentation at developer.nvidia.com/nvidia-cloudxr-sdk-get-started.

I would suggest to continue withe setting up AWS, since this will require a few days of waiting for approval as well.

Setting up Amazon Web Services

The fastest and easiest way to get going with CloudXR is by using Amazon Web Services, or AWS. For this you need an AWS account. Registering is free, and will remain free as long as you use little resources (their so called free tier). The resources used in this guide will not be free, but both Amazon and I will be clear about the pricing invoiced. If you’re responsible and turn your virtual gaming machine off when you’re not playing, your bill won’t be very high.

Create an Account

Let’s get started. Go to aws.amazon.com and click Create an AWS account in the top right corner. You’ll be redirected to a login page, where you’ll have to click Create an AWS account once again.

Enter your email, a strong password, and an AWS username, and click Continue. Select either a business or personal account, enter your personal details, and click Continue once again.

Enter your payment card details. AWS is a paid service, and you can expect to pay around $0.7 USD per hour that your VR gaming machine is running. If you for example want to complete Half-Life Alyx, which takes 14 hours on average, it will cost you $9.8 USD.

Select phone call or text message (SMS), your country code and phone number, and call me now/send SMS, then Enter the verification code you received, and click Continue.

Even though the AWS support is incredible, you probably want to select Basic support to keep your initial costs down while experimenting. Registration is now done, and you can click Go to the AWS Management Console.

Request a service limit increase

One more thing you need to do is to request a service limit increase. By default, AWS won’t allow you to start any virtual machines (or as they call it -EC2 instances). Go to console.aws.amazon.com/support to apply for the service limit increase.

Select Service limit increase as the case type, and EC2 Instances as the service type.

You then need to make a decision on which region you want to start instances in. Find the region closest to you (for example, I’m in Oslo, Norway, so Stockholm, Sweden is the closest region to me) and select a virtual machine that you’d like to use.

Then chose the region you selected for your virtual machine, All G instances (these are the instances with an Nvidia graphics card) as the primary instance type, and the number of CPU cores of your selected virtual machine type.

Choosing a virtual machine type

The recommended virtual machine type for running CloudXR is the g4dn.4xlarge (16 CPU cores and 64 GB RAM, around $1.9 USD per hour), which might be a bit too powerful for our needs. A suggestion would be to go for the g4dn.xlarge (4 CPU cores and 16 GB RAM, around $0.7 USD per hour), which should fulfill the requirement of most games. A middle way is the g4dn.2xlarge (8 CPU cores and 32 GB RAM, around $1.1 USD per hour).

They all have a Nvidia Tesla T4 GPU, which is roughly equivalent to an Nvidia RTX 2070 super or 2080. This should be plenty for VR gaming.

Enter the number of CPU cores as the new limit value. It might be good to enter a slightly higher number than you intend to use, in case you change your mind later on. But if you go too high, you might have to wait longer to get the limit accepted.

Finally enter a short description of what you want to have increased under the case description, and click Submit.

The service limit increase can take a couple of days, so it’s good to start the process at the same time as you apply for Nvidia CloudXR access.

Next steps

This first part of the series on cloud VR gaming has taken you through the first steps in getting up and running with Nvidia CloudXR on AWS and Oculus Quest. Once you have been granted access by Nvidia and Amazon, you can head to part 2 to install CloudXR on AWS, and later to part 3 to install CloudXR on the Oculus Quest.

Part 1, Applying for CloudXR and AWS
Part 2, Installing on AWS
Part 3, Installing on Oculus Quest

--

--

Chris D.

Researcher in sensor data and IoT, lover of Python, friend with C. Also very enthusiastic about VR and cloud.