Design: Das neue Schadenssystem


Wie ihr bereits in der Vergangenheit sehen konntet, unter anderem im Monatsreport von Star Citizen im Bereich des Foundry 42-Teams und als Preview in Around the Verse, arbeiten mehrere Entwickler an einem neuen und verbesserten Schadensmodell für die Raumschiffe im Spiel - vom kleinsten Jäger bis zum größten Träger. ihr konntet bereits in Arena Commander sehen, dass wir ein sehr mächtiges und flexibles System verwenden, um einerseits den Schaden an einem Schiff sichtbar zu machen und auf der anderen Seite das Ganze auch für die Spielemechanik zu verwalten. Aber die Schiffe in Star Citizen sind nur ein kleiner Teil des Spiels und wir mussten einige Anpassungen für die zukünftige Entwicklung vornehmen.

Wir haben im ersten Schritt eine Analyse unseres aktuellen Schadenssystems vorgenommen, um herauszufinden, wie wir es weiter verbessern können. Obwohl es schon sehr viel Spaß machte, ein Schiff Stück für Stück auseinanderzunehmen, fehlte uns die Möglichkeit, sichtbar zu machen, an welcher Stelle der Schaden genau aufgetreten ist. Auch sollte man durch die Betrachtung des Schiffes sofort erkennen können, ob ein Projektil, ein Laser oder eine Explosion zu einem Schaden geführt hat oder ob die Schrammen am Schiff nur durch einen verunglückten Landevorgang entstanden sind. Zwei weitere Gründe für eine Überarbeitung des Schadenssystems waren der große zeitliche und personelle Aufwand, der unseren Entwicklern entsteht, wenn sie für jedes einzelne Schiff die Schadensstufen entwerfen müssen und zum anderen brachte das alte System sehr hohe Speicheranforderungen mit sich. Beides hätte langfristig zu größeren Problemen in der Entwicklung des Spiels geführt.

Warum das so ist, erläutert das folgende Beispiel:

Jedes Schiff besteht aus wenigstens zehn Bestandteilen, jeder von diesen besitzt fünf Schadensstufen (von vollständig erhalten bis vollständig zerstört) und diese bestehen wiederum aus bis zu fünf Meshes (Polygonnetz). Wir benötigen also insgesamt über 200 dieser Meshes pro Schiff. Und wir sprechen hier nur von den kleineren Schiffen!

Wenn ihr euch das aktuelle Schadensmodell in Arena Commander anseht, werdet ihr feststellen, dass die ersten beiden Schadensstufen nur aus kleinen Beulen und Brandspuren auf der Hülle und vielleicht ein paar Schadenseffekten in eurem Cockpit, wie gestörte oder zerstörte Monitore, bestehen. Erst bei 75% und 100% Schaden werden erhebliche Veränderungen am Rumpf sichtbar. Und jede dieser Schadenstufen (auch jene, die keine großen Auswirkungen auf die Silhouette des Rumpfes haben) hat die gleichen hohen Anforderungen an den Speicherbedarf.



Unser Ziel war es, die kleineren Beschädigungen darstellen zu können, ohne neue Meshes erzeugen zu müssen und damit sowohl Speicher als auch Entwicklungszeit einzusparen. Zu diesem Zweck haben wir mehrere Schichten von Texturen entwickelt, welche auf dem kompletten Schiff aufgebracht werden. Diese Texturen werden dann exakt an jenem Ort angezeigt, an dem dein Schiff Schaden nimmt. Man kann sich das wie Schichten vorstellen, die langsam freigegeben werden (Schälen einer Zwiebel). Diese Schichten zeigen euch je nach Schadensstärke und Schadensart immer mehr Details des Innenlebens eures Schiffes.

Wie und in welcher Art diese Texturschichten angezeigt werden, hängt davon ab wie und wodurch der Schaden entstanden ist. Insgesamt gibt es vier Grundarten:

Temperatur: Die aktuelle Temperatur der Hülle.

Verbrennungen: Die maximale Temperatur, welcher die Hülle ausgesetzt war.

Stärke der Hülle: Wie viel von der äußeren Hülle ist noch vorhanden. Es werden zuerst die Lackierungen abgetragen, dann kommt blankes Metall zum Vorschein, dann das Innenleben.

Deformation: Wie groß war die physikalische Kraft, welche die Hülle verbogen und verzerrt hat.

Durch diese vier Schadenswerte sorgen wir dafür, dass die Hülle aufgrund von starker Erhitzung glüht, dass Lackierungen anfangen zu verbrennen und Blasen werfen, dass immer mehr blankes Metall und darunterliegende Schichten und Komponenten sichtbar werden und zu guter Letzt, dass Verformungen der Hülle entstehen. Das Ganze hört sich erst einmal nach einer Menge Arbeit an, aber die Entwickler haben einen Weg gefunden, dies sehr effizient umzusetzen.

Die Lebensgeschichte deines Schiffes

Das wirklich Interessante an der Möglichkeit, vier verschiedene Arten von Schaden anwenden zu können, ist, dass sich dieser auf deinem Schiff in einem Muster einprägen kann, welches für jede Waffe, jeden Explosivstoff und jede Art von Einschlag einzigartig ist. Während Energiewaffen deine Hülle für ein paar Sekunden erglühen lassen und verbrannte Lackierung sowie freigelegtes Metall zurücklassen können, schlagen ballistische Waffen Löcher in deinen Rumpf. Wir kratzen zurzeit nur an der Oberfläche dieses neuen Schadenssystems und planen bereits, die Waffen und die Munition soweit anzupassen, dass wir Schaden darstellen können, der noch einzigartiger und physikalisch korrekter ist.

Neue Werkzeuge

Für das neue Schadenssystem müssen wir neue Verfahren und neuen Code entwickeln, um auch die Explosions- und Partikeleffekte korrekt einbinden zu können. Wenn sich zum Beispiel ein Flügel von eurem Schiff löst, kommt es zu umherfliegenden Bruchstücken und zu sekundären Explosionen an der Bruchkante. Diese Bruchstücke und Explosionen können zu weiteren Löchern oder Brandblasen in der Hülle führen. Matt Intrieri hat ein spezielles Tool entwickelt, welches die Daten dieser Hilfsobjekte von 3DSMax in XML-Code konvertiert. Dieser XML-Code wird von Mike Snowdon verwendet, um weitere Partikeleffekte und kleine Bruchstücke zu entwickeln, welche für dynamische und realistische Effekte im Spiel verwendet werden können.

Die nächsten Schritte

All dies ist noch nicht das Ende der Entwicklung dieser Technologie, wir arbeiten aktuell an mehreren größeren Funktionen, um das Ganze noch zu verbessern. Eine dieser Verbesserungen ist, dass wir das Rendern der Grafikkarte überlassen können. Dies erlaubt uns 10-100x mehr Partikel zu verwenden als bei der Berechnung von Seiten des Prozessors. Auch arbeiten wir weiter an Optimierungen, die wir durch DirectX 11 erhalten, um sicherzustellen, dass das System auch gut funktioniert, wenn zwanzig Jäger ein Großkampschiff angreifen.

Dabei kommt es zu extrem vielen Partikeleffekten. Das Erste, was wir mit dem neuen System angestellt haben, war unseren Namen mit einer Gatling-Kanone auf ein Schiff zu schreiben!

Die Zukunft

Jetzt, nachdem das neue Schadensmodell entwickelt ist, planen wir weitere realistische und effiziente Methoden, um die Grafik des Spiels auf allen Ebenen zu verbessern. Wir werden mehr Effekte unter der Hülle von Schiffen platzieren, wie etwa Funken und Partikeleffekte von defekten Komponenten. Diese werden für euch sichtbar, wenn die passenden Waffen ein schönes Loch in den Rumpf eures Schiffes gehauen haben. Die Effekte werden abhängig vom Schadenslevel der entsprechenden Komponenten angezeigt.

Es gibt nicht nur eine äußere Ansicht eures Schadens, sondern auch Werte, die das Innere des Schiffes betreffen und sich direkt auf das Flug- und Kampfverhalten auswirken. Auch das Innere kennt die Zustände von vollständig funktionsfähig bis komplett zerstört. Das neue Schadenssystem wird ebenso bei den Großkampfschiffen extrem wichtig werden. Wie verhält sich ein Großkampfschiff, wenn es zu einem Hüllenbruch im Vakuum des Weltraumes kommt? Was passiert mit Spielern und NPCs, die sich in diesem Bereich aufhalten? Wir sind sehr glücklich mit dem neuen Schadenssystem, wir hoffen, ihr auch?!


Für einen besseren visuellen Eindruck des neuen Systems schaut euch das offizielle Video auf YouTube an.

Übersetzung:  Rohal  Korrekturlesung:  Malu23,  slicer1  Originaltext