Oculus has updated its UE4 Quest development tools so that developers can spend less time waiting and more time testing and iterating on their VR applications. The changes are similar in scope to recent improvements to Unity Quest development.
Because Quest is its own standalone headset, testing how an application will run on the headset itself 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 until 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.
Oculus has introduced two changes with the goal of significantly speeding up the iteration process for developers building Quest applications with Unreal Engine 4. Some of the improvements also apply to developers building applications in their own game engine using the native Oculus Mobile SDK.
Skip APK Build When Iterating on Code
The first change allows developers to skip recompiling and repackaging their game after making code changes.
Instead of requiring the APK be rebuilt to include newer compiled binaries, a change was made to the Oculus OS to allow libraries to load automatically from the application’s dataDir instead of from the installed package if a file by the name exists, when a special flag is set in the package settings and the application is debuggable.
Oculus says the option can be found in Editor Preferences > General > Experimental, and also notes that “this option bypasses the normal Android APK build logic. If any changes are made that require a new APK to be generated, such as Java changes or Android manifest changes, you will need to disable this option temporarily to allow it to be built and installed.”
The blog post also explains how the function can be used in native development environments.
Using the VR Template that comes with UE4 as a test case, Oculus says that the Skip APK Build change improved the time-to-launch by 2.95 times, from 3 and a half minutes to 66 seconds.
FASTBuild Support for UE4 Code Compilation
Oculus says it has implemented FASTBuild support, “a high performance, open-source build system […] [that] supports highly scalable compilation, caching, and network distribution.” This allows developers to speed up code compilation by distributing the work across computers on the developer’s local (or VPN) network.
The company shared instructions for using FASTBuild in its blog post, and says that the tool can speed up builds of both the UE4 editor and “any Oculus VR game projects,” which we understand to mean that it can benefit both Quest and Rift projects.
For the ShowdownVR sample, using FASTBuild distributed compilation with access to 36 threads took 13 minutes and 39 seconds compared to 28 minutes and 28 seconds with local compiling on 12 threads. A fully cached build took just 3 minutes and 30 seconds. “These timings include all preprocessing, precompiled header generation, code compiling, and linking,” Oculus noted.