In dieser Tutorial-Reihe hast du mithilfe von Level-Design und Spielmechaniken das Gameplay für deine Spieler gestaltet. Die Rätsel, Schlüssel und Türen, die du gebaut hast, sind alle Teile einer Gameplay-Schleife.
Eine Gameplay-Schleife ist eine Reihe von Actions, die der Spieler wiederholt und die den Kern deines Gameplays ausmachen.
Du musst noch immer die Schleife für den erstellten Level schließen. In diesem Tutorial erstellst du einen Siegbildschirm, der dem Spieler mitteilt, dass er den aktuellen Level abgeschlossen hat. Du erstellst außerdem einen Level- Übergang, der eine Siegbedingung bestätigt und den Spieler zum nächsten Level bringt.
Sobald du dein Level abgeschlossen hast, wirst du Möglichkeiten erkunden, wie du alles, was du in diesem Kurs gelernt hast, weiter ausbauen kannst.
Eine Siegbedingung ist ein Ziel, das der Spieler erfüllen muss, um eine Gameplay- Aufgabe, einen Auftrag, Level oder ein Spiel abzuschließen. Dein Gameloop muss die Mittel bereitstellen, um die Siegbedingung zu erfüllen. In nichtlinear Spielen kannst du mehr als eine Siegbedingung haben.
Bevor du anfängst
Dieses Tutorial setzt voraus, dass du bereits ein Verständnis der folgenden Themen hast, die in den vorherigen Abschnitten von Entwerfen eines Rätsel-Abenteuers behandelt wurden:
Widget-Blueprints
Blueprints
Variablen
Kollision Volumen
Play-in-Editor-Modus
Parent und Child-Assets
Du benötigst die folgenden Assets von Fallen und Schaden:
WBP_EliminatedScreenWidget-BlueprintBP_KeyBlueprint-KlasseEnum_KeyType-Aufzählung
Erstelle das Levelende
Auch wenn du das Kern-Gameplay deines Levels fertiggestellt hast, ist der Übergangspunkt eine gute Gelegenheit, den Spielern eine interessante Möglichkeit zu bieten, deinen Level zu beenden. In diesem Fall baust du ein Sprung-Pad, um Spieler auf eine erhöhte Plattform zu befördern. Später platzierst du den Level-Übergang Punkt auf der Plattform.
Baue eine Plattform
Um eine erhöhte Plattform in einem deiner Räume zu erstellen, verwende die statischen Meshs SM_Cube und SM_Cylinder im Ordner LevelPrototyping > Meshes.
Der Tutorial-Sample-Level verwendet eine 3,5m große quadratische Plattform mit vier Säulen, die folgendermaßen aussieht:
Wenn du diese Blockout-Stücke in deinen Level kopieren möchtest, kopier das folgende Snippet. Wenn du dem Sample-Level gefolgt bist, erscheinen diese Formen in der Nähe der hinteren Ecke von Raum 3. Du kannst sie nach Belieben verschieben.
Um die Plattform zu kopieren, führe die folgenden Schritte durch:
Klicke auf Vollständigen Auszug kopieren.
Command LineBegin Map Begin Level Begin Actor Class=/Script/Engine.StaticMeshActor Name=StaticMeshActor_785 Archetype="/Script/Engine.StaticMeshActor'/Script/Engine.Default__StaticMeshActor'" ExportPath="/Script/Engine.StaticMeshActor'/Game/AdventureGame/Designer/Lvl_Adventure.Lvl_Adventure:PersistentLevel.StaticMeshActor_785'" Begin Object Class=/Script/Engine.StaticMeshComponent Name="StaticMeshComponent0" Archetype="/Script/Engine.StaticMeshComponent'/Script/Engine.Default__StaticMeshActor:StaticMeshComponent0'" ExportPath="/Script/Engine.StaticMeshComponent'/Game/AdventureGame/Designer/Lvl_Adventure.Lvl_Adventure:PersistentLevel.StaticMeshActor_785.StaticMeshComponent0'" End Object Begin Object Name="StaticMeshComponent0" ExportPath="/Script/Engine.StaticMeshComponent'/Game/AdventureGame/Designer/Lvl_Adventure.Lvl_Adventure:PersistentLevel.StaticMeshActor_785.StaticMeshComponent0'" StaticMesh="/Script/Engine.StaticMesh'/Game/LevelPrototyping/Meshes/SM_Cylinder.SM_Cylinder'" StaticMeshImportVersion=1 bUseDefaultCollision=False StaticMeshDerivedDataKey="STATICMESH_FD1BFC73B5510AD60DFC65F62C1E933E_228332BAE0224DD294E232B87D83948FQuadricMeshReduction_V2$2e1_6D3AF6A2$2d5FD0$2d469B$2dB0D8$2dB6D9979EE5D2_CONSTRAINED0_100100000000000000000000000100000000000080FFFFFFFFFFFFFFFFFFFFFFFF000000000000803F00000000000000803F0000803F00000000000000003D19FC1626C9B2485E57DB4B8EC731318B8215AE8D46FAD400000000010000000100000000000000010000000100000000000000000000000100000001000000400000000000000001000000000000000000F03F000000000000F03F000000000000F03F0000803F00000000050000004E6F6E65000C00000030000000803FFFFFFFFF0000803FFFFFFFFF0000000000000041000000000000A0420303030000000000000000_RT00_0"Stelle im Unreal Editor sicher, dass der Viewport oder Outliner das aktive Panel ist und drücke dann Strg + V.
Als Nächstes fügst du ein Sprung-Pad hinzu, das den Spieler auf die Plattform befördert.
Verwende das Sprung-Pad
Du könntest zwar ein Sprung-Pad von Grund auf neu erstellen, aber das würde dich Zeit kosten. In einer Entwicklungsumgebung, in der die Zeit oft begrenzt ist, kann es nützlich sein, vorgefertigte (Prefab)-Assets zu importieren, anstatt eigene zu erstellen. Die Auswahl von Prefab, die zum visuellen Stil deines Spiels passt, kann die Entwicklung beschleunigen, ohne aufzufallen.
Für dieses Tutorial verwendest du ein Asset, das in der First-Person Vorlage BP_JumpPad enthalten ist.
Um BP_JumpPad zu integriieren, führe die folgenden Schritte durch:
Navigiere im Inhaltsbrowser zu LevelPrototyping > Interactable > JumpPad.
Ziehe eine Instanz von
BP_JumpPadin deinen Level, vor die Plattform. Wenn du genau den Standort aus diesem Tutorial nachmachen willst, stell dieBP_JumpPads Position auf1790,-1460,10.
Dein Level sollte jetzt so ähnlich aussehen:
Es ist an der Zeit, deine Arbeit zu testen. Stelle zuerst sicher, dass BP_Enemy eine Max. Geschwindigkeit von 0 hat. Dadurch wird sichergestellt, dass du beim Testen nicht mit sich bewegenden Feinden konfrontiert wirst.
Klicke mit der rechten Maustaste in den Viewport und wähle Spiele von hier, um den Spieltest deines Levels von deiner aktuellen Position aus zu starten. Betritt das Sprung-Pad und versuche, die Plattform zu erreichen.
Beachte, dass dein Spieler-Charakter selbst mit dem Boost des Sprung-Pads die Plattform nicht erreichen kann. Du kannst das lösen, indem du den Parameter Geschwindigkeit des Sprung-Pads anpasst.
Wie die vielen editierbaren Variablen, die du in deinen Blueprints erstellt hast, ist der Geschwindigkeits-Parameter eine vorgefertigte, instanzbearbeitbare Variable für das Sprung-Pad-Asset.
Um die Geschwindigkeit anzupassen, führe die folgenden Schritte durch:
Wähle
BP_JumpPadim Viewport aus.Lege im Details-Panel Geschwindigkeit (Z) auf
1000fest.
Teste jetzt deinen Level erneut. Du solltest in der Lage sein, auf die Plattform zu springen.
Als Nächstes erstellst du einen Siegbildschirm, der angezeigt wird, wenn der Spieler das Level abgeschlossen hat.
Erstelle einen Siegbildschirm
Du erstellst mithilfe eines Widget-Blueprints einen Siegbildschirm, ähnlich dem Game-Over-Bildschirm WBP_EliminatedScreen, den du in Fallen und Schaden erstellt hast. Da sich diese beiden Bildschirme so ähneln, wirst du WBP_EliminatedScreen als Ausgangspunkt verwenden.
Um einen Siegbildschirm zu erstellen, indem du deinen Game-Over-Bildschirm duplizierst, führe die folgenden Schritte durch:
Navigiere im Inhaltsbrowser zu AdventureGame > Designer > Blueprints > Widgets.
Klicke mit der rechten Maustaste auf
WBP_EliminatedScreenund klicke auf Duplizieren.Nenne den neuen Widget-Blueprint
WBP_WinScreenund mache einen Doppelklick darauf, um ihn im Widget-Editor zu öffnen. Dein Widgets-Ordner sollte jetzt wie folgt aussehen:Um die Nachricht zu ändern, klicke auf das Widget Text in der Hierarchie.
Gib im Details-Panel unter der Überschrift Inhalt neben Text
Level abgeschlossen! ein ...Laden des nächsten Levels.im Textfeld.Klicke unter der Überschrift Aussehen neben Farbe und Opazität auf das Farbfeld, um den Farbwähler zu öffnen. Wähle eine Farbe, die dir gefällt, oder setze den Wert Hex-sRGB auf
FFE000FF, um mitzumachen.Der Text auf dem Bildschirm ist kürzer, also kannst du seine Größe erhöhen, um den Bildschirm besser auszufüllen. Ändere unter der Überschrift Schriftart die Größe auf
72oder eine Größe, die du für besser lesbar hältst.Speicher, Kompiliere und schließe den Widget-Editor.
Als Nächstes erstellst du einen Level-Übergang.
Erstelle einen Level-Übergang
Ein Level-Übergang lädt den nächsten Level. Du kannst einen Level-Übergang auf viele Arten auslösen: wenn ein Spieler eine Zwischensequenz beendet, einen Gegenstand einsammelt oder das Ende eines Levels erreicht.
In diesem Tutorial ist der Level-Übergang ein Blueprint, der ausgelöst wird, wenn zwei Dinge eintreten:
Der Spieler überlappt den Level-Übergang.
Die Siegbedingung ist erfüllt.
Um einen neuen Blueprint zu erstellen, ühre die folgenden Schritte durch:
Navigiere im Inhaltsbrowser zu AdventureGame > Designer > Blueprints.
Klicke mit der rechten Maustaste und wähle Neuer Ordner aus. Nenne diesen Ordner
LevelTransition.Klicke im Ordner Level-Übergang mit der rechten Maustaste und wähle Blueprint-Klasse aus, um einen neuen Blueprint zu erstellen.
Wähle Actor als Parent-Klasse aus.
Nenne diesen neuen Blueprint
BP_LevelTransitionund mache einen Doppelklick darauf, um ihn im Blueprint-Editor zu öffnen.
Dein Ordner für Level-Übergang sollte jetzt wie folgt aussehen:
Wie bei den anderen Blueprints, die du bisher erstellt hast, benötigt dein Level- Übergang Folgendes:
Ein statisches Mesh, das der Spieler während der Laufzeit sehen kann.
Eine Kollisionsform, um zu erkennen, wann der Spieler mit ihr kollidiert.
Logik um die Interaktion anzutreiben.
Bauen wir zuerst das Mesh und die Box-Kollision auf und gehen wir dann zur Logik über.
Um ein statisches Mesh und eine Kollisionsform zu erstellen, führe die folgenden Schritte durch:
Im Komponenten Tab von
BP_LevelTransitionklicke auf die Schaltfläche Hinzufügen und suche nachWürfel, um ein neues statisches Mesh zu erstellen.Nenne dieses statische Mesh
TransitionPoint.Wähle TransitionPoint aus und lege im Details-Panel den Maßstab auf
3,0,3,0,0,1fest. Diese ist so dimensioniert, dass sie auf die Endplattform des Sample-Levels passt; du kannst deine Größe ändern, dass sie optimal zu deinem Level passt.Zurück im Tab Komponenten wähle DefaultSceneRoot aus. Klicke auf die Schaltfläche Hinzufügen und suche nach
Box-Kollision, um eine Kollisionsform zu erstellen.Nenne die Box-Kollision
LevelTrigger.Wenn LevelTrigger ausgewählt ist, legst du im Details-Panel den Maßstab auf
4,0,,4,0,2,0fest. Lege die Z-Position auf55,0fest.Wenn die Box-Kollision nicht die korrekte Form hat, stelle sicher, dass sie kein Child von TransitionPoint ist.
Speichern und Kompilieren.
Mit Logik bauen
BP_LevelTransition sollte fünf Punkte in Sequenz ausführen:
Prüfe auf Überlappung
Überprüfe die Siegbedingung
Spieler-Input deaktivieren.
Zeige den Siegbildschirm an
Lade den nächsten Level.
Schritt für Schritt erstellen wir die Logik, die diese Interaktionen steuert.
Prüfe auf Überlappung
Um eine Logik zu erstellen, die auf Überlappungen prüft, führe die folgenden Schritte durch:
Iim Tab MyBlueprint von
BP_LevelTransitionklickst du im Abschnitt Variablen auf die Schaltfläche +, um eine neue Variable zu erstellen und gib ihr den NamenOtherActor.Lege den Pin-Typ auf Actor (Objekt-Referenz) fest.
Lösche im EventGraph die drei existierenden Event-Knoten. Du wirst sie nicht brauchen.
Im Komponenten-Tab klickst du mit der rechten Maustaste auf LevelTrigger und klickst auf Hinzufügen Event > OnComponentBeginOverlap hinzufügen. Diese Funktion prüft, ob ein Objekt die Kollisionsform überlappt.
Aus dem Exec-Pin, ziehe und erstelle Anderen Actor einstellen.
Verbinde die beiden Pins Anderer Actor.
Als Nächstes erstellst du eine Logik, die die Siegbedingung überprüft.
Überprüfe die Siegbedingung
In diesem Tutorial ist die Siegbedingung das Einsammeln aller drei Schlüssel. Der Grund für die Wahl dieser besonderen Bedingung ist, spielzerstörende Actions von Spielern zu erwarten und zu verhindern.
Wenn beispielsweise die Siegbedingung „Spieler überlappt den Level-Übergang“ lautet und ein Spieler einen Weg über die Raumwände findet, könnte er deinen gesamten Level umgehen. Durch die Verwendung der Schlüssel als Siegbedingung muss der Spieler deine Spielschleife abschließen – selbst wenn er einen Weg findet, die Wände und Türen zu überwinden.
Es ist zwar unmöglich, jeden Bug vorherzusagen, aber ein vorausschauendes Design kann verhindern, dass Spieler dein Spiel beschädigen.
Um ein Array zum Speichern der Schlüsseldaten zu erstellen, führe die folgenden Schritte durch:
Im Tab MyBlueprint von
BP_LevelTransitionklickst du auf die Schaltfläche +, um eine neue Variable zu erstellen und gib ihr den NamenHeldKeys.Lege den Pin-Typ auf Enum Schlüsseltyp und den Container-Typ auf Array fest.
Aus dem Exec-Pin des Set-Knotens, ziehe und erstelle fnBPIGetKeys.
Aus dem Pin Ziel, ziehe und erstelle Anderen Actor erhalten.
Aus dem Exec-Pin von fnBPIGetKeys ziehe und erstelle Gehaltene Tasten festlegen.
Verbinde beide Pins des Arrays Gehaltene Schlüssel.
Um einen Enum-Schlüsseltyp zum Festlegen einer Siegbedingung zu erstellen, führe die folgenden Schritte durch:
Erstelle eine neue Variable und nenne sie
RequiredKeys. Dies ist deine Siegbedingung.Stelle sicher, dass der Pin-Typ Enum Schlüssel-Typ und der Container-Typ Array ist.
Aktiviere im Details-Panel Instanz bearbeitbar und lege die Kategorie auf
Einrichtungfest.Kompiliere den Blueprint, um Zugang auf den Standardwert zu erhalten. Klicke auf die Schaltfläche +, um dem Array drei neue Elemente hinzuzufügen.
Klicke auf die Index Dropdown-Menüs und stelle die Indizes auf Gelb, Blau und Rot ein.
Du erstellst eine Boolesche Variable, um zu prüfen, ob die Bedingung erfüllt ist oder nicht. Eine Für jede Schleife mit Unterbrechung durchläuft das Array HeldKeys, um jeden Schlüssel zu überprüfen – und bricht ab, wenn Schlüssel fehlen.
Um eine Logik zu erstellen, die nach fehlenden Schlüsseln sucht, führe die folgenden Schritte durch:
Erstelle eine neue Variable und nenne sie
FoundAllKeys.Lege den Pin-Typ auf Boolean und den Container-Typ auf Einzel fest.
Aus dem Exec-Pin von SetHeldKeys ziehe und erstelle eine Für jede Schleife mit Unterbrechung.
Aus dem Array-Pin von Für jede Schleife ziehe und erstelle einen Erforderlichen Schlüssel erhalten-Knoten.
Aus dem Pin Schleifenkörper auf der Schleife, ziehe und erstelle eine Verzweigung.
Aus dem Pin Bedingung, ziehe erstelle einen Enthält Gegenstand (Array)-Knoten.
Aus dem Pin Ziel-Array auf dem Enthält-Knoten, ziehe und erstelle Gehaltene Tasten erhalten.
Verbinde den Zu suchender Gegenstand-Pin des Knoten Bedingung mit dem Array Element-Pin des Schleife-Knoten.
Aus dem True-Pin des Verzweigung-Knotens, ziehe und erstelle Alle Schlüssel gefunden-Set. Klicke auf das Kontrollkästchen neben FoundAllKeys, um es auf True zu setzen.
Aus dem False-Pin des Verzweigung-Knotens, ziehe und erstelle Alle Schlüssel gefunden-Set. Lass das Kontrollkästchen leer und verbinde den Exec-Pin mit dem Unterbrechen-Pin des Für jede Schleife.
Du musst noch drei weitere Schritte in der zuvor betrachteten Sequenz ausführen, jedoch nur, wenn der Spieler alle Schlüssel hat:
Spieler-Input deaktivieren.
Zeige den Siegbildschirm an
Lade den nächsten Level.
Um das Ergebnis FoundAllKeys zum Starten einer Logik-Sequenz zu verwenden, führe die folgenden Schritte durch:
Aus dem Abgeschlossen-Pin von Für jede Schleife, ziehe und erstelle eine Verzweigung.
Ziehe den Pin Bedingung ab und erstelle FoundAllKeys abrufen
Aus dem True-Pin des Verzweigung-Knotens, ziehe und erstelle einen Sequenz-Knoten.
Da du drei Actions hinter dieser Sequenz erstellen musst, klicke auf die Schaltfläche Pin hinzufügen.
Gehen wir zum nächsten Schritt in der Sequenz; deaktivieren von Spieler-Input.
Spieler-Input deaktivieren
Während der Anzeige des Siegbildschirms verhindert die Deaktivierung der Spieler-Inputs, dass sich die Spieler bewegen und unbeabsichtigten Schaden erleiden.
Um die Spieler-Input zu deaktivieren, führe die folgenden Schritte durch:
Aus dem Pin Dann 0 von Sequenz, ziehe und erstelle einen Input deaktivieren-Knoten.
Erstelle aus dem Pin Ziel des Knotens Input deaktivieren den Knoten Anderen Actor erhalten.
Aus dem Pin Player-Controller ziehe heraus und erstelle einen Knoten Player-Controller erhalten.
Als Nächstes würdest du eine Logik erstellen, die den Sieg-Bildschirm anzeigt.
Zeige den Siegbildschirm an
Um das Widget WBP_Winscreen anzuzeigen, führe die folgenden Schritte durch:
Aus dem Pin Dann 1 des Sequenz-Knotens, ziehe und erstelle einen Widget erstellen-Knoten.
Lege die Klasse auf WBP_WinScreen fest.
Aus dem Knoten Exec im Knoten Widget erstellen ziehe einen Knoten Hinzufügen zu Viewport heraus und erstelle ihn.
Verbinde den Ergebniswert-Pin auf Widget erstellen mit dem Ziel-Knoten auf Zu Viewport hinzufügen.
Siehst du ein Problem mit dieser Logik? Vorerst kannst du fortfahren und den letzten Schritt erstellen, ohne das Problem zu beheben. Später wirst du einen Spieltest für den Level durchführen, um das Problem zu entdecken und eine Lösung zu finden.
Lade den nächsten Level
Für dieses Tutorial verwendest du deinen aktuellen Level als Platzhalter für den nächsten Level. Wenn du dein eigenes Spiel entwirfst, sollte der Übergang die Spieler auf einen ganz neuen Level bringen.
Um eine Logik zu erstellen, die den aktuellen Level lädt, führe die folgenden Schritte durch:
Aus dem Pin Dann 2 der Sequenz zieheund erstelle einen Knoten vom Typ Level öffnen (nach Objekt-Referenz).
Aus dem Pin Level von Level öffnen ziehe und suche nach Beförderung zu Variable. Dies erzwingt die Erstellung einer Welt-Typ-Variable.
Du kannst diese Variable auch über den Tab MyBlueprints erstellen, aber der Welt Pin-Typ kann schwer zu finden sein.
Wähle die Welt Variable im Details-Panel aus und benenne Variable in
NextLevelum.Füge es der Kategorie Einrichtung hinzu und aktiviere Instanz bearbeitbar.
Kompiliere dein Blueprint, um Zugang auf den Standardwert der Variable zu erhalten, und lege ihn auf den Level fest, den du laden möchtest. Wenn du diesem Tutorial folgst, stelle es auf
Lvl_Adventure, um den aktuelle Level zu wiederholen.Speichern und Kompilieren.
Es ist an der Zeit, deine Arbeit zu testen. Ziehe eine Instanz von BP_LevelTransition auf die erhöhte Plattform. Dann verschaffe dir einfachen Zugang zu den Schlüsseln, um die Siegbedingung zu erfüllen. Dazu platzierst du die Instanzen der gelben, blauen und roten Tasten, die du unter Einen Schlüssel erstellen erstellt hast, im selben Raum.
Dein Level sollte jetzt ungefähr so aussehen:
Klicke mit der rechten Maustaste in den Viewport und wähle Spiele von hier, um den Spieltest deines Levels von deiner aktuellen Position aus zu starten. Wenn du auf die Plattform springst und den Level-Übergang aktivierst, friert der Bildschirm ein und das nächste Level öffnet sich, ohne dem Spieler Zeit zu geben, die Siegbildschirm Nachricht zu lesen.
Du löst dieses Problem im nächsten Abschnitt.
Erstellen einer Verzögerung
Dieses Tutorial verwendet Level öffnen, um den aktuellen Level zu schließen und die nächste als neue Spiel-Instanz zu öffnen. Während des Ladens friert Level öffnen das Spiel ein. Je nach System des Spielers kann diese Unterbrechung zu kurz sein (um den Siegbildschirm zu lesen) oder zu lang (sodass es so aussieht, als wäre das Spiel abgestürzt).
Viele Spiele, auch solche, die Level-Streaming verwenden, nutzen Ladebildschirme, um den Spieler wissen zu lassen, dass das Spiel korrekt funktioniert und dass er warten sollte. Ladebildschirme lösen auch ein anderes Problem: Lange, häufige oder langweilige Wartezeiten können die Immersion unterbrechen und Frustration verursachen. Ladebildschirme umfassen oft Tipps, Animation oder Audio, um die Aufmerksamkeit des Spielers zu fesseln, wenn er nicht spielt.
Um dieses technische Problem mit dem Design zu lösen, erstellst du eine absichtliche Verzögerung, die Folgendes bewirkt:
Gleiche die Ladezeiten für alle Spieler aus.
Stelle sicher, dass der Spieler genügend Zeit hat, den Siegbildschirm zu lesen.
Verschleiere Ladezeiten, indem du dem Spieler etwas zum Anschauen gibst.
Um eine Verzögerung einzufügen, führe die folgenden Schritte durch:
Öffne
BP_LevelTransition. Iim Tab MyBlueprint klicke auf +, um eine neue Variable hinzuzufügen, und gib ihr den NamenLevelLoadDelay.Lege den Pin-Typ auf Float fest.
Aktiviere im Details-Panel Instanz bearbeitbar und lege die Kategorie auf Einrichtung fest.
Kompiliere den Blueprint, um Zugang auf den Standardwert zu erhalten. Level-Ladeverzögerung legt die Dauer der Verzögerung fest. Um mitzumachen, stelle es auf
5,0Sekunden ein.Navigiere im EventGraph zum Sequenz-Knoten. Um eine Verzögerung einzufügen, ziehe den Pin Dann 2 heraus und erstelle einen Knoten Verzögerung.
Aus dem Dauer-Pin, ziehe und erstelle LevelLoadDelay ehalten.
Speicher, Kompiliere und schließe deinen Blueprint.
Deine endgültige BP_LevelTransition EventGraph sollte wie folgt aussehen:
Teste jetzt deinen Level erneut. Wenn du den Level-Übergang überschreitest, sollte der Siegbildschirm angezeigt werden, der Hintergrund sollte unscharf werden und die Inputs des Spielers sollten für fünf Sekunden deaktiviert werden, bevor dein Spieler-Charakter im nächsten Level erscheint.
Bevor du deinen Level einem letzten Spieltest unterziehst, denke daran, die Schlüssel aus Raum 3 zu entfernen und BP_Enemy’s Max. Geschwindigkeit auf 200 zurückzusetzen.
Vom Konzept zur Erstellung
Schauen wir uns den Blockout an, den wir in Projekt-Einrichtung und Level-Blockout erstellt haben, und vergleichen ihn mit dem endgültigen Level. Seit dem anfänglichen Design haben sich unser Level-Design und unse Gameplay-Schleife geändert, um Bugs zu beheben, neue Funktionen zu entwickeln oder Einschränkungen zu umgehen, die Spieletester während der Entwicklung entdeckt haben.
Indem du deinen Level blockierst, modular arbeitest, technische Probleme mit Design löst und deine Assets organisiert hältst, kannst du flexibel bleiben, wenn Einschränkungen oder neue Funktionen den Verlauf der Entwicklung deines Spiels verändern.
Mit dem Abschluss dieses Kurses hast du einen Level vom Konzept bis zur spielbaren Demo entwickelt. Du hast jetzt die Bausteine, um mehr als nur ein Level zu designen. Du kannst Schalter, Fallen, Schlüssel, Türen und Feinde auf unbegrenzte Weise kombinieren, um neue Gameplay-Schleifen in deinem eigenen Stil zu designen. Wenn sie miteinander verbunden sind, wird jeder Level ein Teil eines viel größeren Projekts: eines ganzen Spiels.
Beispielprojekt
Unten findest du einen Link zum Herunterladen des endgültigen Projekts, das du mithilfe dieser Tutorialreihe der Dokumentation erstellen kannst. Du kannst dieses Beispielprojekt verwenden, um zu sehen, wie dein endgültiges Projekt aussehen könnte, oder als Referenz, um zu sehen, wie wir das Projekt gebaut und gestaltet haben.
Als Nächstes
Solltest du daran interessiert sein, dein Projekt als eigenständiges Programm zum Testen und Teilen zu paketieren, sieh dir die folgende Dokumentation an:
Paketierung von Unreal Engine-Projekten
Paketierung von Unreal Engine-Projekten für den Vertrieb