Blog-style website for karathan using the self-made Stellar Theme powered by HTML5Up http://blog.karathan.at

about-procedural.md 7.1KB


Title: “Über: Procedural Generation” Description: Eine Mechanik, die wir alle nun schon allzu gut kennen. Eine Karte, erschaffen von einem Algorithmus, eine Welt, designed von deiner CPU. In diesem Artikel nur ein paar Gedanken über diese weit verbreitete Technik. Template: article

ReleaseIndex: 0

Ein paar Worte über Procedural Generation, ein mächtiges Werkzeug. Eine Insel, eine Weltkarte oder ein ganzes Universum, immer wieder neu generiert von einem Computer, in Rekordgeschwindigkeit. Das alles ist Procedural Generation. Dieser Artikel soll nicht davon handeln wie genau eine Welt generiert werden kann, wenngleich die Mathematik hinter einem solchen algorithmischen Monster sicherlich äußerst interessant ist. Ich will verschiedenste Anwendungen diskutieren und dabei eine Grundfrage beantworten: Wann ist es sinnvoll, seine Welt von einem Computer generieren zu lassen?

Sicherlich wird der ein oder andere Entwickler eine andere Antwort auf diese Frage geben. Ich bin mir vorweg sicher, eine eindeutige Antwort wird man nicht finden können, aber einige Extrembeispiele zeigen, wie es (nicht) geht.

Was nun eigentlich?

Fangen wir damit an, uns einen Rahmen zu bauen. Was genau meinen wir eigentlich mit Procedural Generation? Nun, gerade um diesen Artikel auf einen Kernpunkt zu beschränken: Eine Spielwelt, generiert von einem Computer, grundsätzlich ohne Hilfe eines Leveldesigners. Erzeugt werden kann eine nicht näher definierte, sehr große Anzahl an Welten, jedenfalls ohne dass der Leveldesigner seine magischen Fähigkeiten an jeder einzelnen von ihnen anwenden muss. Natürlich ist es in der Praxis oft so, dass eine Anzahl an im vorhinein erzeugten Strukturen und Parametern dem Generator dabei hilft, sein Ziel zu erreichen. Diese Parameter könnten unter anderem festlegen, wie viel Wald auf einer Karte sein soll, wie groß die Berge sein sollen, etc.

Sounds good, does it work?

Ans Eingemachte: Nicht gerade wenige Videospiele vertrauen darauf, Welten „ex nihilo“ zu erzeugen. Also ja, es funktioniert. Wir nehmen also einfach einen Algorithmus und schnallen ihn auf all die Spiele, die wir kennen und lieben, und schwupps: Endloser Spielspaß… Naja. Dass es so nicht geht, sollte wohl auch jedem klar sein. Aber wo genau ist denn nun die Grenze? Wann wird ein Spiel besser, wann vielleicht gar schlechter? Ein Grundgedanke bei diesem ganzen Konzept ist es, eine Welt zu erschaffen, deren Rahmenbedingungen man festgelegt hat. Man hat sie nicht erschaffen, aber man war doch maßeblich am Designprozess beteiligt.

A world, not of my making, yet a world of my design

Ein Zitat aus einem alten 64K Video (Zumindest konnte ich es soweit zurück verfolgen) – Das impliziert aber auch, dass gerade eben keine Details in solche Welten einfließen können. Dieses Haus am See, das von einer alten Hexe bewohnt wird, welche einen umfassenden Dialog mit dem Spieler führt, eine faszinierende Geschichte hat und obendrein noch verdammt viele Warzen im Gesicht? Sie wird nicht existieren in einer Welt, die eben nicht von einem Designer erstellt wurde. (Es sei denn, der Algorithmus weiß genau bescheid von unserer Hexe, aber das wäre ja geschummelt, sie wäre dann ja nicht mehr generiert worden)

Worauf will ich hier also hinaus, eine Maschine wird uns keine Geschichten erzählen. Die Kunst dessen, des Erzählens, ist etwas, das Maschinen uns Menschen noch nicht abnehmen können. Ja allein die semantischen Eigenschaften unserer Sprachen sind oftmals für Maschinen noch schwer zu verstehen. Das schließt also aus, ein Spiel, welches viele und umfangreiche Geschichten zu erzählen hat von einer Maschine generieren zu lassen (Beziehungsweise dessen Welt und somit auch die Geschichte selbst)

Was macht nun ein Spiel aus, dass man sagen kann, eine generierte Welt ist besser, als eine von einem Designer erstellte. Nun, meine einfache, und möglicherweise umstrittene, Antwort lautet: Nichts. Ein Leveldesigner wird immer eine bessere Welt erschaffen können als ein Algorithmus. Nun, ich bin leidenschaftlicher Mathematiker, ein Beweis für diese These könnte wie folgt aussehen: Man nehme eine beliebige, von einem Algorithmus generierte Welt. Findet man nun etwas an dieser Welt, was man als Menschlicher Designer verbessern hätte können (Beurteilt von einer externen Referenzgruppe) – So ist das Level schlechter als das neue, verbesserte Level. Im großen und ganzen, wird man so etwas immer finden. Dieses Dorf in Minecraft, in dem das Haus eines Bewohners auf einer Säule aus Stein steht, weil der Ausgangspunkt auf dem anliegenden Berg liegt? Jap, und das ist nur ein einfaches Beispiel, man stelle sich vor jede Karte in Minecraft würde aussehen wie eine von den vielen, von Spielern gebauten Karten, mit ihren eigenen kleinen Geschichten und Gimmicks – Nur leider ist dem nicht so, und es ist an der Zeit, für die Generatoren ihren Schein auf die Welten fallen zu lassen, die sie erschaffen.

Die Grenzen von Design

Wir alle haben unsere Grenzen. Die Grenzen eines Computers, sind, in einem Aspekt, Geschichten zu erzählen, aber auch andere Designentscheidungen zu treffen. Und die Grenzen eines Menschen sind, nun, Geschwindigkeit. Eine von einem Menschen erstellte Karte in Minecraft kommt wohl kaum mit einer Produktionszeit von unter einem Monat aus, vielleicht einem Jahr oder noch länger. Ähnliche Zeitspannen gelten natürlich auch für jede andere Spielwelt, die von einem Menschen geschaffen wurde. Und ein Spiel, dass sich eben darauf verlässt, eine so große Zahl an Welten sein Eigen nennen zu dürfen, muss sich auch Zwangsweise auf seine Algorithmik verlassen. Es erhöht die Replayability eines Spiels maßgeblich, wenn die Welt bei jedem Versuch eine andere ist. Nur muss sich der Entwickler dann eben auch im Klaren sein, was damit verbunden ist und wie man manche Probleme am Effektivsten löst (Wobei es auf manche Probleme wohl überhaupt keine Lösung gibt)

Fazit

Nun gut, keine Lore und Geschichte mit einem Procedural Generation Algorithmus, dann ist alles gut? Naja, ja und nein. Zum einen muss ein Spiel, wenn es überhaupt keine Geschichte erzählen kann, umso mehr mit seinem Gameplay glänzen. Zum anderen gibt es auch Titel, die sowohl mit Geschichte, als auch mit endlosen Welten prahlen können. Man nehme als Beispiel die Pokémon Spin-Off Reihe „Mystery Dungeon“ oder „Diablo“ aus dem Hause Blizzard. Wie funktioniert das hier, wenn ich doch vorhin gesagt habe, dass so ein Algorithmus keine Geschichten erzählen kann. Nun, die Geschichte wird hier einfach von den Inhalten erzählt, die eben von Hand gemacht wurden. Cinematics, von Hand erstellte Karten und scripted Szenen bauen eine Geschichte auf, während das eigentliche Gameplay in einer anderen, nicht vom Designer erstellten Welt stattfindet. Noch dazu sind die meisten dieser Welten Höhlen, welche sehr einfach generiert und verschönert werden können. Man hat mit Procedural Generation also ein mächtiges Werkzeug, muss sich aber im Klaren sein, dass man selbst immer noch Entwickler eines Spiels sein muss, der sein Werkzeug verwenden kann. Das Werkzeug wird die Arbeit nicht von selbst verrichten.