Bisher habe ich mich vier Wochen lang mit der Unity Engine beschäftigt. In dieser Zeit habe ich einige Grundlagen im Umgang mit Unity erlernt. Dazu gehören das Erstellen einer UI, die Bearbeitung von Partikeleffekten, der Umgang mit C# in Mono Develop und das Exportieren einer UI auf ein Smartphone. Nun werde ich mir die Unreal Engine einmal näher ansehen. Meine Vorgehensweise und persönlichen Erfahrungen möchte ich in diesem Erlebnisbericht festhalten.

Als erstes installiere ich die  Unreal Engine über den Epic Games Launcher, nachdem ich mich dort registriert habe. Nach dem Öffnen der Engine kann ich ein neues Projekt erstellen. Ich kann zwischen einem leeren Projekt und verschiedenen vorgefertigten Templates gewählt werden. Als Vorlagen lassen sich sowohl First Person oder Third Person Spiele wählen als auch Flug-, Roll-, Puzzle-, Renn- und Side Scroller Spiele wählen. Diese Templates werden dann wahlweise als Blueprint- oder C++ Vorlage verwendet. Zusätzlich kann gewählt werden, dass im Projekt schon unterschiedliche Objekte, Materialien, Sounds und Partikeleffekte als Starter Content für die weitere Verwendung bereit liegen. Auf der Homepage der Unreal Engine gibt es verschiedene Einsteiger Video Tutorials (https://wiki.unrealengine.com/Videos?category=Basics). Ich habe mir die Basis Videos als erstes angesehen, da man dort einen schnellen Einstieg in den Umgang mit der Oberfläche der Unreal Engine vermittelt bekommt. Außerdem wird erklärt, wie man Objekte erstellt und diese manipulieren kann.

UE4Bericht Foto1

Einstieg in BluePrints der UnrealEngine

Mir wird klar, dass ein wichtiger Bestandteil der Unreal Engine das Arbeiten mit Blueprints ist. Mit ihnen kann man visuelle Skripte erstellen ohne programmieren zu können. Außerdem kann ich mit ihnen Prefabs von Objekten erstellen und diese auch im Blueprint beeinflussen. Also sehe ich mir eine Tutorial Reihe auf der Homepage der Unreal Engine an, die mir zeigt wie ich nur mit diesen Blueprints einen Endless Runner erstellen kann ohne auch nur eine Zeile Code schreiben zu müssen (https://wiki.unrealengine.com/Videos/Player?series=PLZlv_N0_O1gbY4FN8pZuEPVC9PzQThNn1). In diesem muss man Felsen ausweichen, über Abgründe springen und Punkte sammeln. Die nötigen Materialien und Objekte werden aus dem Starter Content der Unreal Engine bezogen, sodass diese nicht erst selbst erstellt werden müssen. Ich sehe mir das Tutorial an und baue immer Abschnittsweise den Endless Runner nach. Das Tutorial schließt damit ab, dass dem Zuschauer gezeigt wird, wie er das Spiel erweitern und nach seinen Wünschen verändern kann.

Projekteinstellungen in der Engine

Nachdem ich den Endless Runner nachgebaut und ein wenig verändert habe, versuche ich ihn auf einem Android zum laufen zu bringen. Dazu muss man lediglich die Android SDK installieren und dessen Ort in den Projekt Settings eintragen. Alle wichtigen Einstellungen sind voreingestellt, doch es ist möglich dort einige Basis Einstellungen vorzunehmen. Dazu gehören zum Beispiel die benötigte minimum SDK des Geräts anzupassen, die Orientierung des Bildschirms zu definieren und den Launcher Icon zu ändern.

UE4Bericht Foto3

Jedoch bietet die Unreal Engine von Haus aus lediglich die Möglichkeit, virtuelle Joysticks auf dem Bildschirm abzubilden. Diese eignen sich jedoch nicht sehr gut für meinen Endless Runner, da in diesem weder die Kamera bewegt werden muss noch der Spieler selbst vor und zurück laufen kann. Abhilfe kann ich da nur mit einem User Interface schaffen, dass ich mit Knöpfen ausstatte, um damit die Bewegung des Spielers zu steuern. Leider ist es jedoch nicht möglich, die Figur über eine Bewegung des Bildschirms zu steuern.

UE4Bericht Foto4

Außerdem funktioniert das Lightning auf einem Android Gerät anders als an einem Computer. Ich habe ein Lightmass Importance Volume der Szene hinzugefügt, um das Licht so wirken zu lassen wie im Editor. Diese muss eigentlich auf die Größe der Spielwelt angepasst werden, was bei meinem Endless Runner schwierig wird, da er eben endlos ist. Also ist diese Lösung für mich nicht ganz optimal. Ein weiteres Problem war die Anzeige eigener Importierter Texturen auf dem Handy. Wenn ich das Spiel auf dem Computer starte, sind alle Texturen vorhanden. Auf dem Smartphone fehlen diese jedoch. Nach langem rumprobieren, ist die Lösung die Texturen erneut zu importieren und schon sind sie auf dem Gerät sichtbar.

Insgesamt ist mein Eindruck von der Entwicklung von Spielen für Smartphones mit der Unreal Engine, dass die Engine für diese Plattform noch Entwicklungspotenzial hat, da ich viel rumprobieren und viele Einstellungen ausprobieren musste, um den Endless Runner ordentlich auf einem Smartphone spielen zu können.

GUI mit UnrealEngine

Nach dieser nervigen Zeit das Spiel auf dem Handy zum Laufen zu bringen, endlich wieder zurück zur Engine und ein paar weitere Features ausprobieren. Ich habe für meinen Endless Runner ein kleines Hauptmenü erstellt und mir in diesem Zusammenhang eine UI erstellt. Per Drag and Drop lassen sich verschiedene Objekte wie Buttons und Textfelder in ein vorgezeichnetes Fenster ziehen, welches später der Anwender auf seinem Bildschirm sieht. Die verschiedenen Objekte kann ich über die Festlegung eines Ankerpunktes an verschiedene Bildschirmgrößen anpassen. Wenn ich einen Text in einer UI mit einem Blueprint verändern möchte, kann ich dafür ganz einfach ein Event erstellen.

UE4Bericht Foto5

Nachdem ich mein Menü erstellt habe, möchte ich dort die insgesamt gesammelten Coins anzeigen und in dem eigentlichen Spiel, dass sich in einer anderen Map befindet, den Highscore der zurückgelegten Meter. Ein Savegame zur Speicherung von Highscores lässt sich über ein Savegame Blueprint erstellen. Dort trage ich die zu speichernden Variablen ein und kann diese bei Bedarf verändern und speichern. Dazu erzeuge ich ein neues Savegame Objekt und weise den zu speichernden Variablen einen Saveslot zu. Nun muss ich feststellen, dass ich nicht auf den Saveslot vom Hautmenü aus zugreifen kann, da dieser in einem anderen Gamemode gespeichert ist. Das kann ich lösen, indem ich die Saveslotvariable mit in dem Savegame Blueprint abspeichere.

UE4Bericht Foto6

Da ich zuletzt das Problem hatte nicht auf einen anderen Gamemode zugreifen zu können, habe ich mir den allgemeinen Aufbau eines Projekts nochmal etwas näher angesehen. Ein Projekt beinhaltet standardmäßig einen Spielercharacter, der vom Benutzer gesteuert wird. Dazu wird eine Map erstellt, welche die Spielwelt darstellt. Jede Map besitzt einen Gamemode auf den jedes Blueprint zugreifen kann, solange diese Map offen ist. Jedem Gamemode kann man einen Spielercharacter zuweisen, auf den auch jedes Blueprint zugreifen kann. Der Zugriff von einem Gamemode auf einen anderen ist wie ich schon habe feststellen müssen nicht möglich.

Programmieren mit UnrealEngine

Natürlich habe ich mir auch mal das Coden in der Unreal Engine angesehen. Es ist möglich mit einer externen IDE Skripte für die Unreal Engine zu schreiben. Auf dem Mac, welchen ich benutze, ist das Xcode und auf einem Windows Computer Visual Studio. Die am meisten zu benutzende Programmiersprache ist C++. In der Unreal Engine kann ich eine neue Skript Klasse erstellen, woraufhin je nach ausgewähltem Parent Objekt des Skriptes zwei Skript Dateien generiert werden. In der ersten Datei werden die Funktionen und Variablen bestimmt und ob diese von der Engine benutzt oder verändert werden dürfen. In dem zweiten Skript wird der eigentliche Code für die Funktionen geschrieben. Diese Funktionen kann ich von schon erstellten Blueprints aufrufen. Da ich vorher noch nie etwas mit C++ gemacht habe und auf der Hompage der Unreal Engine nur ein Tutorial (https://wiki.unrealengine.com/Videos/Player?series=PLZlv_N0_O1gYup-gvJtMsgJqnEB_dGiM4) zu diesem Thema ist, welches den Umgang mit C++ voraus setzt, beschäftige ich mich eher wenig mit diesem Thema, da ich alles was ich bis jetzt zu Coden gebraucht habe auch mit den Blueprints kann.

UE4Bericht Foto8

 

Da ich bisher keine Partikeleffekte in meinem Endless Runner gebraucht habe, schau ich mir dazu zumindest das Tutorial auf der Unreal Engine Homepage an (https://wiki.unrealengine.com/Videos?category=Particles). Partikeleffekte können in der Unreal Engine mittels Cascade erstellt und bearbeitet werden. Ein Partikel System kann aus mehreren Emittern bestehen. Diese Emitter sind die verschiedenen Komponenten des Effekts. Ein Emitter hat mehrere Module, welche für das Auftreten der Partikel verantwortlich sind. In diesen Modulen kann ich unter anderem die Größe, die Lebenszeit, die Farbe, die Geschwindigkeit und die Verhaltensweiße bestimmen.

Der Eindruck nach 10 Tagen

Nun sind zehn Tage vorbei und ich habe einiges über die Unreal Engine erfahren. Besonders gut gefällt mir, dass ich mit Blueprints ganz einfach visuelle Skripte erstellen kann und somit nicht erst C++ lernen muss. Der Starter Content ist sehr umfangreich und er hat für meine Versuchszwecke mehr als genug ausgereicht. Außerdem bietet mir die Engine mit den unterschiedlichen Blueprints die Möglichkeit mein Projekt übersichtlich zu strukturieren, da ich jede Komponente in einem eigenen Blueprint erstellen kann und diese nur noch in die Gameview ziehen muss. Somit ist mir der Einstieg in die Unreal Engine sehr leicht gefallen und kann nun eigene Projekte und Ideen mit ihr verwirklichen.

 

Zum Seitenanfang