World of Warcraft

Auf einen Kaffee mit den Devs: World of Warcraft: Classic

Auf einen Kaffee mit den Devs: World of Warcraft: Classic

Seid gegrüßt! Die Entwicklung von World of Warcraft: Classic läuft auf Hochtouren, und wir freuen uns, euch einige der Herausforderungen und Lösungen vorstellen zu dürfen, an denen wir gerade arbeiten. Wie wir schon bei der letzten BlizzCon erwähnt hatten, ist die Wiederherstellung des klassischen Spiels kein einfacher Prozess. Wir müssen uns die Zeit nehmen und die nötige Arbeit hineinstecken, damit alles perfekt wird. Dafür müssen wir uns Spielversionen und Daten ansehen, an Werten schrauben und uns gewissenhaft alle Änderungen vornehmen, die wir im Laufe der Jahre implementiert haben. Keine Sorge: Das Team von World of Warcraft: Classic arbeitet hart daran, das Spiel Wirklichkeit werden zu lassen, und wir sind mit der Entwicklung weit genug vorangeschritten, dass wir euch einige der Dinge zeigen können, an denen wir gearbeitet haben.


World of Warcraft: Classic – Erster Protoyp

Die erste – und wichtigste – Entscheidung, die wir treffen mussten, war jene, auf welche Version des Spiels wir uns konzentrieren würden. Wie viele von euch angemerkt haben, dauerte die klassische Phase des Spiels zwei Jahre und wurde von vielen Änderungen begleitet. Während dieser Zeit wurden Schlachtfelder eingeführt und viele unvergessliche Dungeons und Schlachtzüge fanden in eigenen Updates den Weg ins Spiel. Nach sorgfältigen Überlegungen haben wir Patch 1.12: Trommeln des Krieges als Grundlage ausgewählt, weil diese Version die vollständigste aller klassischen Spielerfahrungen darstellt.

Sobald wir unseren Ausgangspunkt ausgewählt hatten, mussten wir herausfinden, wie es um den Quellcode stand und was wir verfügbar machen konnten. Dabei mussten wir uns lange mit der ursprünglichen Entwicklungsdatenbank beschäftigen. Nachdem wir verschiedenste Kernelemente zusammengeflickt hatten, konnten wir intern eine wiederhergestellte Version von Patch 1.12 zum Laufen bringen. Das Team konnte Charaktere erstellen, einfache Quests abschließen und Stufen aufsteigen – und sterben. Immer und immer wieder. Natürlich nur zu Testzwecken. Was sonst?

Unsere anfänglichen Tests haben ein paar (erwartete) Probleme aufgeworfen: Das Spiel ist gelegentlich abgestürzt, hat unsere modernen Grafikkarten nicht erkannt und war mit unserem aktuellen Anmeldungssystem nicht kompatibel. Diese erste Version konnte außerdem unsere modernen Maßnahmen für die Sicherheit und zur Abwehr von Cheatern nicht unterstützen. Es war klar, dass wir viel Arbeit investieren müssten, damit World of Warcraft: Classic den hohen Qualitätsstandards von Blizzard entspricht und wir Spielern das gewünschte Erlebnis bieten können. Wir leben für diese Herausforderung und unser Programmierteam von WoW: Classic hat sich richtig ins Zeug gelegt.


Der Pfad voraus – Zweiter Prototyp

Wo wir gerade schon von den Programmierern sprechen: World of Warcraft ist ein stark von Daten gestütztes Spiel. Das bedeutet, dass der grundlegende Code flexibel ist, und die bestimmte Art, auf die er sich verhält, von Informationen in Datenbanken kontrolliert wird. Dinge wie Quests, Monster, Gegenstände und die Regeln, wie diese miteinander interagieren, werden von den Designern und Künstlern in Daten festgelegt.

Also haben wir uns gefragt: Ist es möglich, die authentische, klassische Spielerfahrung mit unserem modernen Code mit all seinen Backend-Verbesserungen und Änderungen nachzubilden und mit ihm die Spieldaten von Patch 1.12 zu verarbeiten? Das klingt zunächst unlogisch, doch damit könnten wir sofort klassische Systeme wie Zufriedenheit von Begleitern, Fertigkeitssteigerungen von Waffen, klassische Talente und so weiter einbauen, während später entwickelte Funktionen wie Haustierkämpfe, Dungeonbrowser und Erfolge ganz einfach nicht existieren würden. Nach Wochen voller Forschung und Entwicklung, Experimente und neuer Prototypen waren wir zuversichtlich, dass wir die klassischen Inhalte und das Gameplay von WoW nachbilden könnten, ohne die vielen nötigen Arbeitsstunden für Backend-Entwicklung opfern zu müssen, von denen WoW in den letzten 13 Jahren profitiert hat.

Mit unserem ersten Prototypen haben wir bestimmt, welches Spielerlebnis wir euch bieten wollen, doch dieser zweite hat klar definiert, wie wir das erreichen würden. Ausgehend von einer modernen Architektur – mit all ihrer Änderungen für Sicherheit und Stabilität – konnten wir die Arbeit abstecken, die wir für eine authentische, klassische Spielerfahrung benötigen würden. Alle Verhaltensunterschiede zwischen einem Entwicklungsbuild und der authentischen Erfahrung können systematisch katalogisiert und korrigiert werden, während wir auf einer stabilen und sicheren Basis arbeiten.


Ran an die Arbeit

Wie kann man also eine authentische, klassische Spielerfahrung mit moderner Programmiertechnik nachbilden? Teilen wir dafür zunächst die verschiedenen Arten von Spieldaten ein, aus denen WoW besteht:

  • Daten aus Datenbanken: Diese Informationen werden so gut wie immer als Zahlen dargestellt. Wie viel Gesundheit eine Kreatur hat, wie viel Stärke ein Gegenstand besitzt, oder wo und wann bestimmte Kreaturen erscheinen können sind Beispiele für die numerischen Daten, die wir in unseren Datenbanken gespeichert haben. Außerdem können wir Beziehungen zwischen verschiedenen Daten speichern und diese umsetzen.
  • Dateidaten: Das sind oft sehr dichte Daten wie z. B. 3D-Modelle, Texturen, Animationen und Gelände. Unsere Benutzeroberfläche wurde aus XML- und LUA-Dateien erstellt. Viele Grafikdateien verwenden nicht dasselbe Dateiformat, das aus den Grafikprogrammen ausgegeben wird. Wir nehmen diese rohen Grafikdateien und optimieren sie, sodass unser Spiel sie lesen und verarbeiten kann.
  • LUA-Skripte: Einige Funktionen werden durch von Designern geschriebenen LUA-Skripten gestützt, mit denen sie ganz einfach benutzerdefiniertes Verhalten für serverseitige Logik definieren können, ohne über ein tieferes Programmierverständnis zu verfügen.

Wie sich die Programmierung verändert hat

Die Herausforderung, vor der wir stehen, ist, dass wir alle klassischen Daten im bei der Veröffentlichung verwendeten Format zur Verfügung haben, dieses Format sich aber beträchtlich geändert hat. In diesen Bereich müssen wir viel Arbeit hineinstecken, um den modernen Client mit den klassischen Daten kompatibel zu machen.

Zum Beispiel konnten Zauber ursprünglich nur drei Auswirkungen auf das Ziel des Zaubers haben. In Tabellenform hat das in etwa so ausgesehen:

ID

Name

Effekt Eins

Effekt Zwei

Effekt Drei

Aura Eins

Aura Zwei

Effekt-Schaden Eins

Aura-Schaden Eins

Aura-Schaden Zwei

1

Feuerball

Verursacht Schaden

Wendet Aura an

Nichts

Nichts

Verursacht regelmäßig Schaden

30

Nichts

3

2

Frostblitz

Verursacht Schaden

Wendet Aura an

Nichts

Nichts

Verlangsamen

20

Nichts

Nichts

Wie ihr seht, wird ziemlich viel Platz von „Nichts“ eingenommen. Im Laufe der Lebenszeit von WoW haben wir das Design unserer Daten verbessert und einen großen Teil der Daten unserer Datenbanken normiert. Heute wären dieselben Daten so aufgeteilt:

Name der Tabelle: Zauber

ID

Name

1

Feuerball

2

Frostblitz

Name der Tabelle: Effekt des Zaubers

ID

ZauberID

Effekt

Schaden

1

1

Schaden

30

2

2

Schaden

25

Name der Tabelle: Aura des Zaubers

ID

ZauberID

Aura

Schaden

1

1

Verursacht regelmäßig Schaden

3

2

2

Verlangsamen

Nichts

In dieser Form verschwenden wir viel weniger Platz und Zauber sind nicht mehr auf nur drei Effekte beschränkt. Bevor wir aber Daten aus Datenbanken laden können, müssen wir das alte Datenlayout in das neue umwandeln. Diese Arbeit beschränkt sich nicht nur auf Zauber, da die Datenlayouts von beinahe allen Spielsystemen (darunter Gegenstände, Kreaturen, Spielercharaktere, Erscheinen von Kreaturen, K.I. und vieles mehr) über die Jahre geändert wurden.


Blick in die Zukunft

All die Arbeit wird uns letztendlich erlauben, eine authentische, klassische Erfahrung auf einer Plattform nachzubilden, die viel besser optimiert und stabiler ist, wodurch wir Latenz- und Stabilitätsprobleme vermeiden können. Zu den weiteren modernen Verbesserungen gehören Erkennung von Cheatern und Bots, Integration von Kundendienst und Battle.net und alle anderen sinnvollen, spielerorientierten Verbesserungen.

Wir freuen uns auf die kommenden Herausforderungen und lieben das klassische Spiel genau so sehr wie ihr. Jede Datenumwandlung im Code bringt WoW: Classic näher an die authentische Spielerfahrung, die wir und ihr haben wollen. Danke, dass ihr uns auf dieser Reise begleitet.

Nächster Beitrag

Empfohlene Artikel