Ablaufgetreue Zerstörung in der heute erscheinenden PS4 Superhelden-Simulation Megaton Rainfall

1 0
Ablaufgetreue Zerstörung in der heute erscheinenden PS4 Superhelden-Simulation Megaton Rainfall

Erfahre mehr über die Technik hinter dem epischen Actionknaller von Pentadimensional Games

Alfonso del Cerro Aguilar, Designer und Programmierer, Pentadimensional Games:


Winter 2012. Ich saß auf meinem Sofa, der Laptop wärmte meine Beine, und ich spielte mit einer sehr frühen Version von Megaton Rainfall herum (noch bevor es so hieß).

Auf dem Bildschirm fielen Gebäude in sich zusammen, und zwar abhängig davon, wo man sie mit seinen Schüssen traf. Es sah einfach klasse aus. Ich weiß noch, wie ich dachte: „Oh Mann, das ist sowas von cool!”. Und mir war klar, dass ich das Spiel unbedingt bis zum Ende durchspielen wollte. (Wofür ich übrigens meine Arbeit kündigen musste.)

Genau wie andere Leute auch liebe ich Hollywood-Actionfilme mit vielen Explosionen. Und in einem Punkt sind Explosionen in Filmen besser als in Spielen.

Die meisten Explosionen in Spielen sind nicht ablaufgetreu (Stichwort: procedural destruction), sondern funktionieren so: Nehmen wir an, ein Haus wird von einer Rakete getroffen und explodiert. Bei der Explosion wird das Modell des Hauses einfach durch das Modell eines zerstörten Hauses ersetzt und gleichzeitig wird ein Partikeleffekt (Feuer, Rauch, Trümmerteile) darübergelegt. Es gibt keinen natürlichen Ablauf der Dinge. Man bemerkt den plötzlichen Sprung, den Schnitt, sobald die Explosion erscheint, und man hat nicht den Eindruck, dass das Haus selbst wirklich explodiert. Das zerstörte Haus hat auch kein Loch an genau der Stelle, an der es von der Rakete getroffen wurde. (Weil es nämlich von einem Grafiker entworfen wurde, der nicht wusste, von wo die Rakete kommen würde.)

Eine Lösung wäre, das Haus stückweise im Arbeitsspeicher zu haben, in unzählige Teile aufgespalten, und bei der Explosion zu diesem Modell zu wechseln und nur die Teile von der Aufschlagstelle der Rakete wegzubewegen, aber … Was ist, wenn ein Spieleentwickler gewaltige Explosionen von riesigen Wolkenkratzern in einer 300 Quadratkilometer großen Stadt auf den Bildschirm bringen will? Dann würde der Arbeitsspeicher schnell in die Knie gehen.

Zur Hilfe kommen da zwei clevere Ideen, die all das in Megaton Rainfall möglich machen, und zwar bei 60 fps und in Stereo-Rendering für Virtual Reality-Anwendungen.

(Übrigens würde ich mir diesen Artikel gerne selber zuschicken, ins Jahr 2012, dann hätte ich mir eine Menge vergeblicher Versuche sparen können.)

Idee 1: Pre-Explosion Snapshot der Gebäude

Erste Idee: Im Augenblick der Explosion erstellt die Grafikengine ein Abbild von dem Haus, wie es die Kamera sieht. Ein Abbild als Bitmap.

Dann erzeugt die Engine einen Partikeleffekt, der den explodierenden Bereich füllt, und benutzt das Abbild als Textur für die Partikel, so dass die von den Partikel gefüllte Fläche so aussieht wie im Augenblick der Explosion. Voilà, der auffällige „Schnitt” ist verschwunden! Man kann sämtliche Details während der Explosion mit den Augen verfolgen, bis die Partikel verschwinden. Die Partikel sind übrigens GPU-beschleunigte 2D-Billboards. Davon kann die PS4 eine gewaltige Menge gleichzeitig problemlos bewältigen. Das Gefühl ist phänomenal und soweit ich weiß erstellt kein anderes Spiel Explosionen auf diese Weise.

Idee 2: Wechsel zwischen zwei Versionen von Gebäuden

Zweite Idee: Wie generiert man das zerstörte Haus unter Berücksichtigung der dicken Innenwände und der Stelle der Explosion?

Der Trick ist, zwei Versionen von dem Haus zu haben: ein flaches „Papiermodell” (bei dem die Wände keine Dicke haben und das der Spieler nicht sieht) und ein „aufgeblähtes Modell” (mit dicken Wänden, das auf dem Bildschirm gezeigt wird). Die Engine ist in der Lage, das Gitter des Papiermodells blitzschnell in das Gitter des aufgeblähten Modells umzuwandeln. Wenn es zu einer neuen Explosion kommt, wird die aufgeblähte Version verworfen und die Gitterdreiecke des Papiermodells nahe der Explosion werden entfernt (das Papiermodell wird aktualisiert), und dann wird die aufgeblähte Version auf Basis des neuen Papiermodells erstellt.

Dann kommen noch Feuer, Rauch, Funken, eine Druckwelle, Möbel und ein paar Leute, die zur falschen Zeit am falschen Ort waren und zack … Fertig ist die ablaufgetreue Explosion! (Feuer sieht man nur in der Nacht. Künstlerische Freiheit und so. Und Leute sieht man nur, wenn die Kamera weit weg ist. Wir wollen ein PEGI-Rating „ab 18″ vermeiden.)

Es gibt noch viel mehr Arten von Explosionen in dem Spiel, aber ich habe schon genug geschrieben und darf die Zeichenbegrenzung nicht sprengen. Dafür gibt es aber noch ein GIF:

Kommentare sind geschlossen.

1 Kommentar


    Loading More Comments

    Bitte gib dein Geburtsdatum ein.

    Date of birth fields