Projekte können vor dem Problem der Skalierung stehen, wenn die Anzahl des Codes und der Assets mit der Teamgröße wächst. Um sicherzustellen, dass Ihr Projekt so reibungslos wie möglich abläuft, stellt Epic Games neben UE eine Reihe von Werkzeugen zur Verfügung, die Ihnen dabei helfen können:
Verteilen Sie die Engine und Ihr Projekt an Ihr Team.
Verkürzung der Zusammenstellungs- und Paketierungszeiten.
Verringerung des Festplattenspeichers, den Ihr Projekt beansprucht.
Synchronisierungszeit für das Abrufen von aktualisiertem Code und Assets aus der Versionskontrolle reduzieren,
Einrichtung einer automatisierten Build-Pipeline.
Einrichtung einer automatisierten Test-Pipeline.
Alle diese Schritte sollen die Belastung für jedes Teammitglied bei der Arbeit mit der Unreal Engine verringern und die Iterationzeit für das Erstellen, Testen und Ändern von Funktionen verringern.
Verwalten Sie Ihr Projekt mit Versionskontrollsoftware
Versionskontrolle ist ein grundlegender Bestandteil jedes Spieleentwicklungs-Projekt. Ein Versionskontrollserver speichert eine zentrale, maßgebliche Kopie des Codes und der Dateien für Ihr Projekt, während Versionskontrollclients den Teammitgliedern die Möglichkeit bieten, auf diese Dateien zuzugreifen und sie zu aktualisieren. Ein „Repository“ ist eine eindeutig versionierte Gruppierung der Dateien, die auf einem Versionskontrollserver gespeichert sind, und „Arbeitsbereiche“ sind die clientseitigen Verzeichnisse, in denen jeweils die Kopie eines bestimmten Repositorys gespeichert ist.
Eine Integration der Versionskontrolle bietet die Möglichkeit:
Eine Kopie des Projekts auf einen lokalen Rechner zu ziehen.
Überprüfung und Übernahme von Code und Assets.
Trennen Sie Arbeitsabläufe, um Konflikte zu vermeiden.
Dateien auschecken, sperren und freigeben, um zu verhindern, dass mehrere Teammitglieder mit der gleichen Datei arbeiten.
Dateien vergleichen (diff) und zusammenführen.
Darüber hinaus führt die Versionskontrolle eine fortlaufende Liste der an das Repository übertragenen Änderungen, so dass bei Problemen mit einer Änderung problemlos zu einer früheren Version von Assets oder Code zurückgekehrt werden kann.
UE unterstützt die folgenden Versionskontroll-Integrationen:
Perforce
Git mit GitLFS
Subversion
Umleitung
Die Einrichtung eines solchen Systems für Ihr Projekt sollte das erste sein, was Sie tun, bevor jemand mit der Arbeit an Assets oder Code beginnt. Alle sind akzeptabel, aber Epic Games verwendet hauptsächlich Perforce, und viele Funktionen in diesem Handbuch drehen sich um die Perforce-Integration von UE. Sobald Ihr Projekt über ein Repository verfügt, können Sie es in den Inhaltsbrowser integrieren, um Dateien direkt aus dem Unreal Editor auszuchecken und zu verwalten.
Weitere Informationen zur Verwendung der Versionskontrolle mit UE finden Sie auf der Seite [Quellkontrolle](understanding-the-basics\source-control) und im Abschnitt [Zusammenarbeit und Versionskontrolle](setting-up-your-production-pipeline\collaboration-in-unreal-engine).
Verteilen Sie Ihr Projekt mit Unreal Game Synchronisation
Unreal Game Sync (UGS) ist ein Client, der ein Interface zu Perforce, dem Unreal Build Tool und Ihrer IDE (falls zutreffend) bildet, um Teammitgliedern das Herunterladen oder Kompilieren von funktionierenden Builds Ihres Projekts zu erleichtern. Sobald Sie UGS (UnrealGameSync) eingerichtet haben, können Benutzer ihre .uproject-Datei auswählen, eine Liste der Builds für dieses Projekt anzeigen und Builds finden, die als funktionierend verifiziert sind. Wenn Sie eine IDE installiert haben, können Sie dann die Quelldateien mit einem einzigen Befehl abrufen und bauen. Falls nicht, können Sie Builds finden, die vorgefertigte Binärdateien enthalten, und diese stattdessen herunterladen.
Weitere Informationen finden Sie in der UGS documentation.
Erstellen Sie Offline-Installer für Ihr Team
Wenn Sie den Quelle Ihrer Engine geforkt und angepasst haben, möchten Sie vielleicht ein installiertes Build erstellen und es als Offline Installer der Unreal Engine verpacken. Weitere Informationen zum Erstellen von Offline-Installers finden Sie auf den Seiten Creating Installed Builds und Installed Builds reference.
Reduzieren Sie übermäßige C++ Kompilierung mit Unreal Engine-Modulen und ICWYU
Je mehr C++-Code Sie in Ihrem Projekt haben, desto länger dauert die Kompilierung in Ihrer IDE. Daher ist es normal, dass sich die Kompilierungszeiten für C++ im Laufe eines Projekts verlängern. Bei besonders großen Projekten kann dies die Iterationszeit für die Programmierer beeinträchtigen.
Die Architektur von UE teilt den Code in Module auf, um dieses Problem zu minimieren. Wenn Sie Ihren Code in Modulen organisieren, wird nur der Code in dem Modul, an dem Sie gerade arbeiten, neu kompiliert, während andere Module unberührt bleiben. Die Verwendung von Modulen bietet noch weitere Vorteile, die Sie im Abschnitt Unreal Engine Module und auf der Seite Editor Modules. nachlesen können.
Die Codebasis der UE verwendet auch ein Einschließen, was Sie verwenden (IWYU)-Paradigma, das ebenfalls die Erstellungszeiten durch die Verwendung von #include-Anweisungen und Vorwärts-Deklarationen mehr verkürzen kann. Weitere Informationen finden Sie auf der Seite Include What You Use page.
Erstellen Sie automatisierte Builds mit UAT, BuildGraph und Horde
Obwohl Sie Projekte vom Unreal Editor aus verpacken können, ist der Befehl BuildCookRun für das Unreal Automatisierungswerkzeug (UAT) der zugrunde liegende Mechanismus für die Erstellung von verpackten Builds, und Sie können mit jedem Befehlszeilen-Interface Ihres Betriebssystems darauf zugreifen. UAT verfügt über zahlreiche Scripts, mit denen der Build-Prozess in Szenarien automatisiert werden kann, in denen die Verwendung einer grafischen Benutzeroberfläche nicht sinnvoll ist, z. B. beim Einrichten eines Build-Servers, der jede Übermittlung an Ihr Versionskontrollsystem automatisch kompiliert. Sie können Ihre eigene automatisierte Build-Pipeline mit dem UAT-Befehl BuildCookRun skripten, um einen direkten und einfachen Ansatz zu verfolgen, oder Sie können BuildGraph verwenden, um ein detaillierteres System automatisierter Builds einzurichten.
Horde ist eine stabile Suite für die kontinuierliche Integration, die auf dem BuildGraph-Framework aufbaut und eine Vielzahl von Werkzeugen für die Überwachung des Build-Zustands, die Integration mit Software zur Aufgabenverfolgung, die Verwaltung von Remote-Testgeräten und die Bereitstellung detaillierter Analysen und Logs umfasst. Als zusätzlichen Vorteil bietet Horde auch Unterstützung für den Unreal Build Accelerator (UBA), der die Kompilierungsgeschwindigkeit durch Verteilung der Arbeit auf mehrere Server und/oder Workstations verbessern kann.
Wenn Sie Ihre Build-Pipeline personalisieren möchten, finden Sie im Abschnitt Unreal Build System eine vollständige Referenz zum Automatisierungswerkzeug und Build-Werkzeug.
Beschleunigen Sie die Cookzeit mit Multi-Prozess Cooken
Wenn Sie einen Build paketieren, die UE cookt die Assets Ihres Projekts für Ihre Zielplattform, konvertiert sie in ein Format, das mit ihr kompatibel ist, und wendet alle Komprimierungseinstellungen an, die Sie dafür festgelegt haben. Normalerweise handelt es sich dabei um einen einzelnen Prozess, aber um die Cooking-Zeit zu beschleunigen, können Sie das Multi-Prozess-Cooken aktivieren und die Anzahl der gleichzeitig zu verwendenden Cook-Prozesse konfigurieren. Weitere Informationen finden Sie in der Anleitung Multi-Process Cook.
Optimieren Sie das Asset-Management mit Virtuellen Assets
Mit zunehmender Anzahl und Größe der Assets in Ihrem Projekt kann sich die Zeit, die Teammitglieder für die Aktualisierung ihres Projekts aus der Quellkontrolle benötigen, drastisch verlangsamen und der Festplattenspeicher, den eine lokale Kopie des Projekts belegt, steigt.
Um dem entgegenzuwirken, unterstützt die Unreal Engine Virtuelle Assets. Diese trennen die Hauptdaten der Assets von den Metadaten, die sie zur Anzeige im Inhaltsbrowser Ihres Editors verwenden. Wenn Ihre Teammitglieder das Projekt synchronisieren, synchronisieren sie nur die Metadaten, die viel weniger Platz benötigen als das gesamte Asset. Wenn sie tatsächlich auf das Asset zugreifen müssen, um es anzuzeigen oder zu ändern, zieht die UE ihre Massendaten aus dem Repository Ihres Teams oder ein Abgeleiteter Daten-Cache (ADC) auf Anfrage ab.
Weitere Informationen finden Sie in der Dokumentation Virtual Assets.
Reduzieren Sie die Shader-Kompilierungszeiten im Editor mit einem abgeleiteten Daten-Cache
Viele Assets in der UE verwenden abgeleitete Daten. Wenn Sie zum Beispiel Materialien erstellen, muss Unreal anschließend Shader kompilieren, bevor die Materialien vollständig angezeigt werden können. Die Dateien in Ihrem Versionskontrollsystem enthalten die Befehle, die zur Erstellung des Shaders benötigt werden und die auf allen Plattformen gleich sind und sich leicht bearbeiten lassen. Abgeleitete Daten sind ein eigenständiges Konzept und ein eigener Mechanismus, weil die Speicherung in derselben Datei wie die Ursprungsdaten Ihr Repository sehr groß machen kann und weil das genaue Format eines kompilierten Shaders je nach verwendeter Hardware und Betriebssystem unterschiedlich sein kann. Wenn Ihr Projekt oder Ihr Team größer wird, kann dies zu einem mühsamen Prozess werden, wenn Sie große Änderungen abrufen müssen, insbesondere wenn Sie Ihr Projekt von Grund auf neu herunterladen müssen.
Abgeleitete Daten-Caches (ADCs) dienen als sekundäres Repository speziell für diesen Typ abgeleiteter Daten. Wenn ein Benutzer ein Asset zusammenstellt oder cookt, fügt er die abgeleiteten Daten dem ADC hinzu. Wenn dann andere Benutzer mit kompatibler Hardware das Asset synchronisieren, kann die UE sowohl das Asset als auch die abgeleiteten Daten abrufen - das heißt, sie müssen es nicht von Grund auf neu kompilieren. Im Gegensatz zur Versionskontrolle werden bei ADCs in der Regel nicht alle Versionen aller jemals eingereichten Dateien aufbewahrt, sondern nur die neuesten Daten bis zu einer bestimmten Grenze. In dem seltenen Fall, dass jemand eine sehr alte Version des Projekts überprüfen muss, können die abgeleiteten Daten jederzeit neu generiert werden. Sie können eine Vielzahl gemeinsam genutzter ADCs an verschiedenen Orten im Verhältnis zu Ihren Mitarbeitern bereitstellen und Regeln für den Zugang Ihrer Teammitglieder definieren, um sicherzustellen, dass sie von den schnellsten und zuverlässigsten Quellen abrufen.
Weitere Informationen zur Verwendung von ADCs finden Sie in der Doumentation Derived Data Cache. UE unterstützt mehrere Methoden zum Hosten eines gemeinsam genutzten ADC, aber wir empfehlen Zen Storage Server.
Skalieren Sie Ihre Tests mit automatisierten Tests
UE verfügt über eine Vielzahl von automatisierten Test-Frameworks für das Testen von Code in verschiedenen Kontexten. Diese können Ihnen helfen, Bugs in Ihrem Code früher und häufiger zu entdecken, und geben den QA-Testern mehr Raum, sich auf Probleme des Benutzererlebnis zu konzentrieren. Weitere Informationen finden Sie im Abschnitt Automation Test Framework.