Reproduzierbarkeit der prozeduralen Levelgenerierung – Unity3D Tutorial
Nach dem wir in der letzten Folge den Einstieg in die Prozedurale Levelgenerierung gemacht haben, werden, werden ich mit Dir in dieser Folge eine wichtige Kernfunktion unseres Levelgenerators entwickeln.
Das Problem mit der Reproduzierbarkeit
Um ein zufälliges Level zu erzeugen, braucht man im Grunde nicht ganz so viel. Du musst einfach bestimmte Werte, wie z.B. die Position oder die Länge eines Gegenstandes mit einem Zufallsgenerator bestimmen.
Prozedurale Generierung bedeutet aber nicht einfach nur etwas per Zufall zu erzeugen. Ein wichtiges Merkmal dieser Vorgehensweise ist das der Reproduzierbarkeit eines Endergebnisses.
Denn auch wenn es für den Spieler aussieht, als wäre das Level per Zufall generiert worden, so muss es trotzdem unter Zuhilfenahme der gleichen Randbedingungen wieder möglich sein, das gleiche Level nochmal zu erzeugen.
Für diese Fähigkeit müssen wir auf die normalen Zufallswerte, die man in Unity mit der Random-Klasse erzeugen kann, verzichten. Stattdessen nutzen wir die Random-Klasse aus dem System-Namespace der .Net-Frameworks bzw. des Monoframeworks.
Dieser kann man nämlich unter anderem auch einen Initialwert (im Video nenne ich diesen Wert „Startwert“) mitgeben, auf dessen Basis dann nach einem festen Algorithmus die Zahlen erzeugt werden. Hierdurch bekommen wir schließlich die Reproduzierbarkeit hin.
Wie dies aber genau funktioniert und was Du dabei zu beachten hast, zeige ich Dir nun in dem folgenden Video. Viel Spaß damit!
Video-Tutorial
Hier ist da Video:
Nächste Folge
Die Prozeduralere Generierung von 2D Plattformen ist das Thema der nächsten Folge dieser Tutorial-Reihe.
Prozedurale Generierung hat mich schon länger interessiert. Und genau dieser Punkt mit dem Wiederherstellen hat mir immer viel Kopfschmerzen bereitet. Die Idee mit dem Vorgabewert finde ich sehr gelungen. Danke!
CU Sammy
Hi Sammy,
das freut mich, vielen Dank für das Lob 🙂
Gruß Carsten