Oculus has introduced three changes to significantly speed up the iteration process for developers building Quest applications with Unity.

Because Quest is its own standalone headset, testing how an application will run on the requires packaging the application and then deploying it to the headset before being able to test it. Because this process can take a few minutes from the time you start packaging to the time you get to see your app in the headset, it’s very time consuming to test small changes. Iteration time—how quickly one can make changes and then see them—is a key factor in the efficient creation of any media. For developers building Quest applications, the faster the time between making changes and testing them, the more time they can spend honing their applications to be polished and perfromant.

Dev Shares Crash Course on VR Game Optimization for Oculus Quest & Mobile Hardware

Oculus says long iteration time when building for Quest is a top pain point brought up by developers. The company has introduced three improvements for the Quest Unity integration which can drastically reduce iteration time. Two of the three changes are available with Unity 2018.1 and later, though one requires 2018.2 or later.

OVR Build APK and Run

The first is ‘OVR Build APK and Run’, a command which employs a cache to speed up the time it takes to package the app. Oculus says this method makes the same APK that would come from the normal ‘Unity Build and Run’, but does so 10–50% faster.

Image courtesy Oculus

OVR Quick Scene Preview

The second is ‘OVR Quick Scene Preview’ which automatically divides projects into multiple asset bundles and uploads them to Quest. After making changes to the app and using the command, only the bundles which contain changes need to be uploaded to the headset.

Image courtesy Oculus

Oculus tested OVR Quick Scene Preview with three published Quest apps—Beat Saber, Dead and Buried 2, and Superhot VR—and found that it drastically improved iteration time by more than 80% for each app.

Shader Stripping

The last change is what Oculus calls Shader Stripping (this one requires Unity 2018.2 or later) which can speed up both the ‘OVR Build APK and Run’ and ‘OVR Quick Scene Preview’ processes. Unity applications running on Quest only load Tier2 shaders, Oculus says, which means that it’s a waste to spend time packaging shaders of any other tier.

Image courtesy Oculus

Oculus also offered up an explanation for when developers should use ‘OVR Build APK and Run’ or ‘OVR Quick Scene Preview’:

OVR Quick Scene Preview is for fast iteration on scenes and assets and does not build an APK that is representative of your final project. As you are developing your project, OVR Quick Scene Preview is useful for reducing iteration time. When close to shipping or when wanting to see a closer representation of what your final project will look and run like, use OVR Build APK and Run. Both OVR Build APK and Run and OVR Quick Scene Preview build in development mode and should not be used to create a final shippable bundle.

For more details, Oculus points developers toward its developer documentation which has been updated with these new iteration improvements.

Newsletter graphic

This article may contain affiliate links. If you click an affiliate link and buy a product we may receive a small commission which helps support the publication. More information.

Ben is the world's most senior professional analyst solely dedicated to the XR industry, having founded Road to VR in 2011—a year before the Oculus Kickstarter sparked a resurgence that led to the modern XR landscape. He has authored more than 3,000 articles chronicling the evolution of the XR industry over more than a decade. With that unique perspective, Ben has been consistently recognized as one of the most influential voices in XR, giving keynotes and joining panel and podcast discussions at key industry events. He is a self-described "journalist and analyst, not evangelist."
  • Very interesting! As a Unity developer, I can tell you that these are super useful… developing for Android is a PITA…

  • Ruben Torres Bonet

    Here’s a quick tip: use unity addressables and host your content in a lan server

  • starchaser28

    Ha, I had never even noticed these options until after reading this. Thanks!

  • d0x360

    Devs… Please… Don’t use unity. Use ue4.

    • James Thornton Art Studio

      Most of the awesomeness of Unreal lies in the beautiful quality of it’s renderer. Most of the fancy features require deferred rendering and post processing. Until VR pixel density is high enough that MSAA is not mandatory (which requires forward rendering), and GPUs are fast enough to easily handle image effects at those resolutions, there isn’t any difference for VR. Especially not for mobile VR.

      Unity also has deferred rendering, and is stepping up their game with HDRP, but Unreal is probably still the most impressive real time renderer for non-VR graphics.

      • d0x360

        From my perspective as a long time gamer I find games made with unity run worse, loose worse, control worse and are more buggy.

        The engine seems ok for small projects but… Big ones? No. Especially not vr

        • James Thornton Art Studio

          There’s actually not many VR games made in Unreal, but the one’s I have played look and run great. Just without the amazing graphic abilities the engine is famous for.

          We’ll get there one day, though. Whatever Valve did with Source 2 allowed for volumetric lighting and image effects without the usual fps penalty. Which definitely boosted the sense of realism.

          • d0x360

            I know there aren’t but the general performance advantages means there should be. I appreciate what unity has done but it’s become… Slow

          • Sven Viking

            This may be at least partially related to a difference in dev quality rather than engine quality. In many cases it seems like the UE4 games are more commonly produced by devs and teams who had prior experience with Unreal engine, compared to the average VR game which is very often by new or fairly new developers and almost always in Unity.

            That’s not to say there aren’t differences related to engine issues, but games like The Lab (and the majority of VR games that *do* run well, really — make a sufficiently long list and you’ll find most run in Unity just due to sheer quantity) show that it’s fully possible to optimize a Unity VR game well.

            Edit: P.S. this generally applies to non-VR games also. Unity is more popular with smaller and newer developers compared to UE4.

          • James Thornton Art Studio

            @Sven Can’t tell with this format if you’re replying to me, but I work in Unity daily and have no trouble achieving great performance. Some of the new stuff I’ve been learning (for a productivity tool, not a game) is over 1000x faster than the usual solution.

            So yeah, you can get absolutely insane levels of performance out of Unity. I’m not even talking about DOTS, but that’s an upcoming example of how sometimes they unlock massive performance boosts.

          • Sven Viking

            Sounds great. Also just adding that I’m not looking down on devs who do have problems with performance. It can be tough, especially when issues are caused by some weird bug or engine quirk that doesn’t make sense. Unity certainly has several — I don’t have enough experience with UE4 to know how it compares, but I expect access to full engine source could make it easier to identify root causes.

        • kontis

          Valve’s the Lab runs on Unity.

          • d0x360

            I’m not saying good performance can’t be achieved but a significant number of unity games run poorly.

            A good example that never got fixed was the game The Observer by bloober team.

            If motion blur was set to high the game would run at like 20 fps on a 2080ti.

            If you set it to medium it looked exactly the same but ran at over 100 fps.
            It’s a stupid bug that should have been easily fixed but it’s still in the game.

            There’s also the issue of asset store games. They look and run terrible, they get falsely advertised and the sheer number of them buries most good indie game.

            So I just don’t like unity because it’s given us so much terrible.

  • Andrew Jakobs

    Don’t know why you should test each build on a Quest, just build your game on the PC and use the Oculus Link option for regular development and only build once in a while for testing it for real. No point in constantly building it and testing it natively, that’s only necessary for optimization. The major part of development is still content and that’s easily done with the Oculus Link.

    • Sven Viking

      No point in constantly building it and testing it natively, that’s only necessary for optimization.

      If nothing else, this will be very useful for optimisation though.