A Unreal Engine 5.2 oferece suporte nativo para Apple Silicon e outros desenvolvimentos para macOS

Michael Prinke, redator técnico, e Zack Neyland, programador-chefe de plataforma
A partir da versão 5.2 da Unreal Engine, o Unreal Editor para macOS será projetado e distribuído como um binário universal, oferecendo suporte nativo para Macs com processadores Intel de gerações anteriores e Macs atuais com processadores Apple Silicon em um único pacote. Este blog técnico explicará o que isso significa, qual será o impacto sobre seu fluxo de trabalho ao usar o macOS e quais são os futuros requisitos para os desenvolvedores. Além disso, traremos uma visão geral de outras funcionalidades para macOS, como o acesso a mais ativos da Loja da Unreal Engine e o suporte experimental para Nanite, e também descreveremos as limitações da Unreal Engine na plataforma.
Modelo A5 Cabriolet cortesia da Audi Business Innovation, já disponível para macOS como parte do projeto "Car Configurator" na Loja da Unreal Engine.

O que são binários universais para macOS?

Em 2020, a Apple apresentou o Apple Silicon, sua linha de processadores para futuros dispositivos móveis e computadores desktop Mac. Para dispositivos Mac, isso marcou a transição dos processadores x86-64 da Intel para uma arquitetura ARM64. Visando facilitar essa transição, os Macs com Apple Silicon usam o tradutor de instruções Rosetta 2 para executar aplicativos x86 herdados na nova arquitetura, garantindo a compatibilidade, mas com certa sobrecarga adicional da CPU.

Para futuros aplicativos, é preferível criar projetos como binários universais, ou seja, binários que incluem fatias x86-64 e ARM64. Dessa forma, os aplicativos podem ser executados nativamente em Macs com processadores Intel de gerações anteriores ou em Macs com Apple Silicon usando apenas um distribuível.
O recurso Automotive Bridge Scene com cenas mostrando pontes para circulação de veículos já está disponível para macOS na Loja da Unreal Engine.

Qual é o status do suporte da Unreal Engine para o Apple Silicon na versão 5.2?

A Unreal Engine 5.0+ aceitava binários universais para Macs, mas somente ao empacotar versões independentes de projetos UE. Na UE 5.1, introduzimos o suporte Beta para executar compilações de código-fonte da UE com binários ARM64 nativos, mas ainda dependíamos do Rosetta para compilações de editor da UE. Na UE 5.2, estamos lançando oficialmente binários universais pré-construídos para a Unreal Engine ao fazer downloads pelo inicializador da Epic Games.

Como isso afetará o uso da Unreal Engine no macOS no futuro?

Os usuários que recorrerem ao Unreal Editor precisarão executar algumas etapas adicionais para desenvolver binários universais, que estão detalhadas abaixo. Os usuários mencionados observarão alterações mínimas em seus fluxos de trabalho. No entanto, há novos requisitos para o lançamento de projetos ou plugins.

Primeiro, os usuários da Unreal Engine 5.2 no macOS devem cumprir os seguintes requisitos de desenvolvimento:
  • Versão mínima do macOS: 12.5 Monterey ou superior
  • Versão recomendada do macOS: versão mais recente do macOS Ventura
  • Versão mínima do Xcode: 14.1
Esses são os novos requisitos mínimos para a App Store.

Em segundo lugar, na Unreal Engine 5.2 e em versões superiores, os vendedores que publicarem plugins de código na Loja da Unreal Engine precisarão incluir binários universais para que haja compatibildiade com o macOS. Isso afetará principalmente os plugins de código que usam bibliotecas de terceiros, como a biblioteca de serviços da web da Amazon (lib.AWS), libaws-checksums.dylib.

O que isso significa em termos de disponibilidade de ativos da Loja da Unreal Engine para macOS?

Com essas mudanças e os requisitos adicionais para ativos da Loja, os usuários do macOS que optarem pela Unreal Engine 5.2 terão acesso a mais ativos na Loja da UE. Isso inclui ativos gratuitos da Epic Games, como o pacote de recursos Paragon.
Outros ativos da Loja da Unreal Engine já estão disponíveis no macOS, como o personagem Muriel de "Paragon".

Como usar o suporte do Apple Silicon no Unreal Editor?

Os usuários que baixarem a Unreal Engine por meio do inicializador da Epic Games no macOS receberão automaticamente um distribuível que inclui binários universais. Ao executar uma instância do Unreal Editor pelo inicializador, ele usará a fatia apropriada para a arquitetura nativa do seu dispositivo. Portanto, se você tiver um dispositivo com Apple Silicon, o editor usará automaticamente o suporte nativo para Apple Silicon.

Para criar binários universais ao compilar o editor a partir do código-fonte, é necessário compilar explicitamente com a arquitetura "x64+arm64" selecionada, pois as compilações de linha de comando têm como padrão a arquitetura x64 e as compilações do Xcode têm como padrão a arquitetura da máquina host. Para obter mais detalhes sobre esse processo, consulte este artigo na documentação.
 

Qual é a vantagem do suporte nativo do Apple Silicon para o editor?

Se você executar o Unreal Editor com suporte nativo para o Apple Silicon, verá uma sobrecarga de CPU reduzida e uma melhoria de desempenho agora que a tradução do Rosetta 2 não é mais necessária.

Além disso, melhoramos a experiência do usuário ao executar o editor em Macs com o Apple Silicon. Isso inclui correções para controlar o foco da janela e suporte aprimorado para o "entalhe" na parte superior das telas de Macs da atual geração.
Cena de "Infinity Blade: Grass Lands" da Loja da Unreal Engine executada no Unreal Editor em um macOS.

Quais são os limites do suporte do macOS na Unreal Engine?

O suporte para macOS ainda está sendo elaborado e há limitações notáveis ao executar o Unreal Editor ou projetos independentes em dispositivos macOS.
  • O Nanite se baseia em atômicas de imagem e garantias de avanço que os dispositivos Apple M1 podem não suportar. O suporte experimental está disponível para Macs baseados em M2, mas está desativado por padrão, e sua ativação contém ressalvas (veja abaixo mais detalhes). Esperamos disponibilizar totalmente o Nanite para dispositivos com Apple Silicon no futuro, porém a compatibilidade é restrita no momento.
  • Os ativos do Quixel configurados para usar o Nanite retomarão a forma anterior à implementação do recurso. Caso contrário, eles funcionarão como planejado.
  • Não há suporte para cabelo/pelos no macOS, já que aparência capilar requer suporte atômico de imagem, mas cartões de cabelo e malhas são compatíveis.
  • O traçado de raios acelerado por hardware não é compatível com o macOS no momento. Devido a essa limitação, o Lumen só pode usar o traçador de raios por software no Apple Silicon. O traçado de raios feito por software produz resultados de baixa qualidade (por exemplo, os reflexos são menos detalhados e as malhas dinâmicas não são visíveis) em comparação com o traçado de raios feito por hardware.
  • Desempenho antisserrilhado: o modo antisserrilhado padrão, Super-resolução Temporal (TSR, da sigla em inglês), está enfrentando limitações de software e hardware no Apple Silicon, o que eleva seu custo de execução em relação a outras plataformas. Estamos analisando a situação e esperamos aprimorar o tempo de execução em lançamentos futuros. Enquanto isso não acontece, você pode migrar para outro modo antisserrilhado pesquisando o termo nas configurações de seu projeto e selecionando um método alternativo.
 

Como faço para usar o suporte experimental para Nanite em dispositivos M2?

Como um primeiro passo em direção ao tão esperado suporte completo para o Nanite no macOS, o suporte experimental agora está disponível nas ramificações ue5-main e 5.2 no GitHub, embora esteja desabilitado por padrão. Para habilitá-lo, é necessário realizar as seguintes modificações no código-fonte da Unreal Engine:
  1. Selecione PLATFORM_MAC_ENABLE_EXPERIMENTAL_NANITE_SUPPORT=1 em UEBuildMac.cs (Engine/Source/Programs/UnrealBuildTool/Platform/Mac/UEBuildMac.cs). 
  2. Ative UE_EXPERIMENTAL_MAC_NANITE_SUPPORT em spirv_msl.hpp.
  3. Redefina o ShaderConductor de acordo com as instruções presentes em UEBuildMac.cs.
  4. Escolha bSupportsNanite=true e bSupportsUInt64ImageAtomics=true em Data Driven PlatformInfo.ini (Engine/Config/Mac/DataDrivenPlatformInfo.ini).

Tenha cuidado ao ativar esse suporte, pois há várias ressalvas. Em primeiro lugar, o funcionamento se restringe ao hardware M2. Em segundo, não há garantia de desempenho e confiabilidade, uma vez que os testes realizados não são conclusivos. Como indicado previamente, esse suporte é experimental e tem como objetivo abrir caminho para a definição de suporte adicional em futuros lançamentos e futuras gerações do hardware Apple Silicon. Adoraríamos receber seu feedback, então participe de nossos fóruns da Comunidade de Desenvolvedores da Epic.

    Obtenha a Unreal Engine 5.2 para macOS hoje!

    Se você já for usuário da Unreal Engine, baixe o binário universal da Unreal Engine 5.2 para macOS no inicializador da Epic Games. Se deseja utilizá-la pela primeira vez, clique no link abaixo para começar. Seja como for, esperamos que você aproveite as novas funcionalidades e atualizações.