Tech Blog

January 31, 2025

Bringing Unreal Engine on macOS up to feature parity with Windows—progress report

Animation

Apple

Architecture

Features

Film & Television

Games

Mobile

XR

macOS

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.

At a glance

  • With the introduction of Fab, there’s now a lot more content available for macOS, ready to be downloaded and used in your projects
  • We’ve raised the minimum system requirements for runtime targets and the Unreal Editor on macOS to version 13.x. This sets the stage for better integration with Metal Shader Converter (MSC) and meets the requirements for XCode to enable Vision Pro support.
  • Our ongoing refinement of the Metal Render Hardware Interface (RHI) has resulted in support for Shader Model 6 (SM6), which brings Nanite to devices powered by the M2 chip and beyond, without needing to recompile the Unreal Editor or change defines—just click a button.
    • SM6 requires macOS 15.x+.
  • We’ve added Experimental support for Apple Vision Pro’s Full and Mixed immersion styles, enabling creators to explore the full potential of augmented reality on Apple devices.
  • We’ve introduced Experimental support for the iOS Simulator, providing a valuable tool for testing and development on iOS within Unreal Engine.
  • UnrealBuildAccelerator (UBA) is Epic’s tool that enables distributed compilation. UBA agents support both Intel and Apple Silicon-based hardware.
  • Since Unreal Engine 5.4, we’ve relocated Unreal Engine’s menu from the system menu bar to within the UE window itself. This design change not only unifies the user experience across all platforms, but also unlocks a suite of previously platform-specific features, enhancing the overall usability and functionality of the Unreal Editor.
  • We have addressed one of the most prevalent and frustrating issues faced by our users: the “NavigateToSource” crash. A whopping 25% of crash reports on macOS were due to this bug, and it has finally been eradicated.
    • We’ve also improved our CrashReporting, which has helped us track down some of the more difficult-to-reproduce issues, and we continue to improve stability.

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.


Rendering updates on Apple platforms

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.


Lumen, Nanite, and ray tracing compatibility

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.

UE5 on macOS Lumen, Nanite, and ray tracing compatibility

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+.


Metal Shader Converter

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.


iOS Simulator support

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.

Unreal Engine on macOS iOS Simulator support

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.


Privacy manifests

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.

Unreal Engine on macOS privacy manifests

UE provides default privacy manifests in the following locations:

  • macOS: Engine/Build/Mac/Resources/UEMetadata/PrivacyInfo.xcprivacy
  • iOS, tvOS, and iPadOS: Engine/Build/iOS/Resources/UEMetadata/PrivacyInfo.xcprivacy

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:

  • macOS: /Game/Build/Mac/Resources/PrivacyInfo.xcprivacy
  • iOS, tvOS, and iPadOS: /Game/Build/IOS/Resources/PrivacyInfo.xcprivacy

For more information, refer to Apple’s documentation on Privacy Manifests.


Apple Vision Pro

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.

Unreal Engine on macOS Apple Vision Pro support

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!


Performance

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.

Unreal Engine on macOS anti-aliasing settings

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 instructions

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.

Watch how to install

Looking for Unreal Editor for Fortnite?

Get up and running in Unreal Editor for Fortnite from the Epic Games launcher.

Download UEFN