Epic Games'
Unreal Engine is a popular 3D game engine that’s helped enable innovation, inspiration, and high-quality immersive experiences for the Meta Quest Platform. With the release of Unreal Engine 5 (UE5), developers now have even more tools available.
UE5 includes many significant feature upgrades and architectural changes. Meta engineers recently completed the work necessary to transition to UE5. So today, we're announcing official Meta support for Unreal Engine 5.1.
You don't have to take any immediate action at this time. Instead, we’re sharing this blog post to help you understand the current status of our Meta XR support for Unreal Engine. We also want to inform you about our plans to support UE4 and UE5 in the future.
Here’s What's Changing
- v49 will be our last update containing new features for UE4.
- v55 will include our last patch for UE4 (currently scheduled for June 2023).
- VR Tech Support will no longer support tickets related to UE4 after we release our final UE4 patch in v55.
- We will not release any new features or routine bug fixes for UE4 after v55.
What This Means for You
- We recommend not upgrading your version of Unreal Engine if you're in the middle of a project.
- You can still distribute apps to the Meta Quest Store or App Lab using UE4.
- Your apps won't change if you continue using UE4; however, we will no longer provide new features to the Oculus fork or plugin.
- Architectural changes may cause minor app performance issues if you upgrade to UE5, depending on your app's configuration.
- We will support critical bug fixes until the end of 2023.
We want to support you throughout this transition, and you don’t need to take immediate action. We’ll also continue to make our UE4 resources, such as documentation and our GitHub repository, available for developers to reference after support for UE4 is scaled back.
If you're ready to develop Meta Quest apps with Unreal Engine 5, you can start by viewing the
documentation. We understand you may have questions about developing on Unreal Engine. We hope the FAQs below will help you feel confident about this upcoming change.
FAQs
Why should I wait to update to UE5 if I’m in the middle of a project?
We recommend waiting to update your engine to maintain continuity throughout your development if you have all the tools and features needed to build your current project.
Please be aware of these important changes in the engine:
- OpenXR is the only VR API supported by Meta in UE5.
- We changed the plugin's name from OculusVR to MetaXR.
- PhysX is still present, but we’ll deprecate it in a future release. Unless you have reasons to stick with PhysX, such as carefully tuned content or usage of low-level APIs that don't have a Chaos equivalent, we recommend using Chaos physics moving forward.
- UE5 doesn't include support for hardware geometry tessellation. Nanite is the intended substitute for this functionality—however, Nanite is not available on Meta Quest.
- We’ve deprecated some of the blueprint nodes. Upgrading blueprints may cause them to behave incorrectly. We recommend manually reviewing all blueprints after upgrading.
- Significant changes to the main rendering pipeline have occurred, and some apps may experience a regression in performance. There are two changes that we know of at this time that are potentially contributing to this regression:
- UE5 forces large world coordinates (LWC) instead of using direct positioning. LWCs multiply all positions by a TilePosition (int vec3) to support big worlds without precision problems. Please note UE5 doesn’t remove the code it generates by default.
- Instead of using emulated uniform buffers (EUB), where a single UBO contains the compact attributes for all view/light/material uniforms, each buffer is mapped directly to the GPU. This mapping means you’ll have one descriptor set binding for the lights, one for the view, and one for the material. Also, the system doesn’t compact data within each binding set. Because the data isn’t compacted, access patterns have less cache coherency. For example, the viewMatrix might be at layout(offset = 0) while gameTime might be at layout(offset = 292).
- We aren’t porting late latching from UE4 to UE5.
- When porting projects, we don’t migrate the DefaultEngine.ini settings for the MetaXR plugin. You can reconfigure these settings or copy entries from the section [/Script/OculusXRHMD.OculusHMDRuntimeSettings] to [/Script/OculusXRHMD.OculusXRHMDRuntimeSettings] in the file.
- Ensure that the AndroidDeviceProfileSelector plugin is enabled. Apps will hang when launched on the headset if the selector is disabled.
- We recommend you disable the AndroidFileServer plugin. It can cause odd behaviors and sometimes hangs depending on your project setup.
- The Unreal Lightmass tool is no longer built by default because Unreal’s default workflow now uses Lumen. Therefore, you must build the Lightmass project manually if your project uses baked lights.
- UE5 removed CPU occlusion culling. Apps that rely on this must implement a custom occlusion system or switch to GPU occlusion culling. GPU culling has a few significant downsides you need to be aware of:
- UE5 renders the results a frame late, so you’ll see emptiness for one frame if you phase through a wall.
- GPU culling causes more work for the GPU for things the system used to do on the CPU, which can potentially result in worse performance for very GPU-limited apps.
How long will Meta support shipping apps to the Meta Quest Store and App Lab using UE4?
Using UE4 won’t restrict your ability to submit and distribute apps on the Meta Quest Store and App Lab.
Will I still be able to update the public Oculus Unreal GitHub Repository after the last update for UE4?
You’ll continue to have access to our public GitHub repository for UE4 and UE5 after the v55 update. In addition, we’ll continue to accept pull requests for critical fixes that developers discover.
What should I do for UE4 issues instead of contacting VR Tech Support?
We recommend visiting the Unreal Engine Forums or posting to our fork on GitHub to find support for UE4-related issues.
Is Quest 1 supported?
The short answer is no—however, we’ll be providing separate binaries for each device in March, so developers who want to continue to support Quest 1 will have an upgrade path.