Os desenvolvedores sempre buscam maneiras de entregar com eficiência soluções de compilação para vários perfis de hardware e sistemas operacionais. Uma compilação instalada é uma compilação completa da Unreal Engine (UE) que você pode redistribuir para que sua equipe comece a usar a engine rapidamente. Do ponto de vista técnico, uma compilação instalada contém binários pré-compilados para a UE e uma biblioteca estática para cada plataforma de destino nas configurações de desenvolvimento e lançamento.
O processo de compilação instalada automatiza os pacotes de compilação e as ferramentas necessárias para criar uma versão de compilação instalada da UE. Em resumo, criar uma compilação instalada é o processo de configurar plataformas de destino padrão, compilando a UE com suas ferramentas e editor, executando testes e implantando a versão da compilação instalada da UE nas plataformas de destino.
Como criar uma compilação instalada
Você pode criar compilações instaladas usando o sistema de script BuildGraph com o código da compilação instalada localizado na pasta com o código-fonte baixado em [UERoot]/Engine/Build/InstalledBuild.xml.
Para criar uma compilação instalada:
Abra o prompt de comando no sistema.
Insira a linha de comando para executar o código da compilação instalada invocando a ferramenta de automação. Esta linha de comando pode ter a seguinte aparência (substitua
[PLATAFORM]porWin64,LinuxouMac, dependendo do seu sistema):C++C:\EpicSource\UE_5.5\UnrealEngine-5.5\Engine\Build\BatchFiles\RunUAT.bat BuildGraph -target="Make Installed Build [PLATFORM]" -script="Engine/Build/InstalledEngineBuild.xml" -cleanVamos nos familiarizar com as partes da linha de comando:
C:\EpicSource\UE_5.5\UnrealEngine-5.5\- local do código-fonte baixado (pode ser diferente no seu PC).Engine\Build\BatchFiles\RunUAT.bat- local do arquivo de comando da Unreal Automation Tool, que você usa para o comando de compilação.-target="Make Installed Build [PLATFORM]"- plataforma de destino, em que você deseja compilar a engine (substitua[PLATFORM]porWin64,LinuxouMac).-script=Engine/Build/InstalledEngineBuild.xml- local do arquivo, que contém opções para o processo de instalação.Você também pode ajustar mais Opções de código de compilação instalada.
Se você usar as opções de código de compilação instalada, o código terá a seguinte aparência (dependendo das configurações que você ajustar):
C++C:\EpicSource\UE_5.5\UnrealEngine-5.5\Engine\Build\BatchFiles\RunUAT.bat BuildGraph -target="Make Installed Build [PLATFORM]" -script="Engine/Build/InstalledEngineBuild.xml" -set:WithWin64=true -set:WithMac=true -set:WithTVOS=false -set:WithLinux=false -set:WithHTML5=truePor padrão, a versão instalada deve estar localizada na pasta
LocalBuilds/Engine/do diretório da Unreal Engine. Se você especificou um diretório diferente para publicar, vá até esse diretório.
Opções de código de compilação instalada
O código InstalledEngineBuild.xml cria uma compilação instalada com todas as opções padrão e plataformas habilitadas. No entanto, você pode configurá-lo usando um conjunto de opções específicas. Essas opções oferecem mais controle, como definir quais plataformas incluir e onde publicar a compilação.
Você pode visualizar uma lista de opções disponíveis para personalizar o processo de compilação (juntamente com uma lista de nós criados por padrão) passando a opção -listonly para o código.
As opções disponíveis estão listadas na tabela a seguir.
| Opção | Padrão | Descrição |
|---|---|---|
| false | Uma opção auxiliar para criar uma compilação instalada apenas para a plataforma do host, para que você não precise desabilitar cada plataforma individualmente. |
| true | Inclua a plataforma de destino Win64. |
| true | Inclua a plataforma de destino Win32. |
| true | Incluir a plataforma de destino Mac. |
| true | Inclua a plataforma de destino Android. |
| true | Inclua a plataforma de destino iOS. Para habilitar essa opção, é necessário ter um Mac configurado para compilação remota. |
| true | Inclua a plataforma de destino tvOS. Para habilitar essa opção, é necessário ter um Mac configurado para compilação remota. |
| true | Inclua a plataforma de destino Linux. |
| true | Inclua a plataforma de destino Arm64 do Linux. |
| false | Inclui a plataforma de destino PS4. Habilitar essa opção requer o SDK do PS4. |
| false | Inclua a plataforma de destino PS5. Para habilitar essa opção, é necessário ter o SDK do PS5. |
| false | Inclua a plataforma de destino Switch. Habilitar essa opção requer o SDK do Switch. |
| false | Inclua o destino WithXboxOneGDK legado. Habilitar essa opção requer o SDK do Xbox One. |
| false | Inclua a plataforma de destino GDK. Habilitar essa opção requer o GDK. |
| false | Inclua a plataforma de destino XB1. Para habilitar essa opção, é necessário o XDK do XB1. |
| false | Inclua a plataforma de destino WinGDK. Habilitar essa opção requer o WinGDK. |
| false | Inclua a plataforma de destino XSX. |
| true | Crie um cache de dados derivados autônomo para o conteúdo e os modelos da engine. A criação de um cache de dados derivados (CDD) autônomo para a engine e o conteúdo do modelo pode ser um dos aspectos mais lentos da compilação. Se não precisar de um CDD independente, pule esta etapa anexando |
| true | Determina se deve incluir CDD apenas para a plataforma do host. |
| false | Inclua destinos de cliente pré-compilados. |
| false | Inclua destinos de servidor pré-compilados. |
| false | Gere informações de depuração completas para o editor binário e compilações de aplicativos empacotados. |
| false | Assine os executáveis produzidos se precisar definir a máquina para assinar executáveis como parte do processo de compilação. |
| sem padrão | Identificador para enviar eventos analíticos. |
` -set:EmbedSrcSrvInfotrue/false` | false | Determina se a indexação de código-fonte deve ser adicionada a aplicativos de jogos do Windows para que possam ser adicionados a um servidor de símbolos. |
| false | Permita o uso do ParallelExecutor do UAT ao compilar. |
| Shipping;Development;DebugGame | Especifica as configurações para aplicativos empacotados. |
| false | Assine os executáveis em paralelo, apenas para Windows. |
| sem padrão | Argumentos extras a serem passados para compilações executadas em uma plataforma que não seja Mac. Use para habilitar opções como UBA. |
| sem padrão | Argumentos extras a serem passados para compilações executadas em plataformas baseadas em Mac. Use para habilitar opções como UBA. |
| sem padrão | Argumentos extras a serem passados à geração de CDD. Use para habilitar opções como UBA. |
Como incluir arquivos adicionais
RuntimeDependencies (definidos nos arquivos build.cs de cada módulo) se agrupam e determinam automaticamente os arquivos incluídos em uma compilação instalada. No entanto, alguns arquivos necessários não podem ser incluídos dessa forma, então eles são definidos em [UERoot]/Engine/Build/InstalledEngineFilters.xml. O arquivo XML InstalledEngineFilters também lista padrões de arquivos que devem ser excluídos da compilação, determina os tipos de arquivos que precisam ser removidos ou assinados e, por fim, decide para quais projetos o CDD será compilado. Se precisar incluir arquivos adicionais com a compilação instalada, o arquivo XML InstalledEngineFilters é um ótimo ponto de partida.
Como registrar uma versão instalada
A UE tem o conceito de projetos "estrangeiros" e projetos "não estrangeiros". Projetos estrangeiros são aqueles armazenados em uma árvore de diretório separada da engine, enquanto projetos nativos são armazenados em subdiretórios-raiz da engine, referenciados extensão UEGames.uprojectdirs .
O campo "EngineAssociation" em um uproject O arquivo identifica qual versão do editor abrirá o projeto. Para projetos não externos, é deixado em branco, porque não ser estrangeiro implica na existência de um editor em uma posição relativa (conhecida), a partir da hierarquia de diretórios do projeto. Para projetos externos que usam versões da engine instaladas pelo inicializador, o campo terá o número da versão oficial (como "5.5"), e o inicializador pode encontrar o binário do editor apropriado (supondo que ele tenha sido instalado) com base na sua lista de aplicações instaladas. Para projetos externos que usam uma versão da engine distribuída por meios diferentes do inicializador, o identificador único aleatório da versão da engine pode ser usado para encontrar o diretório instalado por meio de um repositório de dados acessível globalmente, sobretudo o registro no Windows ou um arquivo na biblioteca no Mac. Se não for possível encontrar uma associação com uma versão do editor instalada, o usuário deverá selecionar uma versão e o arquivo .uproject será atualizado com a versão selecionada.
Ao distribuir uma versão instalada para uma equipe, certifique-se de que o identificador da versão é comum a todos. Isso evitará que o editor solicite a seleção da versão e atualize o arquivo .uproject com um identificador único gerado localmente. A configuração de um identificador personalizado pode ser feita da seguinte forma:
No Windows, adicione uma chave de registro a
HKEY_CURRENT_USER\SOFTWARE\Epic Games\UnrealEngine\Buildsque usa seu identificador como chave e o caminho para a Engine como valor. Por exemplo, a chave pode serMyCustom419e o valor pode serD:\CustomUE.No Mac, abra
/Users/MyName/Library/Application Support/Epic/UnrealEngine/Install.inie adicione uma entrada à seção[Installations]que usa seu identificador como a chave e o caminho da engine como o valor. Por exemplo:C++[Installations] MyCustom419 = /Users/MyName/CustomUE
Como escolher este método de implantação
Se você raramente precisa alterar a engine e está procurando uma maneira de entregar soluções de compilação para diversos perfis de hardware e sistemas operacionais de forma rápida (e eficiente), é possível implantar uma versão instalada da UE (ou baixar a engine do inicializador).
Lembre-se de que, se não estiver procurando por uma distribuição somente leitura da UE (que pode ser instalada em C:\Program Files), este método não é para você, principalmente porque foi projetado para criar conteúdo somente leitura da engine, código-fonte e bibliotecas de terceiros. Embora forneçamos versões instaladas da engine como cortesia pelo Inicializador da Epic Games, não usamos esse método para nossas equipes internas de jogos. Além disso, tratamos isso como um produto de implementação independente.