Bringing Unreal Engine on macOS up to feature parity with Windows—progress report
Today, we’re excited to share a comprehensive update on the state of Unreal Engine on Apple platforms. Our goal is to achieve feature parity with Windows and provide a cohesive experience for users across all platforms.
The journey towards feature parity is ongoing, and with each update, we’re closing the gap between Apple and Windows platforms. We still have a lot of work ahead of us, which is why you’ll see a number of items designated as Experimental, but we are making steady progress!
The Experimental features introduced are a testament to our dedication to pushing the boundaries of what’s possible within Unreal Engine on these devices. As we continue to refine and expand our support for Apple platforms, we invite developers to explore these new capabilities, provide feedback, and join us in shaping the future.
As we strive for feature parity with Unreal Engine on Windows, we have made substantial improvements to the Metal Render Hardware Interface (RHI) on Apple platforms. Previously, Unreal Engine used the Metal-cpp library as a C++ wrapper for Apple’s Metal API. While it served its purpose well at the time, it’s long since become outdated, and has brought along a good deal of tech debt. As of Unreal Engine 5.4, we have adopted the official Metal-cpp library. This shift provides us with an opportunity to improve performance, enhance stability, and introduce new features while also addressing outstanding issues more effectively.
To demystify the device compatibility landscape for software ray tracing (Lumen), hardware raytracing (Lumen and Path Tracer), and Nanite, we’ve compiled an informative table that provides clear guidance on which Apple device supports which features.
While the community has made commendable strides in adapting Nanite for Apple Silicon M1, our goal is to ensure that the integration meets the performance and quality benchmarks that Unreal Engine users expect. Even with some of the proposed workarounds, we don’t think M1 hardware will be able to meet the quality bar, and thus it will not be supported.
With the UE 5.5 update, enabling Nanite on Macs no longer requires a complex setup or specialized builds. Simply activate the SM6 renderer in your project settings and configure your meshes for Nanite, and you’re ready to experience all of that Nanite goodness. Please keep in mind that SM6 requires macOS 15.x+.
Our journey towards optimizing rendering performance has also led us to explore initial support for Metal Shader Converter. By directly converting from DirectX HLSL Intermediate Language (DXIL) to Metal shader intermediate representation (IR), we aim to minimize the number of transformations. We hope that this will lead to performance improvements as we refine our integration with this tool, but it is still considered Experimental, and we’re still collecting data.
Unreal Engine 5.4 marked a significant milestone with the introduction of iOS Simulator support as an Experimental feature. However, this release doesn’t come with pre-built binaries, so those looking to try out this feature will need to build the Unreal Editor from source.
While the simulator’s feature set is comparable to that of an Apple A8 chip, it still enhances productivity by enabling development, prototyping, and testing on a vast array of devices, including the latest M1 MacBooks.
For an in-depth look at how to use the simulator, along with instructions on how to build it, see our follow-up EDC post.
Xcode uses privacy manifests to summarize what kind of data your app collects about its users and why it collects that data. This includes data collected by your own code as well as third-party SDKs you are using. When you distribute your app, Xcode combines the privacy manifests for your SDKs and your app into a single privacy report, making it easy to provide users with transparent information about your app’s privacy practices.
UE provides default privacy manifests in the following locations:
Projects using additional privacy functions need to provide an additional PrivacyInfo.xcprivacy file in the location specified by their UE project settings. By default, these are:
For more information, refer to Apple’s documentation on Privacy Manifests.
Since Unreal Engine 5.4, we’ve shipped with Experimental support for Apple Vision Pro, as mentioned in our forum post. While we originally only planned to support the Full immersion style, visionOS 2.0 opened up support for a Mixed immersion style with Metal rendering and we added Experimental support for it in UE 5.5.
To get up and running with Apple Vision Pro, check out our quick start guide.
We look forward to seeing what the community comes up with!
Anti-aliasing performance: The default anti-alias mode, Temporal Super Resolution (TSR), is currently hitting software and hardware limitations on Apple Silicon, making its runtime cost less optimal than on other platforms. We are looking into this, and hope to improve the runtime performance in future releases. In the meanwhile, we recommend that you switch to another anti-alias mode; you can do so by searching in your project’s settings for “Anti-aliasing” and selecting an alternative method.
That’s it for now! We hope you’ve found this update useful. And remember, we’d love to hear your feedback on the forums.
How to install Unreal Engine
Download the launcher
Before you can install and run Unreal Editor, you’ll need to download and install the Epic Games launcher.
Install Epic Games launcher
Once downloaded and installed, open the launcher and create or log in to your Epic Games account.
Get support, or restart your Epic Games launcher download in Step 1.
Install Unreal Engine
Once logged in, navigate to the Unreal Engine tab and click the Install button to download the most recent version.