Unreal Engine 5.2 incluye ahora compatibilidad nativa con Apple Silicon y nuevos avances para macOS

Michael Prinke, escritor técnico, y Zack Neyland, programador de plataformas jefe
A partir de Unreal Engine 5.2, Unreal Editor para macOS se compila y distribuye como binario universal, ofreciendo así, en un solo paquete, compatibilidad nativa para dispositivos Mac de generaciones anteriores basados en Intel y actuales basados en Apple Silicon. Este blog técnico te explicará lo que eso supone, cómo afecta a tu trabajo usando macOS y cuáles serán los futuros requisitos para los desarrolladores que le brinden apoyo. También haremos un breve repaso de algunas de las nuevas funciones adicionales para macOS, como el acceso a más recursos del Marketplace de Unreal Engine y la compatibilidad de Experimental con Nanite, y señalaremos las limitaciones de Unreal Engine en la plataforma.
Modelo de A5 Cabriolet cortesía de Audi Business Innovation. Ya disponible para macOS en el Marketplace de Unreal Engine como parte del proyecto «Car Configurator».

¿Qué son los binarios universales para macOS?

En 2020, Apple presentó Apple Silicon, su propia serie de procesadores para los dispositivos móviles y los ordenadores Mac del futuro. Esto dio paso a una transición en los dispositivos Mac, que pasan de usar procesadores x86-64 de Intel a una arquitectura ARM64. Para hacer más fácil dicha transición, los Mac con Apple Silicon utilizan el traductor de instrucciones Rosetta 2 a la hora de ejecutar aplicaciones x86 heredadas en la nueva arquitectura, garantizando así la compatibilidad pero a costa de sobrecargar un tanto la CPU.

No obstante, es preferible que las nuevas aplicaciones se compilen como binarios universales; es decir, archivos binarios que incluyen una sección x86-x64 y una ARM64. De esta forma, es posible ejecutar aplicaciones de forma nativa en Mac basados en Intel de generaciones anteriores y en Mac con Apple Silicon utilizando solo un archivo distribuible.
«Automotive Bridge Scene» ya está disponible para macOS en el Marketplace de Unreal Engine.

¿Cuál es el estado de la compatibilidad de la versión 5.2 de Unreal Engine con Apple Silicon?

Unreal Engine, a partir de la versión 5.0, era compatible con binarios universales de Mac, pero solo si los proyectos de UE se compilaban como paquetes independientes. En Unreal Engine 5.1, añadimos la compatibilidad en Beta para ejecutar compilaciones fuente de UE con binarios ARM64 nativos, pero seguía siendo necesario usar Rosetta en archivos del editor de UE. Con Unreal Engine 5.2 lanzamos de forma oficial binarios universales precompilados de Unreal Engine al descargarlo a través del iniciador de Epic Games.
 

¿Cómo afectará esto al trabajo con Unreal Engine en macOS en el futuro?

Los usuarios que compilen Unreal Editor desde la fuente tendrán que realizar algunos pasos adicionales para compilar binarios universales, algo que explicamos más adelante. Los usuarios que trabajen con Unreal Editor no deberían notar apenas cambios en sus procesos de trabajo. Aunque, eso sí, hay algunos requisitos nuevos para poder publicar proyectos o complementos.

En primer lugar, los usuarios que usen Unreal Engine 5.2 en macOS deben cumplir los siguientes requisitos de desarrollo:
  • Versión de macOS mínima: Monterey 12.5 o superior
  • Versión de macOS recomendada: MacOS Ventura (la más reciente)
  • Versión de Xcode mínima: 14.1

Aquí se muestran los nuevos requisitos mínimos para la App Store.

En segundo lugar, en Unreal Engine 5.2 y las versiones posteriores, los vendedores que publiquen Code Plugins (complementos de código) en el Marketplace de Unreal Engine tendrán que incluir binarios universales compatibles con macOS. Esto afectará principalmente a los Code Plugins (complementos de código) que usen catálogos de terceros, como el catálogo de Amazon Web Services (lib.AWS); por ejemplo, libaws-checksums.dylib.
 

¿Cómo afecta esto a la disponibilidad de los recursos del Marketplace de Unreal Engine para macOS?

Con estos cambios y los nuevos requisitos para los recursos del Marketplace, ahora los usuarios de macOS que utilicen Unreal Engine 5.2 tendrán acceso a más recursos en el Marketplace de UE, incluidos recursos gratuitos de Epic Games como el paquete de recursos Paragon.
Ahora hay disponibles más recursos para macOS en el Marketplace de Unreal Engine, como Muriel, personaje de «Paragon».

¿Cómo puedo disfrutar de la compatibilidad de Unreal Editor con Apple Silicon?

Los usuarios que descarguen Unreal Engine a través del iniciador de Epic Games en macOS recibirán automáticamente un archivo distribuible con binarios universales. Al ejecutar una instancia de Unreal Editor a través del iniciador, usará la sección apropiada según la arquitectura nativa del dispositivo. Por tanto, si tienes un dispositivo Apple Silicon, el editor utilizará automáticamente la versión compatible.

Para crear binarios universales al compilar desde la fuente en el editor, es necesario seleccionar específicamente la arquitectura «x64+arm64», puesto que las compilaciones de las líneas de comandos utilizan por defecto la arquitectura x64 y las compilaciones de Xcode usan la arquitectura del dispositivo anfitrión. Para obtener más información sobre este proceso, echa un vistazo a este artículo en la documentación.
 

¿En qué beneficia la compatibilidad nativa con Apple Silicon al editor?

Si utilizas Unreal Editor con compatibilidad nativa con Apple Silicon, deberías ver menos sobrecarga de la CPU y una mejora en el rendimiento una vez que la traducción de Rosetta 2 ha dejado de ser necesaria.

Además, hemos pulido en cierta medida la experiencia de usuario del editor en un Mac con Apple Silicon. Esto incluye mejoras en el foco de la ventana y en la compatibilidad con la «muesca» de la parte superior de las pantallas Mac de última generación.
Escena «Infinity Blade: Grass Lands» del Marketplace de Unreal Engine ejecutándose en Unreal Editor en macOS.

¿Cuáles son las limitaciones de la compatibilidad de macOS en Unreal Engine?

Aún se está trabajando en la compatibilidad con macOS y hay importantes limitaciones notables a la hora de utilizar Unreal Editor o proyectos independientes en dispositivos macOS.
  • Nanite se basa en atómicos de imagen y garantías de avance que tal vez no sean compatibles con dispositivos Apple M1. Los Mac con chip M2 sí son compatibles con Experimental, pero viene desactivada por defecto y para activarla deben tenerse en cuenta algunas advertencias que trataremos más adelante. Nuestra intención no es otra que permitir usar Nanite con todo su potencial en dispositivos Apple Silicon en el futuro, pero, por ahora, no es compatible del todo.
  • Los recursos de Quixel configurados para usar Nanite retrocederán a las versiones que no utilizan Nanite. En todos los demás aspectos, funcionarán según lo esperado.
  • Ahora mismo, los mechones de pelo, pelaje y aspecto no son compatibles con macOS, puesto que requieren atómicos de imagen. No obstante, sí son compatibles las tarjetas y las mallas de pelo.
  • El trazado de rayos acelerado por hardware no es compatible actualmente con macOS. A consecuencia de esto, Lumen solo puede usar el trazado de rayos por software en Apple Silicon. Este tipo de trazado de rayos arroja resultados de menos calidad comparado con el trazado de rayos por hardware. Por ejemplo, los reflejos tienen menos detalle y las mallas dinámicas no son visibles.
  • Rendimiento del antialiasing: la superresolución temporal (TSR), el modo antialiasing por defecto, tiene algunas limitaciones de hardware y software en Apple Silicon, lo que hace que su coste de tiempo de ejecución sea peor que en otras plataformas. Estamos trabajando en ello y esperamos mejorar el rendimiento del tiempo de ejecución en las próximas versiones. Entre tanto, si quieres usar otro modo antialiasing, puedes hacerlo buscando «Anti-aliasing» en los ajustes del proyecto y seleccionando un método alternativo.
 

¿Cómo puedo disfrutar de la compatibilidad con Nanite Experimental en dispositivos M2?

Como primer acercamiento a la ansiada compatibilidad total de Nanite en macOS, ya se puede usar Experimental en las versiones ue5-main y 5.2 en GitHub, aunque aparece desactivado por defecto. Para activarlo, tendrás que realizar los siguientes cambios en el código fuente de Unreal Engine:
  1. Configura PLATFORM_MAC_ENABLE_EXPERIMENTAL_NANITE_SUPPORT=1 en UEBuildMac.cs (Engine/Source/Programs/UnrealBuildTool/Platform/Mac/UEBuildMac.cs). 
  2. Activa UE_EXPERIMENTAL_MAC_NANITE_SUPPORT en spirv_msl.hpp.
  3. Vuelve a compilar ShaderConductor siguiendo las instrucciones de UEBuildMac.cs.
  4. Cambia a bSupportsNanite=true y bSupportsUInt64ImageAtomics=true en Data Driven PlatformInfo.ini (Engine/Config/Mac/DataDrivenPlatformInfo.ini).

Ten cuidado al permitir la compatibilidad, pues incluye algunas condiciones. Primero: solo funciona en el hardware M2. Segundo: no garantiza el rendimiento ni la fiabilidad, ya que aún no se ha probado con exhaustividad. Como hemos indicado antes, la compatibilidad es con Experimental y se ve como un primer paso hasta lograr la compatibilidad total en próximas versiones y con futuras generaciones del hardware de Apple Silicon. Nos encantaría recibir vuestros comentarios, así que no dudéis en participar en los foros de la comunidad de desarrolladores de Epic.

    ¡Hazte ya con Unreal Engine 5.2!

    Si ya habías usado antes Unreal Engine, puedes descargar el binario universal de Unreal Engine 5.2 para macOS desde el iniciador de Epic Games. Si estás pensando en utilizarlo por primera vez, haz clic en el siguiente enlace para dar tus primeros pasos. En cualquier caso, esperamos que disfrutes de las nuevas funciones y mejoras.