Cover

Inhalt

Titelei

Impressum

Inhalt

Vorwort

1 Einleitung

1.1 Was brauche ich?

1.2 Was lerne ich?

1.3 Lizenzen

1.4 Weiterentwicklung der Engine

2 Erste Schritte

2.1 Wie fange ich an?

2.2 Motivation

2.3 Planung

2.4 Sicherheitskopien

2.5 Learning by Doing

3 Grundlagen

3.1 Installation

3.2 Epic Games Launcher

3.3 Erstellung eines Projekts

3.4 Oberfläche

3.4.1 Game/Editor View

3.4.2 Content Browser

3.4.3 World Outliner

3.4.4 Details

3.4.5 World Settings

3.4.6 Modes

3.4.7 Play

3.5 Ausprobieren

4 Blueprints

4.1 Was sind Blueprints?

4.2 Das Actor-Blueprint

4.2.1 Der Hauptbereich

4.2.2 Components

4.2.3 Details

4.2.4 Debug-Bereich

4.3 Anwendungsbeispiele

4.3.1 Toggle

4.3.2 Sequenzer

4.3.3 Timeline

4.3.4 SpawnActor

4.3.5 Reroute-Node

4.3.6 IsValid?

4.3.7 Promote to variable

5 Bausteine der Welt

5.1 Variablen

5.1.1 Boolean

5.1.2 Byte

5.1.3 Integer

5.1.4 Float

5.1.5 Name, String und Text

5.1.6 Vector

5.1.7 Rotator

5.1.8 Transform

5.2 Benutzen von Variablen

5.2.1 Variablen in Events

5.3 Arrays

5.4 Übung zu Arrays

6 Die Welt in 3D

6.1 World- und Relative-Transforms

6.2 Transforms in Blueprints

6.3 Meshes

6.3.1 Toolbar und Viewport

6.3.2 Details

6.4 Collisions

6.4.1 Kollisionstypen

6.5 Materials

6.5.1 Graph

6.5.2 Details

6.5.3 Palette

7 Licht und Schatten

7.1 Lichtarten

7.1.1 Directional Light

7.1.2 Point Light

7.1.3 Spot Light

7.1.4 Sky Light

7.2 Lightmaps

7.2.1 Lightmass Importance Volume

7.2.2 Light Propagation Volumes

7.3 Global Illumination

8 Physik

8.1 Simulate Physics

8.1.1 Collisions

8.1.2 Physik in Blueprints

9 Ein Level entsteht

9.1 BSP

9.1.1 Brush Settings

9.1.2 Surface Material

9.1.3 Geometry Editing

10 Landschaften

10.1 Landscape-Tool

10.1.1 Manage

10.1.2 Sculpt

10.2 Landscape-Material

10.2.1 Layer Blend

10.2.2 Material Instance

10.2.3 Paint-Tool

10.2.4 Layer Weight

10.3 Foliage-Tool

10.4 Grass Output

11 Audio

11.1 Sound-Arten

11.1.1 Sound Cue

11.1.2 Sound Attenuation

11.1.3 Sound Class

11.1.4 Sound Mix

11.1.5 Dialogue Voice/Wave

11.1.6 Reverb Effect

11.1.7 Media Sound Wave

12 Partikel

12.1 Cascade

12.1.1 Emitter

12.1.2 Type Data

12.2 Ein Beispiel für Effekte

13 Der Character

13.1 Character Blueprint

13.1.1 Character Movement

13.1.2 Movement-Funktionen

13.1.3 Vorbereitungen für Interaktionen

13.1.4 Kameraeigenschaften

14 Kommunikation

14.1 Cast to Blueprint

14.2 Interface

14.2.1 Output

14.3 Reference

14.3.1 Alle Actors einer Klasse

15 User Interface

15.1 HUD-Klasse

15.2 Widgets

15.2.1 Canvas

15.2.2 Palette

15.3 Benutzen von Widgets

16 Datenbanken

16.1 Structs

16.2 Data Table

16.2.1 Datenbanken in Blueprints

16.2.2 Speichern und Laden von Daten

17 Animationen

17.1 Skeletal Mesh

17.2 Skeleton

17.3 Animationen

17.3.1 Aim Offset

17.3.2 Blend Space

17.4 Animation Blueprint

17.4.1 Event Graph

17.4.2 Anim Graph

17.5 Retargeting

18 Netzwerk

18.1 Grundwissen über Multiplayer

18.2 Replication

18.2.1 Events

18.2.2 Animationen

18.3 Sessions

18.4 OnlineSubsystem

18.5 Multiplayer-Beispiele und Probleme

18.5.1 Events werden nicht ausgeführt

18.5.2 Replication und deren Auswirkung

18.5.3 Replication kombinieren

18.5.4 Owner herausstechen lassen

19 KI

19.1 Erste Schritte

19.2 Simple Patrouille

19.2.1 AIController

19.3 KI mit Angriff

19.4 Behaviour Tree/Query System

20 Debugging

20.1 Fehlersuche

20.2 Optimierung

21 Spiel erstellen

21.1 Project Launcher

21.1.1 Project

21.1.2 Build

21.1.3 Cook

21.1.4 Package

21.1.5 Archive

21.1.6 Deploy

22 Ein eigenes Spiel

23 Virtual Reality mit Unreal Engine 4

23.1 Was ist "Virtual Reality"?

23.1.1 Mit allen Sinnen

23.1.2 Eine kurze Geschichte

23.2 Achtung, Virtual Reality!

23.2.1 Der Spieler

23.2.2 Die Technik

23.3 Das VR Template der Unreal Engine

23.3.1 Vorbereitung

23.3.2 Neues VR-Projekt erstellen

23.3.3 VR Template ausprobieren

23.4 Das VR Template erklärt

23.4.1 VR Blueprints

23.4.2 Der MotionControllerPawn

23.4.3 Das MotionController Blueprint

23.4.4 Der Pickup Cube

23.5 Die virtuelle Wurfbude

23.5.1 Game Design

23.5.2 Das Spielfeld

23.5.3 Der Wurfball

23.5.4 Der Punktezähler

23.5.5 Ringe als Ziele

23.5.6 Hebel zum Reset

23.6 Zusammenfassung

24 Tipps und Tricks

24.1 Features, die es in die vorherigen Kapitel nicht geschafft haben

24.1.1 Split Screen

24.1.2 Authority

24.1.3 Maus zur Welt

24.1.4 Enums

24.1.5 Audio stoppen

24.2 Schlusswort

Jonas Richartz

Spiele entwickeln mit Unreal Engine 4

Programmierung mit Blueprints.
Grundlagen und fortgeschrittene Techniken

2., erweiterte Auflage

Die Autoren:

Jonas Richartz, Leichlingen
Benedikt Engelhard, Nürnberg (Kapitel 23, Virtual Reality mit Unreal Engine 4)

Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autoren und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen – oder Teilen davon – entsteht.

Ebenso übernehmen Autoren und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen­ und Markenschutz­Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.

Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) – auch nicht für Zwecke der Unterrichtsgestaltung – reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.

Lektorat: Sylvia Hasselbach
Copyediting: Katrin Powik, Lassan
Umschlagdesign: Marc Müller-Bremer, München, www.rebranding.de
Umschlagrealisation: Stephan Rönigk

Print-ISBN 978-3-446-45290-9
E-Book-ISBN 978-3-446-45369-2

Verwendete Schriften: SourceSansPro und SourceCodePro (Lizenz)
CSS-Version: 1.0

Font License Zurück zum Impressum

Copyright 2010, 2012, 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL ----------------------------------------------------------- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ----------------------------------------------------------- PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. DEFINITIONS "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. "Reserved Font Name" refers to any names specified as such after the copyright statement(s). "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. TERMINATION This license becomes null and void if any of the above conditions are not met. DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

Vorwort

Der Traum, ein eigenes Computerspiel zu erstellen, ist mittlerweile keine Seltenheit. Aufgrund der heutigen Möglichkeiten ist dies auch leichter als je zuvor. Ein kleines Spiel kannst du in wenigen Schritten zusammenstellen, und oft ist nur deine eigene Fantasie dein Limit.

Ich möchte dir in diesem Buch die Unreal Engine 4 vorstellen und dir alle möglichen Grundlagen dazu beibringen. Außerdem verdeutliche ich dir die Gedankengänge, die während der Entwicklung erforderlich sind. Die Unreal Engine 4 ist die neueste und bis dato beste Engine von Epic Games, die dir vollkommen kostenlos zur Verfügung gestellt wird. Du brauchst keine komplizierte Programmiererfahrung, um Spiele mit dieser Engine zu entwickeln, und die Community steht dir jederzeit mit Rat und Tat beiseite!

Ich hätte nie gedacht, jemals in meinem Leben ein Buch zu schreiben, bin aber sehr froh, die Gelegenheit dafür erhalten zu haben. Ich möchte mich bei Sieglinde Schärl bedanken, die mir die Tür zu diesem Buch geöffnet und mich während des Schreibens gut begleitet hat. Weiter gilt mein Dank Sylvia Hasselbach für die weitere Betreuung, Jürgen Dubau für die Korrekturen sowie dem ganzen Team des Hanser Verlags, die alle geholfen haben, dieses Buch zustande zu bringen.

Besonderer Dank gilt Benedikt Engelhard für das VR-Kapitel sowie nochmals Sylvia Hasselbach für die Betreuung der zweiten Auflage.

Sehr dankbar bin ich meiner Mutter, meinem Vater und meinem Bruder für ihre Unterstützung während der Monate des Schreibens. Ein besonderes Dankeschön geht an Christian Albrecht für seine Unterstützung und die Erstellung meiner Website.

Nicht zu vergessen der Dank an den Community Manager Chance Ivey sowie alle bei Epic Games für die fantastische Engine. Last, but not least danke ich meiner Community auf YouTube für die netten Kommentare, die mich überhaupt motiviert haben, mich an ein solches Buch zu wagen! Wenn mein Buch euch allen hilft, tolle Spiele zu erstellen, hat sich die Mühe gelohnt!

Leichlingen im August 2017

Jonas Richartz

1 Einleitung

Computerspiele zu entwickeln ist sehr viel Arbeit und kann auch nur mit jahrelanger Erfahrung bewältigt werden. So zumindest lautete die Meinung vieler in den vergangenen Jahren. Doch wie in keiner anderen Industrie verändert sich die Branche rund um die Spieleentwicklung rasant. Der Indie-Markt ist größer als je zuvor, und AAA-Spiele werden immer aufwendiger und detaillierter.

Um da mithalten zu können, benötigt man eine Engine, welche einem die Arbeit erheblich vereinfacht und zukunftsorientiert ist. Die Unreal Engine 4 von Epic Games gehört zu einer der modernsten und innovativsten Engines auf dem offenen Markt – egal ob es sich um PC, Konsolen, Mobile oder Web-Entwicklung handelt und ob man ein Spiel in 2D oder 3D entwickelt. Die Unreal Engine 4 läuft problemlos auf Windows- und Mac-Systemen (an Linux wird zurzeit noch gearbeitet), und durch ständige Updates werden eventuelle Probleme schnell behoben und neue Elemente hinzugefügt.

Bisher war es in den meisten Fällen undenkbar, dass bei einer großen Engine ohne Unmengen an Mehrkosten auch der Source-Code mitgeliefert wird. Mit der Unreal Engine 4 bekommt man jedoch erstmalig die Engine und den C++ Source-Code kostenlos. Besonders an der Unreal Engine 4 ist jedoch auch das visuelle Scripting. Noch nie war die Entwicklung von komplexen Mechaniken so einfach wie mit Blueprints, auf die sich dieses Buch hauptsächlich beziehen wird.

Die Unreal Engine 4 findet sich unter www.unrealengine.com, sie wird oft mit UE 4 und manchmal nur mit UE oder Unreal abgekürzt.

1.1 Was brauche ich?

Du brauchst zuerst einen PC oder Laptop, auf dem du entwickeln willst. Empfohlen wird ein Windows 64-Bit-System (auf dem ich dieses Buch schreibe), es funktioniert aber auch unter Mac. 8 GB Ram und eine DirectX-11-fähige Grafikkarte wären für gute Performance wünschenswert, aber nicht zwingend notwendig.

Vorkenntnisse im Bereich der Spieleentwicklung und Programmierung werden nicht benötigt. Da die Engine zurzeit nur auf Englisch erhältlich ist, sind Grundkenntnisse in Englisch von Vorteil, aber auch ohne diese wirst du dich mithilfe des Buches zurechtfinden können. Generell ist sehr viel in Englisch verfasst, vor allem was Hilfen und Ressourcen online angeht, aber es sollte dich nicht davon abhalten, dich in die Engine einzuarbeiten.

Aber für dich am Wichtigsten sind die Motivation und die Lust, Neues zu lernen, um deinen Horizont zu erweitern. Zusätzlich zu diesem schicken Buch findest du auf meiner Webseite weitere Inhalte zum Herunterladen mit begleitenden Videos und Projektdateien.

Image

Webseite: www.jonasrichartz.de

Password: sd092qnbf13

1.2 Was lerne ich?

Du wirst den kompletten Umgang mit den Basics der Engine lernen und dich nach Beendigung des Buches in der Engine zurechtfinden können, eigenständig neue Elemente in deinem Spiel einfügen können und den kompletten Denkprozess kennenlernen, der hinter der Spielentwicklung und einzelnen Features steht. Ich werde in diesem Buch eher auf die 3D-Entwicklung eingehen als die 2D-Entwicklung, was vor allem den Grund hat, dass die 3D-Entwicklung mit der Engine einfacher ist als die Entwicklung in 2D. Generell ist die Engine auf 3D-Entwicklung spezialisiert, auch wenn die Entwicklung von 2D-Spielen ebenfalls möglich ist. Ich werde auch eher auf die Entwicklung für Windows-Plattformen eingehen als auf Web, Konsolen, VR und Mobile. Die Engine unterstützt vom Prinzip her alle erdenklichen Plattformen, jedoch benötigt man bei der Entwicklung für Playstation 4 und Xbox One eigene Lizenzen von Sony und Microsoft. Mit den Lizenzen muss man dann zusätzlich Epic Games kontaktieren, um speziellen Code zu bekommen, der das Exportieren auf den jeweiligen Plattformen erlaubt. Grundsätzlich ist die Entwicklung für alle Plattformen aber sehr ähnlich und unterscheidet sich meist nur beim Vorgehen für das Exportieren auf den jeweiligen Plattformen. Natürlich muss man für Mobile und Web deutlich mehr auf die Performance achten als für Windows und Konsolen.

Du wirst kein C++ lernen, sondern die Handhabung von Blueprints, sodass du alles machen kannst, ohne eine einzige Zeile Code zu schreiben, dabei aber dennoch die Grundkenntnisse des Programmierens lernst. Das wird dir helfen, wenn du später im C++ Source-Code programmieren willst. Aber fürs Erste werden Blueprints mehr als genug sein, um fast alles umzusetzen, was du dir vorstellen kannst.

Du fragst dich nun sicherlich, was Blueprints sind und warum du ohne Programmierung auskommen kannst. Die Antworten findest du in Kapitel 4. Aber schon mal vorweg: Blueprints sind vom Prinzip nichts anderes als C++-Klassen, nur dass man keine Tausende Zeilen von Code schreiben muss, sondern mit Bausteinen arbeitet, welche im Hintergrund für dich Code ausführen. Anstatt also komplett mehrere Zeilen Code schreiben zu müssen, wirst du hier viele verschiedene Bausteine aneinanderknüpfen, um deine Logik aufzubauen, und hast somit alles auf einen Blick. Doch dazu später mehr.

Ich werde in diesem Buch alle wichtigen Bereiche der Engine durchgehen: von einfachen Kapiteln im Bereich der Landschaftserstellung und Licht- und Schattengestaltung bis hin zu komplexeren Themen wie Animationen, Netzwerke und die erste einfache KI (künstliche Intelligenz). Du wirst eine komplette Übersicht zu allen relevanten Themen bekommen, dazu zwischendurch einigen Aufgaben mit Lösungsvorschlägen im Videoformat. Des Weiteren versuche ich, dir immer kleine Beispiele zu zeigen, womit du dir ein besseres Bild über die Funktionsweise und Nützlichkeit der einzelnen Aspekte machen kannst.

Wie du vielleicht schon festgestellt hast, schreibe ich dieses Buch sehr offen, als spräche ich mit dir persönlich. Es ist mir wichtig, dass du dich wohlfühlst und dass nicht alles in einem Fremdwortwirrwarr endet.

1.3 Lizenzen

Wie bei fast jeder Engine üblich, musst du auch bei der Unreal Engine 4 gewissen Lizenzen zustimmen. Du kannst die Engine für nicht-kommerzielle und kommerzielle Projekte in den Bereichen der Spieleentwicklung kostenlos nutzen, aber auch für Film, Architektur und vieles mehr, was du mit der Engine anstellen kannst. Du darfst dir den vollen Source-Code kostenlos herunterladen und für den eigenen Nutzen abändern, jedoch nicht weiterverkaufen – es sei denn, du erstellst ein Plug-In, das du auf dem Unreal Engine Marketplace verkaufst. Es gibt hierbei keine verschiedenen Versionen der Engine, welche aufgeteilt ist in Free, Commercial oder Pro, sondern es gibt nur eine einzige Variante der Unreal Engine. Je nachdem, was du mit der Engine gestalten willst, ändert sich auch die Lizenz für dich, aber jedem Nutzer, sei es Privatperson, Schüler, Indie-Entwickler oder große AAA-Studios, steht die gleiche Engine zur Verfügung.

Solltest du dich dafür entscheiden, ein kommerzielles Produkt auf dem Markt zu bringen, das du mit der Unreal Engine 4 erstellt hast, musst du 5 % deiner Einnahmen an Epic Games abgeben, aber auch nur, wenn die Einnahmen in einem Quartal mehr als 3000 $ betragen. Solltest du also 2500 $ in einem Quartal verdienen, darfst du alles behalten. Solltest du 3100 $ verdienen, musst du von den 3100 $ an Epic Games 5 % abgeben. Genauere Informationen hierzu findest du auf Englisch unter www.unrealengine.com/faq.

Eventuell schreckt dich nun der Gedanke an die Abgaben ein wenig davon ab, die Unreal Engine 4 zu verwenden, aber bedenke, dass es sich hierbei um eine der besten Engines auf dem Markt handelt, mit der du die gleichen Optionen hast, ein Spiel zu entwickeln wie die großen Spieleentwickler, die ebenfalls die Unreal Engine 4 nutzen. Es gibt keinerlei Restriktionen, und du hast exakt das gleiche Tool wie alle anderen auch. Wenn du also das neue Unreal Tournament von Epic Games ansiehst, denk daran: Das kannst du auch.

Zusätzliche Inhalte, die ich im Beispielprojekt von Kapitel 22 erstellt habe, darfst du für dich nach Belieben in deinen eigenen Projekten nutzen, egal ob kommerziell oder nicht.

1.4 Weiterentwicklung der Engine

Es ist üblich, dass sich Engines im Laufe der Zeit weiterentwickeln und neue Versionen erscheinen. Bei der Unreal Engine 4 kommt es alle ein bis drei Monate zu einer neuen Version, welche immer Verbesserungen und neue Features mit sich bringt. Als ich mit dem Buch anfing, war gerade einmal die Version 4.7 veröffentlicht worden, und mittlerweile steht Version 4.17 in den Startlöchern. Bis du diese Zeilen liest, hat sich eventuell sogar noch viel mehr geändert, und neue Features, von denen ich noch gar nichts wusste, sind erschienen, und ich hätte diese sicherlich gerne in diesem Buch beschrieben.

Du darfst dich also nicht wundern, wenn bei meinen Videos und Bildern nicht alles hundertprozentig so aussieht wie bei dir – das lässt sich leider nicht verhindern. In der Regel verändert sich jedoch das Aussehen nur geringfügig, und die jeweiligen Elemente sind oft nur einen kleinen Klick entfernt. Auch wenn ich nun schreibe, dass Feature X/Y noch nicht in der Engine oder in Blueprints verfügbar ist, kann es sein, dass es bei dir mittlerweile ganz anders aussieht und du dir denkst: Was hat der Typ denn für einen Unsinn geschrieben . . . das ist doch alles hier!

Änderungen sind auf jeden Fall immer von Vorteil und helfen dir bei der Entwicklung, aber es kann auch hin und wieder vorkommen, dass mit einer neuen Engine Version einige deiner Blueprints aufhören zu funktionieren. Dies geschieht in den seltensten aller Fälle, und ich selbst habe es bisher auch nur ein oder zweimal erlebt, aber es kann dennoch passieren. Dann musst du genau nachschauen, an welcher Stelle das Blueprint aufhört zu funktionieren, und dein Blueprint dahingehend anpassen. Dabei kann es sich auch um etwas ganz Banales handeln, wenn z. B. die Verknüpfung zweier Funktionen gekappt wurde. Aber manchmal erfordert das Beheben solcher Probleme ein wenig mehr Vorwissen. Für den Anfang rate ich dir deswegen auch, auf einer Engine-Version zu bleiben, bis du dich mit deinen Fähigkeiten wohl genug fühlst, ehe du dir die neueste Version herunterlädst. Wenn du aus diesem Buch lernst, welches hauptsächlich mit der Version 4.8 – 4.9 erstellt wurde, wirst du dich auch in den Versionen am besten zurechtfinden können. Wie bereits erwähnt, kann ich nicht garantieren, dass sich zukünftige Versionen optisch und funktionell nicht verändern. Mit der zweiten Auflage habe ich jedoch versucht alle Änderungen bis 4.16 zu berücksichtigen und Bilder gegebenenfalls zu aktualisieren.

Aber ich will dir jetzt auch nicht zu viel Angst machen, dass du gar nicht mehr mit der Entwicklung mithalten wirst, wenn du zum ersten Mal damit arbeitest. Aber wenn du etwas nicht auf Anhieb findest, haben sich möglicherweise nur der Ort oder die Bezeichnung ein wenig verändert.

Für alle Fälle werde ich auf meinem YouTube-Kanal immer wieder Updates veröffentlichen und neue Videos herausbringen, um dich auf Änderungen aufmerksam zu machen und dich so weiterhin bei der Entwicklung deines Spiels zu begleiten.

2 Erste Schritte

Ich werde nicht nur über die Entwicklung mit der Unreal Engine 4 reden, sondern dir auch ein bisschen von der Philosophie bei der Spieleentwicklung ans Herz legen. Es gibt extrem viel zu beachten, und das alleinige Wissen über Mechaniken wird dich nicht überall hinbringen und garantiert kein erfolgreiches und spaßiges Spiel. Klar muss ich dir jetzt nicht erklären, dass es nicht so toll ist, wenn dein Spiel voller Fehler ist und dein Charakter andauernd durch den Boden fällt. Es geht mir vielmehr darum, dass du immer genau weißt, warum du etwas Bestimmtes machst und welchen Nutzen du und der Spieler daraus erhalten. Das Wichtigste ist, dass du Spaß an der Entwicklung hast und der Gamer Spaß am Spielen, dann sind alle Beteiligten glücklich und somit hoffentlich erfolgreich.

2.1 Wie fange ich an?

Es kommt immer darauf an, welches Spiel du machen willst und welche Erfahrung du mitbringst. Der logische Anfang wäre natürlich, dieses Buch zu lesen, denn einfach ohne jedwedes Vorwissen draufloszulegen, wird dir nur Probleme bereiten.

Es lohnt sich nicht, gleich von Anfang an dein Spiel der Träume zu bauen. Setze dir vielmehr zuerst kleine Ziele. Wenn du gerade das erste Mal mit der Engine anfängst und denkst: „Geil, dann mach ich jetzt mein Ultra-MMO mit zerstörbarer Landschaft und einem Minimum von 1000 Stunden Spielzeit“, dann hast du dir ein wenig zu viel vorgenommen. Fang immer klein an, vor allem wenn du noch am Lernen bist. Stelle dir kleine Aufgaben, die du nacheinander erfüllst. Beispielsweise könnten deine ersten Aufgaben darin bestehen, kleine Features wie das Öffnen und Schließen einer Tür oder das Ein- und Ausschalten mehrerer Lichter in einem Raum mit einem Lichtschalter einzubauen. Wie genau du sowas angehst, wirst du im Laufe dieses Buches noch lernen, aber das meine ich mit „klein anfangen“. Wenn du dann irgendwann soweit bist und alle Grundlagen verstanden hast, kannst du anfangen, kleinere Spiele zu bauen.

Neben der Idee brauchst du noch einen gewissen Plan, wie du die Aufgabe angehen willst. Einfach drauflos zu bauen, kann funktionieren, ist aber nicht empfehlenswert. Du musst dir genaue Gedanken machen, wie du deine Aufgabe angehen willst und was du dafür machen musst. Bleiben wir bei dem simplen Beispiel, einen Lichtschalter für Räume einzubauen. Du benötigst ein Lichtschalter-Objekt, Lichter und die Logik, um diese Lichter ein- und ausschalten zu können. Für die Funktion brauchst du eine Möglichkeit, dass dein Charakter mit dem Lichtschalter kommunizieren kann. Der Lichtschalter muss mit den jeweiligen Lichtern kommunizieren können und wissen, ob er die Lichter an- oder ausschalten soll usw.

Liegen all diese Fragen auf dem Tisch, liegt es an Dir, das Puzzle zusammenzufügen und herauszufinden, wie du die einzelnen Elemente am besten verbinden kannst. Dies kann vor allem bei komplexen Aufgaben und Funktionen helfen.

2.2 Motivation

Motivation ist ein wichtiger Faktor bei der Spieleentwicklung. Ich habe schon oft erlebt, wie mangelnde Motivation ein Projekt zum Scheitern gebracht hat. Es gibt ein paar Tricks, wie du deine Motivation aufrechterhalten kannst.

Zum einen ist Abwechslung ein guter Faktor. Wenn du mehrere Wochen an einem neuen und innovativen Feature sitzt, es aber einfach nicht so funktionieren will, wie du gerne hättest, dann lass es erstmal. Such dir eine andere Aufgabe, bring dich auf andere Gedanken und mach deinen Kopf frei. Wenn man sich zu sehr auf etwas versteift, gibt es nur Probleme. Kommst du nach einer kleinen Auszeit wieder an diese Aufgabe zurück, hast du eine vollkommen andere Sicht auf das Geschehen. Der Tunnelblick ist verschwunden, und du hast neue Ideen, dein Problem zu lösen.

Finde Teammitglieder, die genauso motiviert sind wie du! Alleine zu arbeiten kann auch Unmengen an Spaß machen – vor allem, weil man sein eigener Herr ist, aber auf Dauer ist es doch schön, andere Teammitglieder zu haben, als alles alleine zu erledigen. Aber auch hier musst du vorsichtig sein, denn Teammitglieder können auch eine große Motivationsbremse sein. Wenn Aufgaben nicht erledigt werden oder an dir hängen bleiben, keine Kommunikation herrscht und jeder macht, was er will, dann ist das mehr als nervig. Versuche also, deine Teammitglieder gut auszuwählen, und nicht nur nach deren Talent, sondern eher anhand ihrer Motivation. Jeder hat die Möglichkeiten, sein Talent zu verbessern, aber nicht jeder kann seine Motivation für längere Zeit halten.

Nimm dir nicht zu viel vor! Wenn du dir selbst direkt einen Berg an Aufgaben gibst, kannst du schnell die Übersicht und Motivation verlieren. Kleine Schritte führen zum Erfolg!

2.3 Planung

Wenn du in einem Team arbeitest, ist es wichtig, dass du und deine Teammitglieder einen Plan haben. Nicht nur, was für Aufgaben momentan erledigt werden sollen, sondern auch, welche Aufgaben schon erledigt sind und wer welche Aufgabe zugewiesen hat. Somit hast du immer einen genauen Überblick über den momentanen Entwicklungsstand und kannst sehen, an welcher Stelle es hakt und wo es gut läuft. Dafür steht dir auch eine große Bandbreite an Hilfsmitteln zur Verfügung, um deine Planung übersichtlich darzustellen.

Zum einen gibt es das kostenlose Web-Tool namens Trello. Auf Trello können neue Karten in Kategorien erzeugt und bei Beendigung in eine andere Kategorie verschoben werden. Von der Kategorie 3D-Models kann die Aufgabe Charakter erstellen in die Kategorie Erledigt bugsiert werden. Wie genau deine Kategorien heißen und wie du diese managst, bleibt dir natürlich komplett offen.

Für eine professionellere, nicht kostenlose, aber relativ günstige Möglichkeit gibt es noch Unfuddle. Ich persönlich benutze Unfuddle ebenfalls. Hier hat man die Möglichkeit, übersichtliche Tickets zu erstellen und diese Personen im Team zuteilen zu können. Sobald ein Teammitglied einen Bug findet, kann dieser dazu ein neues Ticket erstellen und es einer Person zuweisen. Dann erhalte ich auch direkt eine Mail mit dem Ticket und kann sehen, dass es einen Fehler beim Inventarsystem gibt, durch den man Gegenstände nicht mehr ablegen kann. Dann kann ich das Ticket akzeptieren, das Problem lösen und auf z. B. Testing stellen. Die anderen Mitglieder können das natürlich auch sehen, testen und bestätigen, dass der Fehler erfolgreich behoben wurde. Dann wird das Ticket archiviert, und man macht wie gewohnt weiter. Das nur als kleines Beispiel wie man die ganze Geschichte handhaben kann. Zusätzlich kann man dort noch Milestones einstellen (Zeitangaben, wann bestimmte Features fertig sein sollen), damit man ein Ziel hat, auf das hingearbeitet wird.

Es gibt natürlich unzählig verschiedene Seiten und Programme, die du benutzen kannst, und es ist egal, ob du das mit einem tollen Programm erstellst oder alles in einer eigenen Excel-Tabelle verwaltest. Die Hauptsache ist jedoch, dass du einen Überblick und richtige Planung über die Entwicklung hast.

2.4 Sicherheitskopien

Es kann immer zu Problemen kommen, die dein komplettes Projekt lahmlegen können. Sei es, dass du dein eigenes Projekt nach einem Absturz nicht mehr öffnen kannst, oder deine Festplatte den Geist aufgibt: Möglichkeiten, dein Projekt zu zerschießen, gibt es viele. Deswegen ist es immens wichtig, dass du Sicherheitskopien anlegst – am besten auf einen separaten Server.

Mithilfe von Tools wie SVN oder Git kannst du dein Projekt gesichert auf deinem eigenen Server lagern und anderen Personen Zugriff auf eben dieses Projekt geben. Jeder kann sich somit das Projekt herunterladen, Änderungen durchführen und diese auf den Server hochladen. Sollte also dein PC in die Luft fliegen, kannst du unbesorgt sein (außer natürlich du sitzt mitten in der Explosion), da deine Daten sicher sind und nichts verloren gegangen ist. Sollte es aber auch passieren, das du aus Versehen etwas hochlädst, was dein Projekt unbrauchbar machst, hast du mit SVN und Git die tolle Möglichkeit, ein paar Versionen zurückzugehen, oder nur bestimmte Dateien auf einen früheren Stand zurückzusetzen.

Im optimalen Fall musst du natürlich nicht darauf zurückgreifen, und alles läuft von Anfang an reibungslos, aber es ist immer sehr hilfreich zu wissen, dass deine Daten sicher sind. Falls dann doch irgendwann mal was passieren sollte, kannst du ruhig bleiben und musst dich nicht unnötig ärgern, deine ganze Arbeit verloren zu haben.

2.5 Learning by Doing

Eines der wichtigsten Aspekte ist das eigenständige Lernen und Ausprobieren. Ich kann dir nicht alles genau vorkauen und beibringen, dafür ist die Engine viel zu groß und vielseitig, um alles innerhalb eines Buches durchgehen zu können. Als ich anfing, mich mit der Engine auseinanderzusetzen, gab es wenige bis gar keine Hilfen und Tutorials, und ich musste mir mein Wissen selbst aneignen, indem ich einfach diverse Sachen ausprobierte und herumexperimentierte. Für mich ist das eine der effektivsten Formen des Lernens, wenn man einfach mal versucht, eigenständig ohne Hilfen Aufgaben zu erledigen. Dies ist definitiv nicht der angenehmste und schnellste Weg, aber im Endeffekt hast du mehr davon, da du die einzelnen Versuche direkt verinnerlichst. Durch das eigene Scheitern lernst du aus deinen Fehlern und bist somit besser gewappnet für die Zukunft, als wenn du alles einfach nur kopierst, ohne dir eigenständig Gedanken zu machen.

Klar, ein bisschen Hilfe kann man immer gebrauchen, vor allem am Anfang. Mir geht es aber darum, dass du nicht sofort aufgibst, sobald du vor einer Hürde stehst, und in einem Forum nach einer schnellen Lösung suchst, sondern zuerst für dich selbst versuchst, eine Lösung zu finden. Auch wenn du dann mehrere Tage an einem an sich einfachen Problem sitzt, macht gerade das Lösen eines Problems am meisten Spaß, wenn du dies eigenständig geleistet hast.

Und zur Not, wenn es gar nicht weitergeht, kann man sich immer noch von anderen helfen lassen.

3 Grundlagen