World of Warcraft

Zusammenfassung der Podiumsdiskussion „Die Zeit zurückdrehen: Wie World of Warcraft: Classic entsteht“

Blizzard Entertainment

Das heiß ersehnte World of Warcraft: Classic ist schon seit geraumer Zeit ein viel diskutiertes Thema in der Community. Um den Spielern zu verdeutlichen, was es wirklich bedeutet, einem Spiel in hochwertiger Blizzard-Qualität Leben einzuhauchen, haben Programmierer Brian Birmingham und Omar Gonzales gemeinsam mit Game Director Ion Hazzikostas auf der Bühne einige Einblicke gewährt.

Die Puzzleteile zusammensuchen

Für einen einfachen Überblick darüber, wie ein Spiel entsteht, hat Omar den Prozess auf drei grundlegende Faktoren heruntergebrochen: Datenbankdaten, Grafikassets und Quellcode.

  • Die Datenbankdaten beinhalten die Gesundheit einer Kreatur, die Menge an Ausdauer, die ein Gegenstand gewährt, Erscheinungspunkte überall in der Spielwelt sowie Millionen anderer Daten.
  • Grafikassets beinhalten alles vom Aussehen eines Nachtelfen beim Einsatz von Schattenmimik über das Geräusch eines Pyroschlags bis hin zu der Bewegung, wenn ein Orc seine Axt schwingt.
  • Der Quellcode enthält die Anweisungen, wie das Spiel angezeigt wird, Eingaben verarbeitet und Spieler miteinander verbunden werden.

Zunächst mussten wir herausfinden, wie weit der Quellcode zurückreicht. Dabei haben wir entdeckt, dass unser Archiv bis ins Jahr 1997 zurückreicht, lange bevor World of Warcraft entwickelt wurde.

Das war schon mal ein guter Anfang, aber es gab Probleme damit, wie das Spiel früher mit Updates bei den Datenbankdaten umging. Unser Code beinhaltete viele verschiedene Teile des Spiels, die einzeln bearbeitet und entwickelt werden konnten. Unsere frühesten Datenbankdaten hingegen wurden mit jedem neuen Update überschrieben. Gott sei Dank konnten wir dieses Problem schon bald nach der Veröffentlichung beheben. Bei unserer Suche stießen wir auf Daten von Version 1.12 und sogar noch früher.

Schließlich haben wir auf alten Bandlaufwerken unsere Grafikassets gefunden, die wir den aufbewahrten Datenbankdaten zuordnen konnten.

Nachdem wir dann alle drei Komponenten hatten, konnten wir einen Test durchführen und uns im Spiel einloggen, neue Charaktere erstellen, Eber töten und ein paar Quests abschließen.

Klassisches Gameplay in einer modernen Welt

Jetzt hatten wir zwar eine funktionierende Version des Spiels, aber es gab noch viele andere Hürden zu überwinden. Die zugrundeliegende Technologie hat sich seit der Veröffentlichung stark weiterentwickelt und beinhaltet jetzt Dinge wie Cloud-Unterstützung, Integration in Battle.net, Kundendienst-Funktionen und eine ganze Reihe an längst behobenen Fehlern.

Um diese Hürden zu überwinden, haben wir uns erst einmal angesehen, was uns gefiel (Grafik und Daten) und was nicht (der Code). Wir wollten herausfinden, ob wir die klassischen Grafikassets und Daten sinnvoll in unseren modernen Code integrieren konnten. Es hat nicht sofort geklappt, aber nach einigem Herumprobieren konnten wir beweisen, dass es möglich ist. Jetzt wussten wir, wie wir es schaffen konnten, dass alles richtig ineinander greift und spielbar ist. Das hat uns in dem Glauben bestärkt, dass wir innerhalb unserer modernen Plattform eine Spielerfahrung in gewohnter Blizzard-Qualität erschaffen konnten.

Vom Prototyp zur Demo

Unsere Bausteine – die Datenbankdaten, der Quellcode und die Grafikassets – erschaffen im Zusammenspiel die Features, die der Spieler dann vor sich sieht, wie etwa Umgebung, Gameplay, Animationen und Beleuchtung. Für verschiedene Features müssen die Bausteine auf vielerlei Art und Weise zusammenarbeiten.

Ein gutes Beispiel für diese Interaktion ist die Umgebung. Dazu gehört die Lage von Hügeln und Tälern, Bäumen, Gebäuden und mehr. Als wir die alten Umgebungsdaten in unser modernes Spielsystem gespeist haben, haben wir festgestellt, dass das System die Form der Daten anders interpretierte. Das Resultat davon, dass das aktuelle System und die klassischen Daten nicht zusammenpassten, waren dann Dinge wie Lagerfeuer der Kolkar unter Wasser oder ausgebrannte Bäume aus der Zeit von Cataclysm.

1.12 Umgebungsdaten

1.12 Engine

Moderne Engine

Umgebungshöhe

Wasser

Gras

Lage von Objekten

Umgebungshöhe

Wasser

Gras

Lage von Objekten

Umgebungshöhe

Lage von Objekten

Wasser

Gras

Zum Glück kann unser moderner Editor einige dieser Daten umrechnen. Die Umgebungsdaten können wir mit demselben Editor umrechnen, den wir für Battle for Azeroth verwenden. Der moderne Editor kann das alte Umgebungsformat laden, es in das neue Format umwandeln und in unsere neue Engine exportieren. Dadurch konnten wir solche Fehler wie verschobene Lagerfeuer und das Aussehen der Bäume beheben.

Eine weitere Hürde, die wir genommen haben, ist die Art und Weise, wie wir unsere Daten speichern und zusammenführen. Für World of Warcraft sind immer mehrere Patches gleichzeitig in der Entwicklung, denn jeder Patch befindet sich in einem anderen Entwicklungsstadium. Wenn wir einem Patch ein Grafikasset oder eine Umgebungsdatei hinzufügen, wollten wir, dass es automatisch auch in den späteren Patches auftaucht. In 14 Jahren Entwicklung wurde das immer in einer festgelegten linearen Abfolge durchgeführt. Hätten wir einfach nur unseren neuen Patch für Classic in unsere momentane Entwicklung aufgenommen, hätten wir dabei Dinge wie den jetzigen Damm in Loch Modan mit der wiederhergestellten Version von damals überschrieben. Das hätte dann Fehler in Battle for Azeroth zur Folge.

Um das zu vermeiden, haben wir unseren Tools einige neue Tricks beigebracht, sodass wir Patches für Classic aufspielen konnten, ohne die aktuelle Version des Spiels zu ändern. Wir haben die Daten von 1.12 in ein neues Projekt kopiert und unsere Tools so konfiguriert, dass sie den Unterschied erkennen. Spielen wir jetzt einen Patch auf, bleiben die Änderungen auf Classic beschränkt und die Patches der aktuellen Version bleiben davon unberührt. Das mag zwar einfach klingen – so einfach wie das Kopieren eines Verzeichnisses – aber das Schwierige daran ist, das unseren Tools begreiflich zu machen, sodass sie die Änderungen automatisch durchführen können. Unsere internen Tools verwenden zu können, ist ein riesiger Vorteil. Wir wollten sicherstellen, dass Classic auf unsere gesamte Infrastruktur und all unsere Daten zurückgreifen kann.

Klassische Modelle und Animationen

Wir haben uns außerdem die Zeit genommen, die klassischen Charaktermodelle vollständig wiederherzustellen. Dabei haben wir aber einige Modelle entdeckt, die fehlerhaft waren. In manchen Fällen fehlten einige Texturen, also mussten wir herausfinden, wie diese Modelle auszusehen hatten und sie innerhalb unseres Systems korrigieren.

Die ursprünglichen Animationen wurden ebenfalls wiederhergestellt, aber unser Animationssystem ist eng mit unserem Code für das Gameplay verbunden. Wir mussten sowohl an den Daten als auch am Code Änderungen vornehmen, um die Animationen wieder in ihre Ursprungsform von Patch 1.12 zurückzuversetzen. Dabei sind wir auf einige Fehler gestoßen, wie zum Beispiel Modelle, die aufrecht angezeigt wurden, wenn sie liegen sollten (oder umgekehrt), aber das konnten wir ohne größere Probleme beheben.

Wiederherstellung der Klassensysteme

Wir haben alleine mit der Umwandlung von Daten zu Code viele Fortschritte gemacht, aber für einige Systeme gibt es kein modernes Gegenstück. Die Klasse der Jäger ist davon wahrscheinlich am stärksten betroffen. Die Begleiterzufriedenheit- und Treuesysteme wurden ebenso entfernt wie die Begleiterausbildung und die Fähigkeit, gleichzeitig eine Fern- und Nahkampfwaffe zu verwenden. In diesen Fällen würde die Umwandlung von alten Daten zum neuen System nicht funktionieren, weil es für sie ganz einfach kein neues System gibt. Deshalb mussten wir den alten Code zurückbringen – und genau das haben wir gemacht. Zum Glück ist die Wiederherstellung glattgegangen. Einige Leute waren allerdings überrascht, dass sie wieder Pfeile kaufen oder ihre Begleiter füttern mussten.

Das war aber nicht ausschließlich ein Jäger-Problem. Für Combopunkte von Schurken mussten wir ebenfalls den Code anpassen. Unser modernes Ressourcensystem kann zwar Combopunkte erhalten und verbrauchen, weiß aber nicht, wie es sie beim Wechseln zwischen Zielen wieder verlieren kann. Außerdem müssen wir die älteren Kampfformeln berücksichtigen. In diesem Fall haben wir den Code für die älteren Kampfformeln mit kritischen Treffern und Zerschmetternden Schlägen zurückgebracht. Ihre Auslösungschance wird ebenfalls vom Unterschied zwischen der Verteidigung des Verteidigers und der Waffenfertigkeit des Angreifers beeinflusst. Richtig gelesen, die Waffenfertigkeit ist zurück. Wir hatten die Daten dafür, mussten aber den Code wiederherstellen, der bei Einsatz eure Fertigkeiten erhöht hat und durch den eure Fertigkeitsstufe die Chance auf Treffer oder Streifschläge beeinflusste.

Benutzeroberfläche und Beleuchtung

Der Charakterbildschirm ist ein hervorragendes Beispiel für eine unverwechselbare Benutzeroberfläche, die wir auf jeden Fall wiederherstellen mussten. Dabei wollten wir mit viel Aufwand sicherstellen, dass sich bis hin zu den Bildschirmeffekten und der Beleuchtung hinter dem Charakter alles richtig anfühlt. Wir wollen euch zwar nicht Perfektion versprechen, aber wir können versprechen, dass wir die alte und neue Version miteinander vergleichen und unser Bestes geben, um euch die authentische Erfahrung zu bieten.

Für ein anderes Beispiel zur Beleuchtung haben wir uns den Wald von Elwynn angesehen. In der Geschichte von Warcraft gab es eine Phase, zu der wir alle Beleuchtungsgleichungen geändert hatten und deshalb unsere Künstler die Beleuchtung in allen Zonen verbessern und die neuen Gleichungen nutzen mussten. Um die ursprüngliche Erfahrung wiederherzustellen, mussten wir diese Änderungen rückgängig machen. Zunächst haben wir die alten Beleuchtungsdaten wiederhergestellt. Dadurch konnten wir der ursprünglichen Beleuchtung viel näherkommen und nach ein paar weiteren Anpassungen der Entfernungs- und Nebelformeln sowie einigen Änderungen an Schatten waren wir schon viel näher an der ursprünglichen Beleuchtung.

Seid ihr mal langsam fertig?

Bei all dieser Arbeit fragt ihr euch bestimmt, ob wir schon fertig sind oder ob es nicht viel einfacher wäre, den Referenz-Client zu aktualisieren.

Nach dem letzten Jahr voller Arbeit an diesem Projekt und voller verschiedener Probleme und Herausforderungen ist der Unterschied zwischen dem, was wir haben und dem, was wir wollen, immer noch klar sichtbar. Wenn wir uns das heutige World of Warcraft ansehen, fallen uns die Unterschiede zu Classic auf. Würden wir versuchen, den Referenz-Client zu aktualisieren, müssten wir haufenweise unsichtbaren Änderungen nachjagen. Dazu gehören ausnutzbare Fehler, Abstürze, die erst bei Millionen von gleichzeitig spielenden Spielern auftreten, und vieles mehr. Wir wollten das Problem auf eine Weise angehen, durch die unsere Aufgabe klar und offensichtlich erscheint und nicht schwierig und kaum einzugrenzen.

Wir sind noch nicht fertig und müssen uns noch viele Features in Hauptstädten wie Banken und Auktionshäuser vornehmen. Wir müssen unsere Dungeons und Schlachtzüge testen und sicherstellen, dass die Fähigkeiten der Bosse immer noch wie vorgesehen funktionieren – und wir müssen alle unsere PvP-Systeme überprüfen.

Philosophie und Zukunftspläne

Mit der Wiederherstellung von World of Warcraft Classic wollten wir eine authentische Spielerfahrung bieten, in der sich auch Spieler zurechtfinden würden, die das Spiel seit der Veröffentlichung nicht mehr gespielt haben. Vielleicht läuft jetzt alles etwas glatter, und ihr habt bessere Hardware. Das Spiel sollte sich aber immer noch so anfühlen, als würdet ihr im Jahr 2006 World of Warcraft spielen. Ein großer Teil davon sind nicht nur die Kampfgleichungen und eure Fertigkeiten, sondern auch die soziale Dynamik und dass ihr euch in Dungeons oder in anderen Kämpfen auf andere Spieler verlassen müsst. Außerdem wollten wir sicherstellen, dass wir nicht die Daten von 1.12 und dadurch die daraus resultierende Spielerfahrung ändern.

Viele Entscheidungen waren ziemlich einfach zu treffen. Dinge wie der Dungeonbrowser waren ein klares „Nein“. Außerdem mussten wir realmübergreifende Gruppen, das Erfolgssystem, zusammengefasste Auktionshäuser und – jetzt kommt’s – das Fliegen außen vor lassen.

Andere Entscheidungen haben sich etwas schwieriger gestaltet. Es gab einmal eine Höchstgrenze von 8 Schwächungseffekten. Diese Grenze wurde später auf 16 angehoben, und heute gibt es gar keine Begrenzung für Schwächungseffekte mehr. Diese Änderung hat die Klassenbalance und die Strategien von Spielern beim Einsatz dieser Schwächungseffekte in Kämpfen merklich geändert. Um nicht auf die Daten von 1.12 zugreifen zu müssen, haben wir uns für Classic für eine Höchstgrenze von 16 Schwächungseffekten entschieden.

Im Spiel wird heute Post zwischen Gildenmitgliedern sofort zugestellt, aber in der Vergangenheit gab es wie bei Post zwischen Fremden eine einstündige Verzögerung. Die Änderung zu sofort zugestellter Post machte zwar alles einfacher, aber dadurch fiel die soziale Interaktion weg, für die man jemanden für einen Handel treffen musste, wenn man etwas früher haben wollte. Aus diesem Grund haben wir die Verzögerung wieder eingeführt. Andere Annehmlichkeiten wie die automatische Vervollständigung von Namen oder das schnelle Leeren eines Briefkastens ließen wir im Spiel. Diese Entscheidung fiel uns ziemlich leicht, weil Spieler ohne viel Aufwand mit einem Addon dasselbe erreichen könnten und wir das Entfernen dieser Annehmlichkeiten nicht sinnvoll fanden.

In der Vergangenheit wurde beim Beutetausch oft der Kundendienst zu Hilfe gerufen, wenn jemand versehentlich etwas geplündert hatte. Beim moderneren System haben Spieler ein gewisses Zeitfenster, in dem sie Beute mit anderen Spielern tauschen können. Diese Annehmlichkeit wollten wir für Classic beibehalten, um nicht haufenweise für das Spielerlebnis absolut unnötige Kundendiensttickets zu erhalten. (Tut uns leid, Ninja-Plünderer!)

Für Klassen wie Schurken, die sich auf Energieregeneration verlassen, haben sich seit dem ursprünglichen Spiel ebenfalls einige Dinge geändert. Die Regeneration passierte je nach „Puls“ des Servers in bestimmten Mengen. Zum Beispiel dauerte es zwei volle Sekunden, um 20 Energie zu erhalten. Heute ist das System ausgeglichen, sodass ihr jede Zehntelsekunde 1 Energie regeneriert. Dieser Unterschied hat sich auf die Abstände ausgewirkt, zu denen ihr bestimmte Fähigkeiten einsetzen konntet. Was heute wie eine kleine Annehmlichkeit wirkt, hat sich damals merklich auf den Kampfrhythmus und das Potenzial für Sofortschaden im Gameplay des ursprünglichen Spiels ausgewirkt. Das wollten wir zurückbringen, um euch eine authentische Spielerfahrung zu bieten.

Im Laufe der Jahre wurden Addons immer tiefgreifender und komplexer, weil ihre Ersteller auf jahrelange Erfahrung zurückgreifen konnten. Wir haben uns noch nicht hundertprozentig festgelegt, was das für Classic bedeuten wird. Wir wissen aber, dass wir nicht zur Addon-API von 1.12 zurückkehren wollen. Das würde die Tore zu beinahe vollständiger Automatisierung von Entscheidungen in Kämpfen öffnen und nahezu „Bot“-Verhalten ermöglichen, was der Spielerfahrung von WoW widerspricht. Das wollen wir ganz sicher nicht. Andererseits bietet die moderne API einige zusätzliche Funktionen für soziale Features, die ebenfalls die authentische Spielerfahrung von Classic untergraben könnten. Wir feilen immer noch an den Details und suchen nach einem vernünftigen Mittelweg. Wir werden das Feedback der Community und der Ersteller von Addons genau beobachten und anhand dessen bestimmen, wo wir diese Grenzen setzen wollen.

Zeitplan für die Veröffentlichung von Inhalten

Wir beginnen zwar mit Version 1.12, aber wir wollen trotzdem sicherstellen, dass wir unseren Spielern die Reise durch das Spiel bieten können, die sie erwarten. Um euch einen Überblick geben zu können, haben wir vier weitere Phasen geplant, die wir im Laufe der Zeit ins Spiel integrieren wollen.

  • Phase 1: Der Geschmolzene Kern, Onyxia, Düsterbruch, Kazzak, Azuregos
  • Phase 2: Pechschwingenhort, Belohnungen für Schlachtfelder und PvP, Zul’Gurub
  • Phase 3: Ahn’Qiraj (inklusive Eröffnungsereignis), Schlachtzugsstufe 0,5, Inhalte aus Silithus, Grüne Drachen
  • Phase 4: Schlachtzug Naxxramas, Invasion der Geißel

Diese Pläne sind noch nicht in Stein gemeißelt, aber wir wollten euch einen kleinen Blick in die Zukunft werfen lassen. Wir freuen uns auf euer weiteres Feedback und wissen, dass noch viel Arbeit vor uns liegt.

Besucher der BlizzCon und Besitzer des virtuellen Tickets zur BlizzCon 2018 können die Classic-Demo heute ausprobieren! Weitere Informationen findet ihr in unserem neuesten Artikel Auf einen Kaffee mit den Devs und im Forumbeitrag zu Zeitlimits für die Demo.