Prozedurale Synthese

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Prozedurale Synthese oder Prozedurale Generierung bezeichnet in der Informatik Methoden zur Erzeugung von Programminhalten wie Texturen, virtuellen Welten, 3D-Objekten und sogar Musik in Echtzeit und während der Ausführung des Computerprogrammes, ohne dass diese Inhalte vor der Benutzung vom Entwickler fest angelegt und in ihrer endgültigen Form an den Nutzer weitergegeben werden. Dabei werden die Inhalte keineswegs zufällig erzeugt, sondern die Generierung folgt deterministischen Algorithmen, um bei gleichen Ausgangsbedingungen immer wieder dieselben Inhalte erzeugen zu können. Dadurch eröffnet sich dem Entwickler die Möglichkeit, äußerst umfangreiche und komplexe Inhalte zeit- und platzsparend zu entwickeln und weiterzugeben.

Prozedurale Synthese ist nicht mit Prozeduraler Programmierung zu verwechseln.

Anwendungsbeispiele[Bearbeiten]

Besonders in Computerspielen findet die prozedurale Synthese Anwendung, um weitläufige und komplexe Welten und Landschaften zu erzeugen, die bei jedem Start des Spiels gleich aussehen, sich jedoch auch leicht über die Parameter der Synthese verändern und erweitern lassen.

Es seien im Folgenden einige exemplarische Beispiele genannt:

  • Frühe Beispiele für die Verwendung prozeduraler Synthese sind Elite (1984) und The Sentinel (1986). Die acht Spielgalaxien in Elite werden aus sechs Bytes prozedural generiert, inklusive Koordinaten, Planetenname, Größe, etc. [1]. In der Fortsetzung von Elite: Frontier (1993) wurde eine virtuelle Milchstraße mit 100.000.000.000 (100 Milliarden) Sonnensystemen prozedural generiert.
  • In der Weltraum-Simulation Space Engine werden unkartografierte Regionen des Universums prozedural generiert. So ist es möglich, dass Space Engine Galaxien mit je mehreren Milliarden Sternen und Planeten füllt und deren Oberflächen ebenfalls prozedural berechnet, dabei aber der Speicherplatzverbrauch nur 500 MB beträgt.
  • In The Elder Scrolls IV: Oblivion wird die Vegetation der Spielwelt prozedural generiert. Dies ist ein Beispiel für eine hybride Verwendung der prozeduralen Synthese: Position und Eigenschaften der Vegetation werden durch die Synthese bestimmt, die Texturen der Stämme und Blätter werden dann jedoch aus von Künstlern während der Entwicklung des Spiels entworfenen Bilddateien geladen, anstatt ebenfalls synthetisiert zu werden.[2]
  • Das zukünftige MMORPG Infinity: The Quest For Earth basiert auf einer realistisch dimensionierten, prozedural generierten Galaxie mit Milliarden von Planetensystemen, die jeweils unzählige astronomische Objekte wie Planeten und Asteroiden umfassen. Die gewaltigen Ausmaße und Anzahlen von möglichst einzigartigen Objekten (im Entwicklungsstand von Juli 2007 wurde allein für die Identifikation der Asteroiden pro Sonnensystem ein sogenannter Octree (ein Baum mit acht Kindknoten pro Knoten) mit 14 Ebenen verwendet, der pro Knoten viele Hundert bis einige Tausend Asteroiden verwalten konnte, was insgesamt eine Objektzahl in der Größenordnung von 10^{15} pro Octree ermöglicht [3]) macht es buchstäblich unmöglich, für jede Entität Position und Aussehen zu bestimmen. Das Spiel wird von einem einzigen Programmierer, Flavien Brebion, (und einigen zuarbeitenden Künstlern und Modellierern) entwickelt.[4]
  • Das Spiel Minecraft, ebenfalls ein MMORPG, arbeitet ebenfalls mit prozeduraler Synthese, wobei noch weitere Prozeduren wie die Perlin-Noise-Funktion angewandt werden, um die theoretisch unbegrenzte Landschaft zu erzeugen. Die Prozedurale Synthese wird hier nur durch einen Zufallswert, der auf die Uhrzeit basiert sowie von verschiedenen Variablen begrenzt. Ebenfalls kann durch die prozedurale Synthese zum einen wiederum sehr viel Speicherplatz gespart, und zum anderen erst die Individualität des Spiels durch die unvorhersehbaren Welten gegeben werden.
  • Besondere Bedeutung hat die prozedurale Synthese in der Demoszene, in der möglichst komplexe Programme mit möglichst wenig Speicherbedarf das Entwicklungsziel darstellen. So hat der komplett auf prozeduraler Generierung basierende Ego-Shooter .kkrieger der deutschen Demogruppe Farbrausch trotz überraschend guter grafischer Qualität und Spielumfang einen Speicherbedarf von lediglich knapp 96 Kilobyte, was grob einem Fünfzigtausendstel des Speicherbedarfs eines modernen kommerziellen Shooters entspricht (Rechengrundlage: eine DVD-5). Die Entwickler gehen davon aus, dass das Spiel bei Verzicht auf die prozedurale Synthese etwa 200 bis 300 Megabyte beansprucht hätte.[5] .kkrieger gewann im Jahr 2006 den Innovationspreis der Jury des Deutschen Entwicklerpreises.[6]
  • Der Oktober 2009 erschienene Shooter Borderlands stellt dem Nutzer etwa 17 Millionen prozedural erstellte Schusswaffen zur Verfügung, die auch unterschiedliche Eigenschaften haben.[7]

Siehe auch[Bearbeiten]

Quellen[Bearbeiten]

  1. www.frontier.co.uk Elite. Abgerufen am 16. Oktober 2011 (englisch).
  2. Oblivion: Full spectrum content, from hand-generated to procedural. Abgerufen am 16. Oktober 2011 (englisch).
  3. Entwickler-Logbuch. Abgerufen am 16. Oktober 2011 (englisch).
  4. Infinity Overview. Abgerufen am 16. Oktober 2011 (englisch).
  5. kkrieger. Abgerufen am 16. Oktober 2011 (deutsch).
  6. → Hall of Fame → Preisträger. (Seite benötigt Adobe Flash). Abgerufen am 16. Oktober 2011 (deutsch).
  7. Gearbox interview: Randy Pitchford on Borderlands' 17 million guns. In: ComputerAndVideoGames.com. 28. Juli 2009, abgerufen am 16. Oktober 2010 (englisch).

Weblinks[Bearbeiten]

Deutschsprachiges Forum zum Informationsaustausch zum Thema Prozedurale Synthese und Prozedurale Generierung