Instanziieren (Fortsetzung)

Wiederholung

Das Instanziieren hat mehrere praktische Einsatzmöglichkeiten. Du hast:

  • Die Möglichkeit Szenen aufzuteilen und diese einfacher zu Hand haben.
  • Ein Werkzeug zum gleichzeitigen Bearbeiten mehrerer Nodes.
  • Einen Weg deinen komplexe Spielfluss oder sogar UI’s (in Godot sind UI Elemente auch Nodes) zu organisieren und einzubetten.

Designsprache

Die größte Stärke des Instanziierens von Szenen ist jedoch, dass es sich als ausgezeichnete Designsprache verwenden lässt. Dies ist der zentrale Unterschied zwischen Godot und allen anderen Engines die es so gibt. Godot wurde von Grund auf um dieses Konzept herum entworfen.

Bei der Erstellung von Spielen mit Godot wird empfohlen, die meisten gängigen Entwurfsmuster, wie MVC- oder Entity-Relationship-Diagramme, zu vergessen und stattdessen Szenen auf einem natürlicheren Weg zu gestalten. Stelle Dir zunächst die sichtbaren Elemente in Deinem Spiel vor, die nicht nur von einem Programmierer, sondern von jedermann benannt werden können.

So könnte man sich zum Beispiel einen einfachen Shooter vorstellen:

../../_images/shooter_instancing.png

Solch ein Diagramm kann man für jedes mögliche Spiel erstellen. Schreibe auf, welche Teile des Spiels du visualisieren kannst und füge Pfeile hinzu, um die Beziehungen zwischen den Komponenten zu repräsentieren.

Sobald du solch ein Diagramm hast, empfiehlt es sich für jedes Element im Diagramm eine Szene zu erstellen. Um die Beziehungen zu verwirklichen wirst du das Instanziieren (entweder im Code oder direkt im Editor) verwenden.

Bei der Programmierung von Spielen (oder Software im Allgemeinen) wird viel Zeit darauf verwendet, eine Architektur zu entwerfen und Spielekomponenten an diese Architektur anzupassen. Das auf Szenen basierende Design ersetzt diesen Ansatz und macht die Entwicklung viel schneller und einfacher, sodass Du Dich auf die Spielelogik selbst konzentrieren kannst. Da die meisten Spielekomponenten direkt einer Szene zugeordnet sind, erfordert die Verwendung eines solchen Designs, das auf Szenen-Instantiierung basiert, wenig anderen architektonischen Code.

Schauen wir uns ein etwas komplexeres Beispiel eines Open-World-Spiels mit vielen Nutzerinhalten (Assets) und verschachtelten Elementen an:

../../_images/openworld_instancing.png

Schau Dir das Raumelement an. Nehmen wir an, wir haben dort angefangen. Wir könnten ein paar verschiedene Raumszenen mit verschiedenen Anordnungen von Möbeln (auch Szenen) erstellen. Später könnten wir eine Hausszene erstellen, die die Räume verbindet und so das Innere abbildet.

Dann könnten wir eine „Festung“-Szene erstellen, die aus vielen instanziierten Häusern besteht. Dann könnten wir anfangen, auf dem Gelände der Weltkarte zu arbeiten und die Festung hinzuzufügen.

Später könnten wir Szenen anlegen, die Wachen repräsentieren (und andere NPCs) und dieser der Festung hinzufügen. Das Resultat wäre, dass sie indirekt der kompletten Spielwelt hinzugefügt werden.

Mit Godot ist es einfach Dein Spiel auf diese Weise zu erweitern, da Du lediglich weitere Szenen erstellen und instanziieren musst. Darüber hinaus ist die Benutzeroberfläche des Editors so gestaltet, dass sie sowohl für Programmierer als auch für Nichtprogrammierer anwenderfreundlich ist. Ein typisches Entwicklerteam kann 2D- oder 3D-Künstler, Leveldesigner, Spieldesigner und Animatoren umfassen, die alle mit der Editorschnittstelle arbeiten.

Informationsüberfluss!

Dies ist eine Menge an Informationen auf hohem Niveau, die auf einmal auf Dich zukommen. Der wichtigste Teil dieses Tutorials bestand jedoch darin, ein Bewusstsein dafür zu schaffen, wie Szenen und Instanzen in realen Projekten verwendet werden.

Alles, was wir hier beschrieben haben wird mit der Zeit ganz natürlich für Dich, wenn Du anfängst Spiele zu erstellen und die Konzepte in die Praxis umzusetzen. Kümmere Dich für das Erste nicht darum und beginne mit der nächsten Anleitung!