Entwicklerblog | NXT - Die aktuellsten Verbesserungen

Diese Woche wird uns Mod Kitty davon berichten, wie unsere tapferen Tester den neuen NXT-Client startklar machen und was wir vom letzten Beta-Wochenende so alles gelernt haben.

Und vergesst nicht – bald gibt es das nächste geschlossene Beta-Wochenende! Es beginnt am Freitag, den 18. März um 12 Uhr Spielzeit (13 Uhr dt. Zeit).


Der Entwicklerblog von dieser Woche ist ein bisschen anders, da er aus der Perspektive des Qualitätssicherungsteams geschrieben wurde. Habt ihr euch schon immer mal gefragt, wie wir die Qualität eines so großen Spiels wie RuneScape, das komplett mit einer neuen Engine aufgemotzt wird, sicherstellen? Dann lest weiter!

Findet den Unterschied

Als die Welt von RuneScape vor unseren Augen in NXT Gestalt nahm, konnten wir gleich feststellen, wie sehr sie sich von dem unterschied, was wir mit dem alten Client gewohnt waren. Die dynamischen Schatten, das neue Belichtungssystem, die bessere Sichtweite und all die anderen Ergänzungen bringen uns eine ganz neue Spielerfahrung. Dabei wollten wir natürlich trotzdem sicherstellen, dass ihr das Spiel, das ihr so gerne spielt, dennoch sofort erkennt.

Wir haben viel Zeit damit verbracht, den Java-Client gleichzeitig mit dem neuen Client zu testen. Dafür habe ich einen automatischen Test geschrieben, der an 30 Orten zum Vergleich sowohl einen Screenshot im alten als auch im neuen Client macht. Das war sehr praktisch für uns, weil wir dadurch sofort sehen konnten, wie sich die Umgebung verändert hat. Diese Screenshots haben wir dann verwendet, um die Stimmung an den Orten in Bezug auf Farben und Belichtung genau abzustimmen.

Stadt der TzHaar davor Stadt der TzHaar danach

Inhaltsfehler und Enginefehler

Die Umgebung von RuneScape und die Modelle aus den letzten 15 Jahren wurden innerhalb der Einschränkungen des Java-Clients entwickelt. Diese Einschränkungen bestehen beim NXT-Client jetzt nicht mehr. Sobald wir mit der Entwicklung angefangen hatten, mussten wir feststellen, dass viele Elemente der Welt jetzt etwas fehl am Platz waren. Beispielsweise schienen viele Orte jetzt viel näher beieinander zu sein als erwartet. Orte oder NSC schwebten in der Luft, weil die Gebäude so eingestellt waren, dass sie erst viel später erschienen. Außerdem glänzten bestimmte Materialien viel mehr als andere, weil die Belichtung bei ihnen anders war.

Wir haben uns eine Programmlösung ausgedacht, durch die wir standardmäßige Belichtungs- und Umgebungseffekte erreichen können. Diese würden jedoch nicht für alle Umgebungen perfekt funktionieren, weswegen unsere Künstler sie manuell anpassen können. Diesen ganzen Prozess werden wir abschließen, aber er ist relativ langwierig – vor allem neben den ganzen wöchentlichen Updates. Habt bitte etwas Geduld mit uns.

Eingesendete Fehlerhinweise vom letzten Beta-Wochenende

Als Erstes möchten wir euch sagen: Danke für die riesigen Mengen an Feedback, die ihr uns im Zuge des Beta-Wochenendes geschickt habt. Zweitens: Wir haben alles gelesen!

Die NXT-Entwickler und unsere Tester haben sich die Zeit genommen, durch die riesigen Mengen an Daten zu gehen, die wir beim Beta-Wochenende gesammelt hatten. Dazu gehören:

  • 15.000 Fehlerhinweise aus dem Spiel
  • 50 Forumthemen
  • Serverprotokolle mit Infos zu Abstürzen
  • Massenhaft Feedback auf Twitter, Reddit und YouTube

Wir sind im Detail durch all eure Hinweise gegangen, nicht nur, um neue Fehler zu finden, sondern auch um eine Heatmap der Fehler und Probleme zu erstellen, die am häufigsten gemeldet wurden.

Dabei haben wir Folgendes herausgefunden:

Einige Spieler konnten den Client nicht starten oder hatten Probleme dabei, ihn zu installieren.

Wir haben viel aus diesen Hinweisen, die von Spielern im Forumthema über kritische Fehler vermerkt wurden, gelernt und versucht, uns um alle zu kümmern. Beim nächsten Beta-Wochenende sollte es viel weniger Spieler geben, die Probleme beim Installieren oder Starten von NXT haben – hoffentlich gar keine!

Crash!

Die Engine in C++ zu schreiben, hat es unseren Entwicklern ermöglicht, die Computer-Ressourcen genau zu kontrollieren und zu optimieren, wodurch wir eine massive Leistungsverbesserung erreichen konnten. Etwas so Komplexes von der Pike auf aufzubauen bedeutet jedoch, dass Crashs quasi unvermeidbar sind.

Glücklicherweise sind wir darauf jedoch vorbereitet und haben für diesen Fall einen Crash-Hinweis implementiert, sodass unsere Server die Fehler identifizieren konnten, wenn ein Clientcrash vorkam, und die meisten von ihnen haben wir bereits behoben.

Basierend auf eurem Feedback haben wir vier Arten von Crashs im Spiel festgestellt:

  • Crashs beim Übergang von der Lobby ins Spiel – Diese lagen meistens an Problemen mit der Kompatibilität.
  • Crashs beim Laden der Anwendung – Diese lagen meist an fehlenden Bibliotheken, benötigten Systemupdates oder falschen Befugnissen.
  • Crashs, nachdem man eine Stunde gespielt hat – Das bedeutet, dass Spieler tatsächlich auf eine Kondition für einen Crash gestoßen sind.
  • Läuft das erste Mal, beim zweiten Mal kommt es jedoch zu einem Crash aufgrund eines 'Fehlers beim Speichern der Datei' – Höchstwahrscheinlich läuft noch ein Prozess vom rs2client.exe und hält den neuen davon ab, auf seine Ressourcen zuzugreifen. Dieses Problem sollte nun behoben sein.

Probleme mit der Kompatibilität

Dies bedeutet, dass sich das Spiel bei bestimmten Kombinationen von Hardware und Betriebssystemen anders verhält. Wir wollten das Spiel schon immer so vielen Spielern wie möglich zur Verfügung stellen, weshalb wir die Qualität der Spielerfahrung bei so vielen verschiedenen PC-Konfigurationen wie möglich testen mussten. Dies haben wir in drei Schritten gewährleistet:

  • Wir haben unser eigenes Kompatibilitäts-Testlabor mit mehr als 30 Maschinen genutzt – Desktop-Computer und Laptops –, die alle verschiedene Kombinationen von Betriebssystemen, Prozessoren, Grafikprozessoren, etc. haben.
  • Wir haben es unseren Mitarbeitern ermöglicht, den neuen Client bei sich zu Hause zu nutzen, wodurch wir Daten einer noch größeren Bandbreite an Computern erhalten haben.
  • Außerdem haben wir Firmen angeheuert, die für uns weitere Kompabilitätstests durchgeführt haben.

Sicherzustellen, dass unser Client auf Dutzenden von Maschinen richtig läuft, kann sehr zeitaufwendig und monoton sein, daher haben wir uns die Arbeit etwas erleichtert, indem wir automatische Testabläufe mithilfe von Python geschrieben haben. Zusammen mit unserem guten Meldesystem konnten wir Tests so oft wie nötig auf mehreren Maschinen gleichzeitig durchführen und die Leistungsfähigkeit des NXT-Clients bei jedem Build genauestens beobachten.

Diese Art des automatischen Testens benutzen wir seit Jahren auch schon für den Java-Client. Wir mussten nur beide Testreihen erhöhen und die Anzahl der Maschinen vergrößern, die diese Tests durchführen.

Das Beta-Wochenende hat uns ein paar Probleme mit der Kompatibilität aufgezeigt, die bei den Tests mit den Computern unserer Mitarbeiter und der externen Testfirma nicht aufgetreten sind. Wir haben diese Probleme untersucht und ein paar häufige Auslöser gefunden. Folgt den unten angegebenen Schritten, um die bestmögliche Erfahrung mit NXT zu erreichen:

  • Lasst RuneScape nicht als Administrator laufen:Dies kann dazu führen, dass wichtige Dateien keine Lese-/Schreibbefugnisse haben.
  • Aktualisiert euer Betriebssystem:Indem ihr darauf achtet, dass euer Betriebssystem so aktuell wie möglich ist, kann NXT besser laufen und ihr verbessert außerdem die Sicherheit und Stabilität eures Computers.
  • Aktualisiert die Treiber eures Grafikprozessors:Bei älteren Treibern, einigen integrierten Intel-Chips oder älteren Radeon-Grafikprozessoren kann es zu Grafikfehlern kommen wie dazwischenliegenden Frames oder lange schimmernden Polygonen. Aktuelle Treiber werden dabei helfen, die Leistungsfähigkeit eures Computers zu verbessern.

Außerdem mussten wir ein paar Probleme bei älteren Versionen von OSX feststellen. Wir werden daher noch weitere und tiefer gehende Tests für diese Versionen des Betriebssystems durchführen.

Probleme mit der Leistungsfähigkeit

Unser Ziel ist es, dass RuneScape so aussieht und sich spielen lässt wie ein modernes Spiel. Jedes 3D-Spiel, das in den letzten paar Jahren veröffentlicht wurde, wird eure Grafikprozessoren gut zum Arbeiten bringen. Dies liegt in der Natur von 3D-Grafikanwendungen und ist der Grund, warum es Grafikprozessoren überhaupt gibt.

Ich habe im Forum gelesen, dass sich ein paar von euch Sorgen machen, dass eure Computer überhitzen könnten. Solange ihr beim Übertakten vorsichtig seid, sollte das kein Problem sein – NXT wird euren Computer nicht mehr belasten als andere moderne 3D-Spiele (und in vielen Fällen sogar noch weniger).

Eine weitere häufig gestellte Frage im Forum war: „Bei mir läuft Java auf hoher Grafikeinstellung, warum sollte ich NXT auf niedrig laufen lassen?“ Wenn ihr die vorherigen Technikblogs gelesen habt, wisst ihr, dass die hohen Grafikeinstellungen bei NXT nicht gerade den hohen Grafikeinstellungen von Java entsprechen. Ein kleiner Blick hierauf sollte euch dies bereits verdeutlichen:

Turm der Magier - Nicht sichtbar Turm der Magier - Sichtbar

Ähmmmm... Wo ist denn der Turm hin?

Ihr dürft nicht vergessen, dass ihr immer noch mehr Features haben werdet, wenn ihr den NXT-Client auf niedrigen Einstellungen laufen lasst, als wenn ihr den alten Client auf hohen Einstellungen benutzt. Und das Beste ist, dass ihr dabei auch noch eine bessere Bildfrequenzrate bei einer geringeren Auslastung des Prozessors erhaltet!

Dynamische Schatten

Beachtet die dynamischen Schatten unter allen animierten Einheiten.

So sieht der Leistungsgraph bei einem Laptop mit Intel(R) HD Graphics 4000, einem Intel(R) Core(TM) i5-3210M Prozessor mit 2.50GHz bei niedrigen Grafikeinstellungen aus (beim Ausruhen neben dem Schloss von Lumbridge):

NXT und Java-FPS im Zeitvergleich
FPS – NXT FPS – Java
NXT und Java-Prozessornutzung im Zeitvergleich
Prozessor-% – NXT Prozessor-% – Java

Lag

Viele Spieler haben uns davon berichtet, dass ihr Client langsam ist, nicht reagiert oder lange braucht, bis er geladen ist. Wir haben ein paar Fälle gefunden, in denen wir die Art, wie wir unsere Assets laden, verbessern müssen, besonders bei Prozessoren mit 4 Prozessorkernen oder weniger. Daran wird gerade gearbeitet, was dann hoffentlich bald Spielern helfen wird, bei denen diese Probleme vorkommen.

Diese Ladeprobleme haben vor allem die Animationen und den Kampf betroffen, weswegen wir viele Fehlerhinweise hierzu bekommen haben: Standbilder, nachdem eine Animation abgespielt wurde (z.B. bei einem Woge-Zauber), nur teilweise oder gar nicht abgespielte Animationen.

Fehlerhafte Sprites/Falsch aussehende Symbole

Nachdem sie lange in NXT gespielt haben, haben uns viele Spieler davon berichtet, dass sie verdoppelte Gegenstände in ihrem Inventar gesehen haben, dunkle Schatten um Objekte in der Welt und ähnliche Grafikfehler. Dies war besonders schwer zu lösen, vor allem, da es nur nach recht vielen Stunden des kontinuierlichen Spielens auftrat. Wir haben etwas Code mit hinzugefügt, um diese Fehler in Zukunft zu vermeiden, aber wir müssen noch weitere Stresstests durchführen, um sicherzustellen, dass alles richtig funktioniert.

Kampfprobleme

Nicht wenige Spieler, die NXT während des Beta-Wochenendes genutzt haben, haben sich darüber beschwert, dass sich der Kampf nicht verlässlich anfühlt. Dies hat hauptsächlich Bosskämpfe beeinflusst, wo Spieler von nicht richtig oben gerenderten Trefferklecksen berichteten, Bossen, die manchmal nicht am richtigen Ort waren und einigen Fähigkeiten, die sich nicht so verhalten haben oder aussahen, wie sie sollten.

In den Wochen nach dem Beta-Wochenende haben wir uns darauf konzentriert, diese Fehler zu beheben, damit ihr euch keine Sorgen darüber machen musst, eure Gegenstände zu riskieren, wenn ihr NXT testet.

Andere Probleme

Wir haben uns außerdem auf die Minikarte konzentriert. Vorher gab es Probleme beim Aktualisieren von Gegenden, die so eingestellt waren, dass sie beim Hinteleportieren langsam erscheinen. Wenn der Client dann etwas zu lange gebraucht hat, um die neue Gegend zu laden, ist es vorgekommen, dass die Aktualisierung der Karte beim Übergang fehlgeschlagen ist.

Andere Probleme traten aufgrund unseres Wunsches auf, die Arbeitsweise des alten Systems zu optimieren und zu verbessern. Hier haben wir also immer noch etwas Arbeit vor uns. Aufgrund der erhöhten Sichtweite, bedeutete dies, dass ein Nutzer auf einen NSC klicken konnte, der in der nächsten Stadt war, wenn er auf dem Bildschirm zu sehen war.

Entfernter NSC

Dies erfordert Pixelstufen-Berechnungen auf mehreren Tiefenstufen des Bildschirms und viele, viele Suchanfragen. Wir haben unser Bestes versucht, um verschiedene, intelligente Lösungen hierfür zu finden, aber bei einigen Grenzfällen wie bei NSC, die ihre Form ändern, wenn sie erscheinen, müssen wir noch etwas an der Sache arbeiten.


Das Erbe

Ich hoffe, dass ihr durch diesen Blog eine bessere Vorstellung davon habt, welche Arbeit wir hier bei der Qualitätssicherung leisten und was ihr in Zukunft von neuem Client erwarten könnt.

In unserem Team benutzen wir das Wort 'Erbe' ziemlich oft. Meistens bezieht sich das darauf, wie alte Inhalte funktionieren und wie wir sie verbessern können, aber es umfasst auch all die Spieler, die uns über all die Jahre treu geblieben sind und der Wunsch, ihnen dasselbe großartige Spiel zu liefern, das sie gewohnt sind. Es ist uns bewusst, dass unsere Spieler eine gewisse Art der Spielerfahrung gewohnt sind und wir wollen euch auch weiterhin dasselbe liefern und noch vieles mehr, um euren Erwartungen zu entsprechen.

Mod Kitty
Technische Qualitätssicherung für RuneScape

Zurück nach oben