: Alexander Rudolph
: Erfolgreiche Spieleentwicklung Minecraft-Welten erschaffen Teil 2
: entwickler.press
: 9783868027440
: 1
: CHF 2.70
:
: Informatik
: German
: 184
: Wasserzeichen
: PC/MAC/eReader/Tablet
: ePUB
Die Arbeit an unserer Blockwelt ist noch lange nicht abgeschlossen. In der Fortsetzung zum ersten Teil dieser shortcut-Serie beschäftigt sich Alexander Rudolph zunächst mit der Weiterentwicklung der Noise-Funktionen im 3-D-Bereich. Im zweiten Kapitel verleiht er mit Hilfe von Cloud und Water Rendering in OpenGL der Welt ein wenig Leben, während im nächsten Schritt die ersten menschlichen Bewohner animiert werden. Danach wird die Welt noch einmal realistischer: Ein dynamisches Wettersystem wird unter Einsatz verschiedener Shader implementiert, bevor der Autor sich im letzten Kapitel mit der Thematik und Problematik von Open-World-Spielen auseinandersetzt.

Alexander Rudolph schrieb zwei Bücher über das Thema Spieleprogrammierung mit DirectX für den Markt+Technik Verlag, eine Artikelserie über die Spieleentwicklung mit OpenGL und OpenAL und war an der Entwicklung sowohl der Grafik- wie auch der Physik-Engine für das Spiel Söldner 2 beteiligt. In regelmäßigen Abständen veröffentlicht er auf seiner Webseite www.spieleprogrammierung.net Artikel und Tutorials über den Einsatz von OpenCL sowie der modernen OpenGL-Spezifikationen 3.x und 4.x und ist als freier Mitarbeiter im Bereich 3-D-Programmierung tätig. Seine E-Books 'Spieleentwicklung - Mathematik mit Fun-Faktor' und 'Spieleentwicklung - OpenGL mit Fun-Faktor' vermitteln Einblicke in die Welt der Spieleprogrammierung.

1 Spieleweltgestaltung in drei Dimensionen

Obwohl unsere zuletzt erzeugten Landschaften bereits recht ansprechend und abwechslungsreich wirkten, kamen bei ihrer Berechnung bislang lediglich zweidimensionale Noise-Funktionen zum Einsatz. Heute werden wir uns damit befassen, wie sich die zugrunde liegenden Konzepte um eine zusätzliche Dimension erweitern lassen – denn erst mithilfe von 3D-Noise-Funktionen und 3-D-Random-Walk-Simulationen wird es möglich, dreidimensionale Geländeformationen, Höhlensysteme oder unterirdische Rohstofflagerstätten zu generieren.

Continuous Development ist das Stichwort – dieses Kapitel steht voll und ganz im Zeichen der Weiterentwicklung der von uns bislang eingesetzten prozeduralen Gestaltungstechniken und Beleuchtungsmodelle. Im ersten shortcut „Erfolgreiche Spieleentwicklung. Minecraft-Welten erschaffen“ sind wir darauf zu sprechen gekommen, wie sich unterschiedliche, vom Breitengrad abhängige Landschaftstypen und Vegetationsformen auf mathematischem Wege erzeugen lassen. Wir haben ein einfaches CPU-basiertes Verfahren besprochen, mit dessen Hilfe sich die Ausbreitung des indirekten Tageslichts halbwegs realistisch simulieren lässt. Auch haben wir uns mit den wichtigsten Einzelheiten einer von der Jahreszeit abhängigen Landschafts- und Vegetationsdarstellung auseinandergesetzt.

So weit, so gut. Bisher haben wir uns damit in unserem Spieleprototyp jedoch ausschließlich auf die Oberflächengestaltung und -darstellung beschränkt. Der Aufbau einer blockbasierten, von Minecraft inspirierten Welt lässt sich allerdings nicht mit den Spielewelten anderer Titel vergleichen, in denen eine Landschaft im Prinzip nichts weiter als eine in der xz-Ebene definierte Fläche ist, deren Höhenwerte man vorzugsweise unter Zuhilfenahme einer Height-Map von Ort zu Ort variiert. Sieht man einmal von der Tatsache ab, dass wir anstelle von Height-Maps auf 2D-Noise-Funktionen (2-D-Rauschen) zurückgegriffen haben, um das Höhenprofil unserer prozeduralen Landschaften zu verändern oder um die Spielewelt in unterschiedliche Regionen aufzuteilen, dann sind wir bisher auf eine ganz ähnliche Weise vorgegangen. Auch das von uns verwendete Beleuchtungsmodell ist noch extrem verbesserungswürdig, da wir bislang lediglich die Ausbreitung des indirekten Tageslichts simuliert haben. Eine zweite natürliche Lichtquelle, die uns im weiteren Verlauf noch häufiger begegnen wird, haben wir indes vollkommen außer Acht gelassen: Lava.

Aber keine Sorge, weder was die Beleuchtungsberechnungen, noch was die prozedurale Generierung der Spielewelt betrifft, müssen wir wieder von vorne beginnen. Betrachten Sie einfach die bislang erzeugten Landschaften als eine Art Zwischenergebnis, das es in weiteren Schritten mehr oder weniger umfangreich zu überarbeite