Oculus Go Development

On 6/23/20 Oculus announced plans to sunset Oculus Go. Information about dates and alternatives can be found in the Oculus Go introduction.

Oculus Quest Development

All Oculus Quest developers MUST PASS the concept review prior to gaining publishing access to the Quest Store and additional resources. Submit a concept document for review as early in your Quest application development cycle as possible. For additional information and context, please see Submitting Your App to the Oculus Quest Store.

Improve Compile Times for Unreal Engine with FASTBuild

The Unreal Integration for Oculus now provides a distributed code compilation solution based on Unreal_FASTBuild, which is an open source build system intended for distributed compilation. The FASTBuild implementation can help you to improve the build times for large code bases by using distributed Windows computers to build project code in parallel. You can use the Oculus integration for FASTBuild to build your projects with either MSVC or Clang.

Implementation Features

The Oculus implementation is based on Unreal_FASTBuild, but has been modified to work for newer MSVC toolchains and to support Clang.

FASTBuild relies on a host computer that starts the compilation process and one or more distributed or worker computers to complete the compilation in parallel. With the Oculus solution, Unreal compile actions are processed to determine the correct compiler tool chain to generate for FASTBuild, and to rewrite any command line parameters to match the FASTBuild requirements. Any non-compile actions are run on the local host machine, such as generating pre-compiled headers, linking libraries, or generating final binaries.

FASTBuild doesn’t support multiple outputs so build results are provided after a build has completed in the FASTBuild report file. This means if a build is cancelled or does not complete for some reason, these results are not saved. In addition, FASTBuild provides built-in caching support for code compiles where object files can be retrieved from the cache if all inputs match both full file path and checksum.

There is some overhead to running a FASTBuild compile because of preprocessing to gather input files, so you should not enable it if you do not have at least one remote computer available.

To Use FASTBuild

The following steps describe prerequisites and how to set up FASTBuild.

Prerequisites

  • Windows computers accessible via port 31264 on your local network or VPN.

    Important: The FASTBuild port should not be exposed on the public internet as anyone can connect to it and run arbitrary commands, which is a potential security risk.

Set Up FASTBuild

You download and set up FASTBuild by configuring the computers you will use to compile your project.

  • Download FASTBuild and extract the binaries to a folder.
  • Add the FASTBuild folder to the PATH environment variable on each computer which will be used to compile your projects.
  • Configure each remote worker to be discovered through a brokerage location. This should be a network path accessible by the host and the worker computers. Configure a new environment variable called FASTBUILD_BROKERAGE_PATH to the brokerage location on each computer. For more information, see the e FastBuild Network Distribution documentation.
  • Alternatively, if a network share is not available, you can configure a FASTBUILD_WORKERS environment variable on the host machine with a list of remote workers host names or IP addresses separated by semicolons (;).
  • On each remote Windows build computer, also called a worker, open a new command window and run FBuildWorker.exe. You may be prompted to allow it through the Windows firewall.
  • Use the FBuildWorker app dialog to adjust the idle settings and the number of CPU cores on each worker. The following image shows an example.

FASTBuildWorker

You should now be able to generate the FASTBuild config file for code compilation, and distribute tasks to remote workers.

Note: UE4 prioritizes IncrediBuild over FASTBuild if both are installed, so you may need to uninstall IncrediBuild for FASTBuild to be used.

If you run into issues, see the Troubleshooting documentation on the FASTBuild site.

You can optionally use FASTBuild Dashboard, another open source project available on GitHub to visualize the builds.