14.9.2018

Probleme mit der Spielersuche seit Operation Grim Sky

Am 4. September 2018 veröffentlichten wir Operation Grim Sky auf den Live-Servern. Das „Grim Sky“-Update bot Verbesserungen des Spielersuche-Ablaufs mit dem Ziel, den Auswahlprozess des Spielservers zu Beginn flüssiger zu gestalten. Bei der Veröffentlichung des Updates stellten wir fest, dass die Anzahl der Spielersuche-Fehler im Vergleich zur Testserverphase anstieg. Spieler, vor allem in Nordamerika, konnten das Spielersuche-System nicht nutzen, um Matches beizutreten.

Nachfolgend erklären wir, was passiert ist und welche Schritte wir zur Fehlerbehebung unternommen haben.

Der Ablauf der Spielersuche

Durch Auswahl der Multiplayer-Schaltfläche in einem der Online-Spielmodi wird ein zweistufiger Ablauf ausgelöst.

Zunächst kontaktiert das Spiel unsere Spielersuche-Dienste und sucht nach dem passendsten Team. Dieser Schritt dauert je nach Spielmodus, dem eigenen Rang und der aktuellen Spieleranzahl zwischen 10 und 60 Sekunden (dieser Schritt des Ablaufs war von dem Problem nicht betroffen).

Danach versucht der Client, sich mit dem Spielserver zu verbinden. An dieser Stelle trat das Problem auf.

Verbindungen zu unseren Spielservern bestehen aus einem Austausch von UDP-Nachrichten (User Datagram Protocol) zwischen dem Client und dem Server. Von oben betrachtet sehen die Nachrichten so aus:

[2018-09-14] MM degrad picture

Der Client stellt einen Kommunikationskanal zum Server her, wartet einen Frame lang (ca. 16 ms) und sendet dann Informationen (Hello) an diesen Kanal.

Die Entdeckung

Bei der Untersuchung dieses Problems stellten wir fest, dass es bei dieser Verbindung bereits einen Fehler auf der Serverseite gab: Wenn in einem sehr kurzen Zeitraum die 4. Nachricht (Hello) den Spielserver vor der 3. Nachricht (Ack) erreicht, geht die Verbindung in einen Fehlerstatus über, der bestehen bleibt. Dies führt immer zur Fehlermeldung „6-0x00001000“ (Verbindung wegen Zeitüberschreitung unterbrochen).

In den meisten Fällen werden Nachrichten, die in einer bestimmten Reihenfolge gesendet werden, auch in derselben Reihenfolge empfangen. Die geänderte Reihenfolge von Nachrichten ist so selten, dass der Fehler an sich nicht häufig auftritt. Allerdings kann er auch aus nachvollziehbaren Gründen vorkommen, etwa, wenn die Firewall des Spielers falsch eingestellt ist. In diesen Fällen lässt sich die Problemursache schwer ermitteln. Mit anderen Worten: Wenn diese Fehler nur selten auftreten, ist das kein Grund zur Sorge und sogar zu erwarten, aber kommen sie häufig vor, ist dies auffällig und deutet darauf hin, dass etwas nicht stimmt. Das ist der Hauptgrund dafür, dass wir das Ausmaß des Problems in der Testserverphase nicht unmittelbar erkannt haben – da der Testserver wesentlich kleiner war.

Die Entwicklung des Problems

Eine der Änderungen, die wir in Operation Grim Sky vorgenommen haben, ist eine Verbesserung, durch die der Client nicht wartet und die 3. und 4. Nachricht direkt sendet – in der richtigen Reihenfolge, mit sehr kurzem zeitlichem Abstand. Bei den meisten Internetdienstanbietern hat dies keine spürbaren Auswirkungen. Bei manchen Anbietern wurden die beiden Nachrichten so kurz hintereinander gesendet, dass sich in den meisten Fällen die Reihenfolge änderte. Dadurch trat das Problem bei Spielern, die diesen Anbieter nutzen, fast immer auf. Das lag an der niedrigen Latenz bei Verbindungen mit diesem Internetdienstanbieter. Im Wesentlichen ist das Auftreten dieses Fehlers umso höher, je niedriger die Latenz der Verbindung des Spielers ist.

Hinzu kommt, dass die Spielserver-Verbindungsphase bei allen Spielern eines Trupps fehlschlägt, wenn mindestens ein Spieler dem Match nicht beitreten kann (2-0x0000D012). Dies wurde ursprünglich so entworfen, um bei der Spielersuche die Intaktheit des Trupps sicherzustellen. Da aber so viele Spieler von dem ersten Fehler betroffen waren, löste er einen Kaskadeneffekt aus, der Auswirkungen auf alle hatte, die dem Trupp eines betroffenen Spielers beitraten.

Sobald wir das Problem mit Gewissheit identifiziert hatten, könnten wir den Spielserver-Fehler beheben und sicherstellen, dass das Problem in Zukunft nicht mehr auftreten wird.

Schritte zur Fehlerbehebung

Die ersten Tage verbrachten wir komplett damit, das Problem mit dem besten Verständnis, das wir zu diesem Zeitpunkt von der Situation hatten, nachzubilden. Leider waren diese Bemühungen nicht erfolgreich. Obwohl wir mit vielen verschiedenen Simulationen von Latenz, Schwankungsbreite und Paketverlusten experimentierten, waren wir noch nicht überzeugt davon, die tatsächliche Ursache des Problems gefunden zu haben. Es ist sowohl für uns als auch für die Spieler nachteilig, Zeit und Ressourcen in die Behebung von etwas zu stecken, das überhaupt nicht die Ursache des Problems ist, da so das Problem noch länger bestehen bleibt.

Glücklicherweise kontaktierten uns viele Spieler und boten ihre Hilfe an. Wir arbeiteten eng mit einigen Spielern zusammen, bei denen das Problem häufig auftrat. Mit ihrer Großzügigkeit und ihrer Hilfe konnten wir bei unseren Nachforschungen große Fortschritte machen. Nach der zweiten Debug-Session waren wir uns sicher, den Ursprung des Problems gefunden zu haben, und von da an konnten wir mit der eigentlichen Fehlerbehebung beginnen. Am Sonntagabend war unsere Fehlerbehebung fertiggestellt und nach einer letzten Session mit unseren freiwilligen Testspielern, um sicherzugehen, dass das Problem nicht mehr bestand, waren wir uns sicher, die Lösung gefunden zu haben. Wir planten, die Fehlerbehebung direkt am nächsten Werktag (Dienstag) umzusetzen.

Nächste Schritte

Eines der größten Probleme, auf das wir bei der Ermittlung der Fehlerursache stießen, war die Tatsache, dass der Fehler zeitgleich mit einem großen Saison-Update veröffentlicht wurde. Dadurch war es unmöglich, den Fehler zurückzusetzen, ohne damit auch die komplette Saison zurückzusetzen.

Für die Zukunft planen wir Verbesserungen unseres Veröffentlichungsprozesses, durch die wir neue Inhalte – vor allem Saison-Inhalte – getrennt von Änderungen auf niedriger Ebene veröffentlichen werden, die der Spieler nicht sieht. Sollte in Zukunft also wieder ein ähnliches Problem auftreten, haben wir die Möglichkeit, die Änderungen bei Bedarf zurückzusetzen.

Wir möchten diese Gelegenheit nutzen, erneut den Spielern unseren Dank auszudrücken, die sich die Zeit genommen haben, uns und somit der gesamten „Rainbow Six“-Community beim Lösen des Problems zu helfen. Ihr seid der Hammer!

Darüber hinaus arbeiten wir weiter an den Spielabstürzen, die bei Spielern auf allen Plattformen auftreten. Für die meisten dieser Abstürze wird es in Patch 3.1 Fehlerbehebungen geben.

Besuche weitere Social Media-Kanäle

facebook icontwitter iconyoutube icontwitch icon