Los desarrolladores siempre buscan formas de ofrecer soluciones de compilación para distintos perfiles de hardware y sistemas operativos. Una compilación instalada es una compilación de Unreal Engine (UE) con todas las funciones que puedes redistribuir para que tu equipo pueda empezar a utilizar el motor rápidamente. Desde un punto de vista técnico, una compilación instalada contiene binarios precompilados para UE y una biblioteca estática para cada plataforma de destino en las configuraciones de desarrollo y envío.
El proceso de compilación instalada automatiza los paquetes de compilación y las herramientas necesarias para crear una versión de UE en una compilación instalada. En resumen, crear una compilación instalada es el proceso de configurar las plataformas de destino, compilar UE con sus herramientas y editor, ejecutar pruebas e implementar la versión de compilación instalada de UE en las plataformas de destino.
Cómo crear una compilación instalada
Puedes crear compilaciones instaladas usando el sistema de secuencias de comandos BuildGraph con la secuencia de comandos de compilación instalada en la carpeta con el código fuente descargado en [UERoot]/Engine/Build/InstalledBuild.xml.
Para crear una compilación instalada:
Abre el símbolo del sistema en tu sistema.
Introduce la línea de comandos para ejecutar la secuencia de comandos de compilación instalada invocando a AutomationTool. Esta línea de comandos tendría el siguiente aspecto (reemplaza
[PLATFORM]porWin64,LinuxoMac, dependiendo de tu 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 a familiarizarnos con las partes de esta línea de comandos:
C:\EpicSource\UE_5.5\UnrealEngine-5.5\: ubicación del código fuente de descarga (puede ser distinta en tu PC).Engine\Build\BatchFiles\RunUAT.bat: posición del archivo de comandos de Unreal Automation Tool que se usa para los comandos de la compilación.-target="Make Installed Build [PLATFORM]": plataforma de destino en la que quieres compilar el motor (reemplaza[PLATFORM]porWin64,LinuxoMac).-script=Engine/Build/InstalledEngineBuild.xml: posición del archivo que contiene las opciones para el proceso de instalación.También puedes ajustar las opciones adicionales de la secuencia de comandos de compilación instalada.
Si usas opciones adicionales de la secuencia de comandos de compilación instalada adicionales, tu código tendrá el siguiente aspecto (depende de los ajustes que hayas configurado):
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 defecto, tu compilación instalada debería ubicarse en la carpeta
LocalBuilds/motor/del directorio de Unreal Engine. Si has especificado otro directorio en el que publicar, dirígete a ese directorio.
Opciones de la secuencia de comandos de compilación instalada
La secuencia de comandos InstalledEngineBuild.xml crea una compilación instalada con todas las opciones y plataformas predeterminadas activadas. Sin embargo, puedes configurarla usando un conjunto de opciones específicas. Estas opciones proporcionan más control, por ejemplo, qué plataformas incluir y dónde publicar la compilación.
Puedes ver una lista de las opciones disponibles para personalizar el proceso de compilación (junto con una lista de los nodos compilados por defecto) pasando la opción -listonly a la secuencia de comandos.
Las opciones disponibles se enumeran en la siguiente tabla.
| Opción | Predeterminado | Descripción |
|---|---|---|
| falso | Una opción de ayuda para crear una compilación instalada solo para tu plataforma host, de modo que no tengas que desactivar cada plataforma individualmente. |
| true | Incluye la plataforma de destino Win64. |
| true | Incluye la plataforma de destino Win32. |
| true | Incluye la plataforma de destino Mac. |
| true | Incluye la plataforma de destino Android. |
| true | Incluye la plataforma de destino iOS. Para activar esta opción, es necesario configurar el Mac para la compilación remota. |
| true | Incluye la plataforma de destino tvOS. Para activar esta opción, es necesario configurar el Mac para la compilación remota. |
| true | Incluye la plataforma de destino Linux. |
| true | Incluye la plataforma de destino Linux Arm64. |
| falso | Incluye la plataforma de destino PS4. Para activar esta opción, se necesita el SDK de PS4. |
| falso | Incluye la plataforma de destino PS5. Para activar esta opción, se necesita el SDK de PS5. |
| falso | Incluye la plataforma de destino Switch. Para activar esta opción, se necesita el SDK de Switch. |
| falso | Incluye el destino heredado WithXboxOneGDK. Para activar esta opción, se necesita el SDK de Xbox One. |
| falso | Incluye la plataforma de destino GDK. Para activar esta opción, se necesita el GDK. |
| falso | Incluye la plataforma de destino XB1. Para activar esta opción, se necesita el XDK de XB1. |
| falso | Incluye la plataforma de destino WinGDK. Para activar esta opción, se necesita el WinGDK. |
| falso | Incluye la plataforma de destino XSX. |
| true | Crea una caché de datos derivados independiente para las plantillas y el contenido del motor. Compila una caché de datos derivados (DDC) independiente para el motor y el contenido de la plantilla puede ser uno de los aspectos más lentos de la compilación. Si no necesitas una DDC independiente, puedes saltarte este paso añadiendo |
| true | Determina si se debe incluir la DDC solo para la plataforma host. |
| falso | Incluye destinos de cliente precompilados. |
| falso | Incluye destinos de servidor precompilados. |
| falso | Genera información de depuración completa para el editor binario y las compilaciones de aplicaciones empaquetadas. |
| falso | Firma los ejecutables producidos si tienes que configurar tu equipo para firmar ejecutables como parte del proceso de compilación. |
| sin valor predeterminado | Identificador de los eventos analíticos para enviar. |
` -set:EmbedSrcSrvInfotrue/false` | falso | Determina si se añade indexación de fuentes a las apps de juegos de Windows para que puedan agregarse a un servidor de símbolos. |
| falso | Permite el uso de ParallelExecutor de UAT al compilar. |
| Shipping;Development;DebugGame | Especifica las configuraciones para las aplicaciones empaquetadas. |
| falso | Firma los ejecutables en paralelo (solo Windows). |
| sin valor predeterminado | Argumentos adicionales para pasar a compilaciones ejecutadas en plataformas que no sean Mac. Se usa para activar opciones como UBA. |
| sin valor predeterminado | Argumentos adicionales para pasar a compilaciones ejecutadas en plataformas basadas en Mac. Se usa para activar opciones como UBA. |
| sin valor predeterminado | Argumentos adicionales para pasar a la generación de DDC. Se usa para activar opciones como UBA. |
Cómo incluir archivos adicionales
Las dependencias en tiempo de ejecución (establecidas en los archivos build.cs para cada módulo) se ordenan automáticamente y determinan qué archivos se incluyen en una compilación instalada. Sin embargo, algunos archivos obligatorios no se pueden incluir de esta forma, por lo que se definen en [UERoot]/Engine/Build/InstalledEngineFilters.xml. El archivo XML InstalledEngineFilters también enumera los patrones de los archivos que deberían excluirse de la compilación, determina los tipos de archivo que deben eliminarse o firmarse y, por último, decide para qué proyectos compilar la DDC. Si necesitas incluir más archivos en la compilación instalada, el archivo XML InstalledEngineFilters es una buena forma de empezar.
Cómo registrar una compilación instalada
UE tiene el concepto de proyectos «externos» y proyectos «no externos». Los proyectos externos son aquellos que se almacenan en un árbol de directorios separado del motor, mientras que los proyectos no externos se almacenan en subdirectorios de la raíz del motor, referenciados por la extensión UEGames.uprojectdirs .
El campo `EngineAssociation` en un archivo .uproject identifica qué versión del editor abrirá el proyecto. En el caso de proyectos no externos, se deja en blanco, ya que el hecho de no serlo implica la existencia de un editor en una posición relativa (conocida) por encima de la jerarquía de directorios del proyecto. En el caso de proyectos externos que usen versiones del motor instaladas por el iniciador, el campo contendrá el número de versión oficial (por ejemplo, «5.5») y el iniciador puede encontrar el binario del editor adecuado (suponiendo que se haya instalado) en función de su lista de aplicaciones instaladas. Para proyectos externos que usen una compilación de motor distribuida por otros medios que no sean el iniciador, el identificador único aleatorio de la compilación del motor se puede usar para encontrar el directorio instalado a través de un repositorio de datos accesible globalmente, específicamente, el registro en Windows, o un archivo en la carpeta de la biblioteca en Mac. Si no se puede encontrar una asociación con una compilación del editor instalada, se pedirá al usuario que seleccione una versión y el archivo .uproject se actualizará con la versión seleccionada.
Cuando distribuyas una compilación instalada a un equipo, asegúrate de que el identificador de la compilación sea común para todos. Esto evitará que el editor solicite la selección de la versión y luego actualice el archivo .uproject con un identificador único generado localmente. Puedes configurar un identificador personalizado de la siguiente manera:
En Windows, añade una clave de registro en
HKEY_CURRENT_USER\SOFTWARE\Epic Games\UnrealEngine\Buildsque use tu identificador como clave y la ruta al motor como valor. Por ejemplo, la clave podría serMyCustom419y el valorD:\CustomUE.En Mac, abre
/Usuarios/MiNombre/Library/Application Support/Epic/UnrealEngine/Install.iniy añade una entrada a la sección[Installations]que use tu identificador como clave y la ruta al motor como valor. Por ejemplo:C++[Installations] MyCustom419 = /Users/MyName/CustomUE
Elección de este método de implementación
Si no sueles tener que cambiar el motor y buscas una manera rápida (y eficaz) de ofrecer soluciones de compilación para distintos perfiles de hardware y sistemas operativos, puedes implementar una compilación instalada de UE (o descargar el motor desde nuestro iniciador).
Ten en cuenta que, si no buscas una distribución de UE de solo lectura (que pueda instalarse en C:\Archivos de programa), este método no es para ti, sobre todo porque está diseñado para crear contenido de motor independiente de solo lectura, código fuente y bibliotecas de terceros. Aunque proporcionamos las compilaciones del motor instalado como cortesía a través del iniciador de Epic Games, nuestros equipos internos de juegos no usan este método. Además, tratamos esto como un producto de implementación independiente por derecho propio.