Hex Mask UI Icons Arrow Down Arrow Left Arrow Right Arrow Up Brackets Calendar Checkmark Chevron Down Chevron Left Chevron Right Chevron Up Clock Close Connect Copy crown download Ellipsis External URL Favorite (off) Favorite (on) Fullscreen Help Home Info Live Minus Mobile Menu Mobile Overflow Paginate Dot (filled) Paginate Dot (empty) Pin Placeholder Icon Play Video Circle Play Video Plus Search Team No-Team-Logo_Fallback_003 Ticket Trophy User Input Video Video Play Icon World X Game Mode Icons Hero Icons Map Icons Platform Icons Social Icons Mobile Discord Facebook Instagram Reddit Twitch Twitter VK Youtube Weibo WeChat Workshop Icons WorkshopControl WorkshopShare WorkshopInfinite

Umgebungszustände in Overwatch 2: Hinter den Kulissen mit dem Engineering-Team

Umgebungszustände in Overwatch 2: Hinter den Kulissen mit dem Engineering-Team

Hallo zusammen! Ich heiße Marco Alamia und bin Software Engineer im Team von Overwatch. Wir haben vor Kurzem eine neue Technologie für Overwatch 2 fertiggestellt, also wollten wir die Gelegenheit ergreifen und der Community kurz präsentieren, wie wir die Spiel-Engine verbessern. Dazu habe ich zwei weitere Entwickler aus dem Overwatch-Team um Unterstützung gebeten: Bruce Wilkie und Fabien Christin.

Diese neue Technologie, von der ich gesprochen hab, nennt sich Umgebungszustände und hat sich in Windeseile zu unserem allerliebsten Arbeitsprozess für die Erstellung und das Design von Karten gemausert. Das Feature wird zwar mit der Engine und den Tools von Overwatch 2 entwickelt und ausgefeilt, die Idee dahinter stammt aber von unserem talentierten Lighting Artist Fabien. Ich hab Fabien gebeten, uns zu erklären, wie die Idee zustande gekommen ist, die unsere Herangehensweise an die Kartenerstellung revolutioniert hat, und uns seinen Prozess beim Design näherzubringen.

Sehen wir uns also die Umgebungszustände näher an!


Die Vorstellung der Idee

Fabien: Overwatch spielt in einer hellen, farbenfrohen Welt und ein großer Teil der Persönlichkeit des Spiels wird über seine Karten ausgedrückt. Die Entwicklung einer Karte beginnt bei den Level Designern, die die gesamte Architektur mithilfe von großen grauen Würfel erstellen, um interessantes und ausgeglichenes Gameplay zu schaffen. Hierbei ist es am wichtigsten, dass es überhaupt Spaß macht, auf dieser Karte zu spielen! Nach Stunden über Stunden voller Tests sind die Environment Artists dran und verwandeln diese vorläufigen grauen Würfel mit viel Liebe zum Detail in Gebäude und Umgebungselemente, die den Orten, die die Spieler besuchen, Leben einhauchen. 

Zusätzlich zur Umgebung entwickeln wir die Beleuchtung, die dabei hilft, die Geschichte der Karte zu erzählen. Für Overwatch 2 wollten wir interessante neue Stimmungen erschaffen, die das Gefühl, das eine Karte vermittelt, gänzlich verändern können. Stellt euch vor, die futuristische Stadt Numbani vor dem Hintergrund eines warmen afrikanischen Sonnenuntergangs zu sehen, oder in einem regnerischen Paris zu landen, in dem alle Läden von warmem goldenem Licht erhellt sind, die dazu einladen, sich drinnen ein Croissant zu gönnen, bis der Regen nachlässt.

Genau dafür wurden die Umgebungszustände erschaffen. Mit diesem neuen System konnten wir all die wichtigen Bestandteile wie Beleuchtung, Sound und Effekte in in sich geschlossene Assets aufteilen, die wie Bauklötze kombiniert werden können und so die sogenannten Umgebungsszenarien bilden. Wir können sie für verschiedene Karten verwenden und auch auf jeder Karte mehrere Szenarien haben.

Nehmen wir als Beispiel die rasante Deathmatch-Karte Nekropole. Wahrscheinlich habt ihr sie in ihrem Nachtszenario gespielt, in dem der Kontrast der kalten blauen Farben der Nacht auf das leuchtende Orange der Fackeln an den Gebäuden trifft.

Aber nehmen wir an, wir wollen ein anderes Szenario ausprobieren, beispielsweise die warmen Farben von Tempel des Anubis. Mit dem neuen System der Umgebungszustände müssen wir nur den Umgebungszustand von Tempel des Anubis hernehmen und ihn auf Nekropole anwenden. 

Das sieht schon jetzt echt gut aus! Wir können es aber noch weiter verschönern, indem wir die Position der Sonne verschieben und so interessantere Schatten erzeugen. Dazu müssen wir einen neuen Umgebungszustand entwickeln, der nur die Ausrichtung der Sonne überschreibt und diesen neuen „Bauklotz“ auf den von Tempel des Anubis setzen. 

Fertig!

Weil die Umgebungszustände so vielseitig und unkompliziert sind, können wir innerhalb weniger Stunden neue Beleuchtungseffekte für unsere Karten ausprobieren. Und da wir so schnell Anpassungen vornehmen können, können wir mehr experimentieren, kreativer sein und für alle unsere Karten mehr Vielfalt schaffen.

Aber das ist noch nicht alles. Diese beschriebenen Beispiele waren größtenteils rein kosmetisch, aber Umgebungszustände können auch dynamisch kombiniert werden, um neues und aufregendes Gameplay zu erschaffen. Stellt euch vor, ihr werdet auf eine Mission zur Nekropole geschickt, um die Verbindung zu einem Satelliten von Overwatch wiederherzustellen. Während ihr einen Angriff von Null Sector abwehrt, zieht um euch ein Sandsturm auf! Wir können eure Mission etwas schwieriger machen, indem wir den Sandsturm als neuen Umgebungszustand auf das Szenario „Sonnig“ platzieren, wodurch sich die Dichte der Wolkendecke und des Sandeffekts langsam erhöht.

 

Mit dieser neuen Technologie können wir alle möglichen Wetterumschwünge wie Gewitter, Schneefall und andere spannende Umgebungsszenarien erschaffen, durch die sich das Spiel jedes Mal, wenn ihr spielt, etwas anders anfühlt.

Jetzt ist Marco dran, der euch etwas genauer erklärt, wie die Umgebungszustände auf technischer Ebene funktionieren.

Die Implementierung der Umgebungszustände

Marco: Fabiens Idee war ziemlich ambitioniert, also mussten wir für die Umgebungen von Overwatch 2 ein leistungsstarkes System entwickeln. Nach einigen Diskussionen haben wir uns darauf geeinigt, dass mehrere Umgebungszustände gleichzeitig aktiv sein sollten, und zwar ordentlich in einer Reihe. Diese Reihe sollte dynamisch verändert werden können, sodass jederzeit ein Umgebungszustand hinzugefügt oder entfernt werden kann. Der magische Moment findet statt, wenn sich die Engine diese Reihe vornimmt, all die Umgebungszustände miteinander verbindet und so das endgültige Aussehen der Umgebung erstellt. Falls ihr schon einmal Photoshop verwendet habt, könnt ihr euch das so vorstellen, wie wenn mehrere Ebenen miteinander kombiniert werden und so das fertige Bild entsteht.

Der Grundgedanke ist, dass jeder Umgebungszustand einen Aspekt der Umgebung selbst beschreiben kann, wie zum Beispiel die Windstärke und -richtung oder die Farbe des Sonnenlichts. Wenn der Zustand eingereiht wird, tragen nur die bereitgestellten Aspekte zum Ergebnis bei. Diese Reihe wurde beispielsweise für Lúcios Club in Rio verwendet, wo ein Umgebungszustand, der die Aspekte Belichtung und Farbverläufe einreiht:

 

Der grundlegende Umgebungszustand stellt alle Aspekte der Karte bereit und der letzte Zustand überschreibt die Farbverläufe, um die bedrohliche und unheimliche Atmosphäre des Diablo-Bereichs zu erzeugen. Während des Spiels können der Reihe dynamisch Umgebungszustände hinzugefügt oder aus ihr entfernt werden, sodass sich die Karten lebendiger und dynamischer anfühlen.

Aspekte

Mit der Hilfe des Künstlerteams und Fabien haben wir mehrere wichtige Aspekte eingegrenzt, die die Umgebungszustände definieren können sollen. Beispielsweise wurde die Nachbearbeitung als erstes Feature der Engine zu einem Aspekt umgewandelt. Die Nachbearbeitung ist ein wichtiger Bestandteil aller modernen Engines. Mit ihr werden verschiedene Filter und Effekte angewendet, die zum Beispiel den Kontrast, die Helligkeit und die Sättigung des fertigen Bildes kontrollieren. Indem wir den Kontrast und die Helligkeit des Bildes je nachdem, was im Spiel passiert, dynamisch anpassen, kann das endgültige Bild viel lebendiger und dynamischer aussehen. Genau das wird uns in Overwatch 2 dank der Umgebungszustände ermöglicht.

Ein weiteres mächtiges Werkzeug von diesem neuen System ist der Nebel-Aspekt. Indem wir seine Parameter ändern, können wir das Aussehen und die damit verbundene Stimmung des Nebels verändern, was dem Künstlerteam ermöglicht, die Umgebung visuell anhand des Spielmodus, der Positionen von Spielern oder sogar der Uhrzeit zu verändern. Zum Beispiel können wir die Karte für ein Halloween-Event gruseliger gestalten, den Nebel nur in bestimmten Bereichen der Karte besonders dicht erscheinen lassen oder einen Sandsturm erschaffen, der in einer unserer neuen Heldenmissionen immer stärker wird.

Wir haben mehrere Aspekte, die visuelle Eigenschaften wie die Schatten von Wolken auf der Karte oder sogar nicht-visuelle Eigenschaften wie die Stärke und die Richtung des Windes beeinflussen. Zwei der wichtigsten Aspekte, die wir ändern können, sind Sonne und Himmel. Wie der Name schon sagt, können wir einige wichtige Features der Umgebung verändern, wie zum Beispiel die Position und Farbe der Sonne, welche Wolken wir verwenden und Tag bzw. Nacht. Ihr könnt euch bestimmt vorstellen, dass das ein sehr mächtiger Teil der Umgebungszustände ist, weil wir so das Aussehen und die Stimmung einer Karte auf sehr dramatische Weise verändern können.

Diese beiden Aspekte (Sonne und Himmel) setzen einen besonders fortschrittlichen Teil der Engine ein: das Beleuchtungssystem. Die Beleuchtung ist für Overwatch 2 unheimlich wichtig, weil wir mit ihr das Aussehen und die Stimmung unserer Umgebungen festlegen können.  Allerdings kann sich jede Änderung an diesem System auf die Arbeitsspeichernutzung und die Leistung auswirken, also müssen wir genau bedenken, was wir zulassen wollen. Zum Glück haben wir in unserem Team den hervorragenden Programmierer Bruce Wilkie, der unheimlich viel Erfahrung mit Beleuchtungssystemen hat und für uns etwas erschaffen kann, das großartig aussieht und gleichzeitig die Leistung nicht zu sehr beeinträchtigt, was für einen kompetitiven Shooter wie Overwatch 2 besonders wichtig ist.

Beleuchtung

Bruce: In die leuchtende, farbenfrohe Grafik von Overwatch fließt viel Arbeit ein. Jedes Mal, wenn ich auf einer unserer vielen wunderschönen Karten ein Match spiele, werde ich daran erinnert, wie viel Liebe zum Detail in die Beleuchtung der Umgebung geflossen ist. Sonnenstrahlen reflektieren in Räumen, Scheinwerfer erhellen Ruinen und nächtliche Festivals werden mit Farben zum Leben erweckt – das sind nur ein paar Beispiele für die wichtige Rolle der Beleuchtung beim Aussehen und bei der Stimmung unseres Spiels. Bei der Entwicklung der Engine von Overwatch haben wir eng mit dem Künstlerteam zusammengearbeitet, um die nötigen Beleuchtungs-Features bereitzustellen, damit die 2D-Konzeptkunst zu einer 3D-Welt werden kann – Features wie Licht, das von Oberflächen abprallt (oft „globale Illuminierung“ genannt), Metall, das die Umgebung reflektiert und bewegliche Objekte, die nahtlos mit unbeweglicher Umgebung beleuchtet werden.  Diese Features erfordern viel Rechenleistung und lasten den Prozessor oft stark aus, was sich negativ auf die Bildwiederholrate auswirkte, die wir mit der Engine erreichen wollen. Damit Overwatch flüssig laufen und gleichzeitig diese fortgeschrittenen Beleuchtungs-Features anwenden kann, berechnen wir vorzeitig so viele Beleuchtungsinformationen wie nur möglich, packen das Ergebnis in ein Paket und verwenden im Client diese Daten. 

Sehen wir uns die Daten, die wir in Overwatch für diese Beleuchtungs-Features verwenden, mal etwas näher an. Für unbewegliche Elemente wie Wände, Böden und Decken erstellen wir mehrere Datenpakete. Das erste Datenpaket gibt der Engine vor, wie viel Beleuchtung auf eine Oberfläche trifft und aus welcher Richtung das Licht kommt. Diese Daten werden allgemein „Lightmap“ genannt und verschiedene Engines speichern verschiedene „Geschmacksrichtungen“ von Daten in Lightmaps.  

 

Dieses Bild zeigt ein Beispiel dafür, wie für die Oberflächen einer Karte Lightmaps erstellt werden.  Links ist die fertige Zusammenstellung der gesamten Beleuchtung.  In der Mitte ist nur das Charting auf den Oberflächen gerendert.  Unsere Künstler verwenden diese Ansicht, um sicherzustellen, dass für die Oberfläche genügend Beleuchtungsdaten gespeichert werden, um das gewünschte grafische Ergebnis zu erzielen.  Rechts seht ihr ein Beispiel dafür, wie die Engine diese Lightmaps verpackt, um die Speicherauslastung zu verringern.

Als Overwatch veröffentlicht wurde, haben wir für jede Lichtquelle, die auf eine Oberfläche trifft, Farbe und Richtung erzeugt.  Mit den Richtungsdaten passen wir die Farbe auf unebenen Oberflächen an – je stärker die Oberfläche in eine bestimmte Richtung zeigt, desto mehr Farbe erhält sie. In Overwatch 2 erzeugen wir jetzt drei Lichtrichtungen, mit denen wir alle drei Farbkanäle (Rot, Grün und Blau) unabhängig voneinander anpassen können. Durch diese zusätzlichen Richtungen wirkt die Umgebungsbeleuchtung lebendiger, was die Qualität des Bildes erhöht.

Für unbewegliche Objekte erzeugen wir Daten, die dem Objekt vorgeben, wie viel von der Umgebung sichtbar ist. Allgemein werden diese Daten als Umgebungsverdeckung bezeichnet. Nachdem Overwatch veröffentlicht wurde, begannen wir, diese Daten für mehrere Karten wie Paris und Havanna zu erzeugen. In Overwatch 2 werden jetzt alle Karten diese Daten und somit hochwertigere Grafiken erzeugen. 

 

 

Für bewegliche Objekte wie Charaktere erstellen wir in der Spielwelt unzählige Beispielpositionen und kodieren für sie alle Beleuchtungsdaten – dieselben Arten von Daten, die wir für unbewegliche Objekte verwenden.  Wenn sich ein bewegliches Objekt einem dieser Punkte nähert, verwendet das Objekt diese Daten, um sich selbst zu beleuchten. In Overwatch 2 erzeugen wir viel mehr dieser Beispielpositionen – besonders in der Luft –, also werden bewegliche Objekte besser als je zuvor aussehen.  

 

Falls ihr unsere Podiumsdiskussion auf der BlizzConline mitverfolgt habt, habt ihr Karten mit mehreren verschiedenen Beleuchtungsumgebungen gesehen. Für jede Umgebung wollten wir so viele Daten wie möglich teilen, um die Download- und Installationsgröße des Spiels so klein wie möglich zu halten. Dank der Umgebungszustände kann die Engine mehrere Beleuchtungsumgebungen für eine Karte gruppieren, sodass ein großer Teil der oben erwähnten vorberechneten Daten zwischen diesen gruppierten Beleuchtungsumgebungen geteilt werden kann. Dadurch verringert sich das Datenvolumen erheblich, also müssen unsere Spieler pro Variation weniger Daten herunterladen und installieren. Höherwertige Beleuchtung, mehr Vielfalt bei der Beleuchtung und weniger Daten – all das dank der Umgebungszustände.


Dank der Umgebungszustände wird sich Overwatch 2 dynamischer anfühlen und die Arbeitsabläufe unserer Künstler werden vereinfacht und verbessert, sodass sie eine farbenfrohe Welt für euch erschaffen können. Ihr könnt euch also in Overwatch 2 auf fesselnde Abenteuer auf der ganzen Welt mit sich ständig ändernden Umgebungen und atemberaubender Grafik freuen! 
2 Kommentare