Android game engine developers can now support Oculus Quest using OpenXR instead of Facebook’s Oculus Mobile API.
The support is currently described as ‘prototype’. OpenXR 1.0 doesn’t offer a standard Android loader, but Facebook provides one as part of its OpenXR SDK Package.
OpenXR is the recently finalized open standard for VR & AR. That means that apps built for Quest using OpenXR should theoretically also work on any future Android-based Quest competitor.
The Oculus Rift will also get OpenXR support soon. When SteamVR adds support for OpenXR, that means PC game engine developers will be able to support all platforms with one API.
Just to clear up any confusion here: OpenXR is not the same thing as OpenVR. OpenVR is Valve’s API for SteamVR, entirely unrelated to OpenXR. While OpenVR works on all PC VR headsets, it doesn’t support Android headsets like Quest and due to Facebook’s policies cannot be used on Oculus Rift store apps. Valve said last year it plans to support OpenXR in SteamVR but that doesn’t appear to have happened as of yet.
The Problem OpenXR Solves
An API (application programming interface) allows software to interact with other software or hardware. VR developers use APIs like Facebook’s Oculus and Valve’s OpenVR to build apps. The API is often part of an SDK (software development kit), and informally these terms are often used interchangeably.
The problem with the Oculus API is that apps developed with it can only run on Oculus hardware (without hacks). In addition, for developers using a custom engine, there are actually two separate APIs between Quest and Rift.
This means that if a developer wants to support all VR headsets, they need to use multiple APIs. This can be time consuming and increase complexity.
Engines like Unity and Unreal make this easier, and both are trying to separately unify VR APIs under their own new engine subsystems, but the problem still exists.
What Exactly Is OpenXR?
OpenXR is an open standard for VR/AR. It was developed by a working group managed by Khronos, a non-profit industry consortium. The working group includes the major VR companies such as Facebook, Valve, Microsoft, NVIDIA, AMD, HTC, Google, Unity, and Epic.
The API allows developers to add universal VR support to their apps, so in the future any Windows OpenXR app should technically run on any PC VR headset, and any Android OpenXR app should technically run on any standalone headset.
When OpenXR 0.9 was released back in March 2019, Facebook stated that it planned to support it on Rift and Quest “later this year“. The Rift platform actually has hidden preliminary support already.
It’s also important to note that most VR apps are built with the Unity game engine, which has not announced any plans to support OpenXR yet (Unity is a member of the consortium, though).
A few years ago, OpenXR seemed like a distant dream. But now it’s here, and soon engine developers will be able to develop for VR without worrying about what hardware they’re supporting. This should shorten the time taken to develop cross platform VR apps, and may encourage developers to jump into making VR software who were originally put off by proprietary APIs.