Entwickler sind immer auf der Suche nach Möglichkeiten, Build-Lösungen für verschiedene Hardware-Profile und Betriebssysteme effizient bereitzustellen. Ein Installed Build ist ein voll funktionsfähiger Unreal Engine (UE)-Build, den du weitergeben kannst, damit dein Team schnell mit der Engine arbeiten kann. Aus technischer Sicht enthält ein Installed Build vorkompilierte Binärdateien für UE und eine statische Bibliothek für jede Zielplattform in Entwicklungs- und Lieferkonfigurationen.
Der Installed-Build-Prozess automatisiert Build-Pakete und Tools, die für die Erstellung einer Installed-Build-Version von UE benötigt werden. Zusammengefasst ist die Erstellung eines Installed Builds der Prozess des Einrichtens von Standard-Zielplattformen, des Kompilierens von UE mit seinen Tools und seinem Editor, des Ausführens von Tests und des Verteilens der Installed-Build-Version von UE auf den Zielplattformen.
Einen Installed Build erstellen
Du kannst Installed Builds mit dem BuildGraph-Scriptingsystem erstellen. Das Installed Build-Script befindet sich in dem Ordner mit dem heruntergeladenen Quellcode unter [UERoot]/Engine/Build/InstalledBuild.xml.
Um einen Installed Build zu erstellen:
Öffne Command Prompt auf deinem System.
Gib die Befehlszeile zur Ausführung des Installed-Build-Scripts ein, indem du dasAutomationTool aufrufst. Diese Befehlszeile kann wie folgt aussehen (ersetze
[PLATFORM]entweder durchWin64,LinuxoderMac, je nach deinem System):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" -cleanMachen wir uns mit den Bestandteilen dieser Befehlszeile vertraut:
C:\EpicSource\UE_5.5\UnrealEngine-5.5\– Speicherort des heruntergeladenen Quellcodes (kann auf deinem PC anders sein).Engine\Build\BatchFiles\RunUAT.bat– Speicherort der Unreal Automation Tool-Befehlsdatei, die du für den Befehl zum Erstellen verwendest.-target="Make Installed Build [PLATFORM]"– Zielplattform, auf der die Engine gebaut werden soll (ersetze[PLATFORM]entweder durchWin64,LinuxoderMac).-script=Engine/Build/InstalledEngineBuild.xml– Speicherort der Datei, die Optionen für den Installationsprozess enthält.Du kannst außerdem zusätzliche Installed-Build-Script-Optionen anpassen.
Wenn du zusätzliche Installed-Build-Script-Optionen verwendest, wird dein Code wie folgt aussehen (je nach den von dir vorgenommenen Einstellungen):
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=trueStandardmäßig sollte sich dein Installed Build im Ordner
LocalBuilds/Engine/deines Unreal Engine-Verzeichnisses befinden. Wenn du ein anderes Verzeichnis für die Veröffentlichung angegeben hast, navigiere stattdessen zu diesem Verzeichnis.
Installed-Build-Script-Optionen
Das Script InstalledEngineBuild.xml erstellt ein Installed Build mit allen Standardoptionen und aktivierten Plattformen. Du kannst sie jedoch mit einer Reihe von Optionen konfigurieren. Diese Optionen bieten mehr Kontrolle, z. B. darüber, welche Plattformen einbezogen werden und wo der Build veröffentlicht wird.
Du kannst eine Liste der verfügbaren Optionen zur Anpassung des Build-Prozesses anzeigen (zusammen mit einer Liste der standardmäßig erstellten Knoten), indem du die Option -listonly an das Script übergibst.
Die verfügbaren Optionen sind in der nachstehenden Tabelle aufgeführt.
| Option | Default | Beschreibung |
|---|---|---|
| false | Eine Hilfsoption, um ein installiertes Build nur für deine Host-Plattform zu erstellen, so dass du nicht jede Plattform einzeln deaktivieren musst. |
| true | Einbeziehung der Win64-Zielplattform. |
| true | Einbeziehung der Win32-Zielplattform. |
| true | Einbeziehung der Mac-Zielplattform. |
| true | Einbeziehung der Android-Zielplattform. |
| true | Einbeziehung der iOS-Zielplattform. Die Aktivierung dieser Option erfordert einen Mac, der für Remote Building eingerichtet ist. |
| true | Einbeziehung der tvOS-Zielplattform. Die Aktivierung dieser Option erfordert einen Mac, der für Remote Building eingerichtet ist. |
| true | Einbeziehung der Linux-Zielplattform. |
| true | Einbeziehung der Linux Arm64-Zielplattform. |
| false | Einbeziehung der PS4-Zielplattform. Für die Aktivierung dieser Option ist das PS4 SDK erforderlich. |
| false | Einbeziehung der PS5-Zielplattform. Für die Aktivierung dieser Option ist das PS5 SDK erforderlich. |
| false | Einbeziehung der Switch-Zielplattform. Für die Aktivierung dieser Option ist das SwitchSDK erforderlich. |
| false | Einbeziehung des Legacy-Ziels WithXboxOneGDK. Für die Aktivierung dieser Option ist das Xbox One SDK erforderlich. |
| false | Einbeziehung der GDK-Zielplattform. Für die Aktivierung dieser Option ist das GDK erforderlich. |
| false | Einbeziehung der XB1-Zielplattform. Für die Aktivierung dieser Optionen ist das XB1 XDK erforderlich. |
| false | Einbeziehung der WinGDK-Zielplattform. Für die Aktivierung dieser Option ist das WinGDK erforderlich. |
| false | Einbeziehung der XSX-Zielplattform. |
| true | Erstellung eines eigenständigen Derived Data Cache für den Inhalt und die Vorlagen der Engine. Die Erstellung eines eigenständigen Derived Data Cache (DDC) für den Inhalt und die Vorlagen der Engine kann einer der langsamsten Aspekte des Builds sein. Wenn du keinen eigenständigen DDC brauchst, kannst du diesen Schritt überspringen, indem du |
| true | Ob der DDC nur für die Host-Plattform einbezogen werden soll. |
| false | Einbeziehung vorkompilierter Client-Ziele. |
| false | Einbeziehung vorkompilierter Server-Ziele. |
| false | Generierung von vollständigen Debug-Informationen für Binäreditor- und Paketanwendungs-Builds. |
| false | Signieren der erzeugten ausführbaren Dateien, wenn du deinen Rechner so einrichten musst, dass er ausführbare Dateien als Teil des Build-Prozesses signiert. |
| kein Default | Kennung für zu sendende analytische Events. |
` -set:EmbedSrcSrvInfotrue/false` | false | Ob die Quellenindizierung zu Windows-Spielanwendungen hinzugefügt werden soll, damit sie zu einem Symbolserver hinzugefügt werden können. |
| false | Verwendung des ParallelExecutor von UAT beim Kompilieren zulassen. |
| Versand;Entwicklung;DebugGame | Bestimmt die Konfigurationen für paketierte Anwendungen. |
| false | Signieren der ausführbaren Dateien parallel, nur Windows. |
| kein Default | Zusätzliche Argumente für die Kompilierung auf nicht-Mac-basierten Plattformen. Zum Aktivieren von Optionen wie UBA. |
| kein Default | Zusätzliche Argumente für die Kompilierung auf Mac-basierten Plattformen. Zum Aktivieren von Optionen wie UBA. |
| kein Default | Zusätzliche Argumente zur Übergabe an die DDC-Generierung. Zum Aktivieren von Optionen wie UBA. |
Einbeziehung zusätzlicher Dateien
RuntimeDependencies (die in den build.cs-Dateien für jedes Modul festgelegt sind) werden automatisch zusammengestellt und bestimmen, welche Dateien in einem Installed Build enthalten sind. Einige erforderliche Dateien können jedoch nicht auf diese Weise eingebunden werden, daher werden sie in [UERoot]/Engine/Build/InstalledEngineFilters.xml definiert. In der XML-Datei InstalledEngineFilters werden auch Muster von Dateien aufgelistet, die vom Build ausgeschlossen werden sollen, und es wird bestimmt, welche Dateitypen gestrippt oder signiert werden müssen, und schließlich wird entschieden, für welche Projekte der DDC erstellt werden soll. Wenn du zusätzliche Dateien in das Installed Build einbinden musst, ist die XML-Datei InstalledEngineFilters ein guter Ausgangspunkt.
Registrieren eines Installed Build
In UE gibt es das Konzept der „fremden“ Projekte und der „nicht-fremden“ Projekte. Fremde Projekte sind solche, die in einem separaten Verzeichnisbaum der Engine gespeichert sind, während nicht-fremde Projekte in Unterverzeichnissen des Stammverzeichnisses der Engine gespeichert sind und mit der Erweiterung UEGames.uprojectdirs referenziert werden.
Das Feld „EngineAssociation“ in einer .uproject-Datei gibt an, mit welcher Editorversion das Projekt geöffnet wird. Bei nicht-fremden Projekten wird dieses Feld leer gelassen, da ein nicht-fremdes Projekt die Existenz eines Editors an einem (bekannten) relativen Ort in der Verzeichnishierarchie des Projekts voraussetzt. Bei fremden Projekten, die vom Launcher installierte Engine-Builds verwenden, enthält das Feld die offizielle Versionsnummer (z. B. „5.5“), und der Launcher kann die entsprechende Editor-Binärdatei (vorausgesetzt, sie wurde installiert) anhand seiner Liste der installierten Anwendungen finden. Für fremde Projekte, die einen Engine-Build verwenden, der nicht über den Launcher verteilt wurde, kann der zufällige eindeutige Bezeichner des Engine-Builds verwendet werden, um das installierte Verzeichnis über ein global zugängliches Daten-Repository zu finden, insbesondere die Registry unter Windows oder eine Datei im Bibliotheksordner unter Mac. Wenn keine Zuordnung zu einem installierten Editor-Build gefunden werden kann, wird der Benutzer aufgefordert, eine Version auszuwählen, und die .uproject-Datei wird mit der ausgewählten Version aktualisiert.
Wenn du einen Installed Build an ein Team verteilst, stelle sicher, dass der Identifikator des Builds für alle gleich ist. Dadurch wird verhindert, dass der Editor zur Versionsauswahl auffordert und dann die Datei .uproject mit einer lokal erzeugten eindeutigen Kennung aktualisiert. So kann eine benutzerdefinierte Kennung festgelegt werden:
Füge unter Windows einen Registry Key zu
HKEY_CURRENT_USER\SOFTWARE\Epic Games\UnrealEngine\Buildshinzu, der deine Kennung als Schlüssel und den Pfad zur Engine als Wert enthält. Der Schlüssel könnte z. B.MyCustom419und der WertD:\CustomUElauten.Öffne auf dem Mac die Datei
/Users/MyName/Library/Application Support/Epic/UnrealEngine/Install.iniund füge dem Abschnitt[Installationen]einen Eintrag hinzu, der deine Kennung als Schlüssel und den Pfad zur Engine als Wert enthält. Zum Beispiel:C++[Installations] MyCustom419 = /Users/MyName/CustomUE
Auswählen dieser Bereitstellungsmethode
Wenn du die Engine nur selten ändern musst und wenn du nach einer Möglichkeit suchst, schnell (und effizient) Build-Lösungen für eine Vielzahl von Hardware-Profilen und Betriebssystemen zu erstellen, kannst du ein Installed Build von UE einsetzen (oder die Engine von unserem Launcher herunterladen).
Bedenke, dass diese Methode für dich nicht geeignet ist, wenn du nicht nach einer schreibgeschützten UE-Distribution suchst (die unter C:\Programmdateien installiert werden kann), weil sie dazu gedacht ist, eigenständige, schreibgeschützte Engine-Inhalte, Quellcode und Bibliotheken von Drittanbietern zu erstellen. Obwohl wir installierte Engine-Builds über den Epic Games Launcher zur Verfügung stellen, verwenden wir diese Methode nicht für unsere internen Spiele-Teams. Außerdem behandeln wir sie als eigenständiges Bereitstellungsprodukt.