WoW: Erste Informationen zu den klassischen Servern
Heute Abend veröffentlichten die für World of Warcraft verantwortlichen Entwickler von Blizzard Entertainment einen brandneuen Blogeintrag aus ihrer beliebten Reihe „Auf einen Kaffee mit den Devs“ auf der offiziellen Communityseite dieses MMORPGs, der sich zur Freude der gesamten Community mit den auf der Blizzcon 2017 angekündigten klassischen Servern und dem derzeitigen Zustand dieses Projekts beschäftigte. In diesem langen und äußerst informativen Beitrag gehen die Verantwortlichen hauptsächlich darauf ein, vor welche technischen Probleme sie die Erschaffung von klassischen Servern bisher bereits stellte, wie die technische Seite von World of Warcraft funktioniert und was für Lösungen ihnen für alle diese Schwierigkeiten eingefallen sind. Durch diese Angaben steht schon einmal fest, dass die klassischen Server auf jeden Fall die modernen Systeme zum Erkennen von Cheatern, die bessere Integration von Kundendienst und Battle.Net und alle anderen sinnvollen Verbesserungen ohne direkten Einfluss auf das Kern-Gameplay beinhalten wird.
Zusätzlich dazu geht auf diesem Blogeintrag des Entwicklerteams hervor, dass die klassischen Spielserver bei ihrem Erscheinen in einigen Monaten oder Jahren wahrscheinlich mit Patch 1.12: Trommeln des Krieges starten werden. Laut dem Artikel des Entwicklerteams bietet diese Spielversion die vollständigste aller klassischen Spielerfahrungen und sollte somit den meisten Spielern von World of Warcraft das von ihnen gewünschte Spielerlebnis bieten. Dieser interessante Patch erschien ursprünglich einmal am 22. August 2006 und zeichnete sich unter anderem durch serverübergreifende Warteschlangen für Schlachtfelder, World PvP in Silithis und den Östlichen Königreichen, Veränderungen an der Bedrohung und vielen Klassenänderungen aus.
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.
WooooW das klingt ja mal richtig richtig gut! Ich freue mich schon sehr auf das neue (alte) Spiel!
Super! Blizzard nimmt das Thema wirklich ernst und haut nicht nur eben paar alte Files auf paar Server. Dass sie so kommunizieren und uns nicht ganz im Dunkeln lassen ist auch Klasse!