Upgrade unseres Absturzmeldesystems | EVE Online

Upgrade unseres Absturzmeldesystems

2020-11-12 - Von EVE Development Team

Hallo detailorientierte Kapselpiloten,

New Eden ist ein komplexes Universum mit gigantischen, spielergesteuerten Schlachten, einer Vielzahl von Spieloptionen, einem riesigen, spielergesteuerten Markt, Wurmloch-Zivilisationen und vielem mehr. Um neue Vorteile im Spiel zu entdecken, probieren Spieler ständig Mechaniken und Interaktionen aus, die ursprünglich nicht vorgesehen waren oder gerade erst eingeführt wurden.

Ähnlich komplex sind die PC-Konfigurationen der Spieler. Betriebssystemversionen (einschließlich Patches), individuelle Änderungen der Systemkonfiguration, Treiberversionen und die Zuverlässigkeit der verwendeten Hardware spielen alle eine entscheidende Rolle für das Verhalten des EVE Online-Clients.

Je komplexer eine Software ist, um so komplexer kann sie versagen. Client-Abstürze können nicht nur dazu führen, dass das Spiel beendet wird, sondern auch den kritischen Moment, auf den ihr gewartet habt, zunichte machen. In einigen Fällen ist die Ursache leicht zu ermitteln und es kann schnell eine Lösung gefunden werden. In anderen Fällen treten die Abstürze so selten auf, dass es schwierig ist, sie zu reproduzieren.

CCP nimmt die Stabilität des Clients sehr ernst. Wir haben vor Kurzem Investitionen getätigt, um sicherzustellen, dass wir Abstürze so gut wie möglich erfassen können. Dadurch sind wir in der Lage, mehr Abstürze zu erfassen und letzten Endes die Zahl der Abstürze zu reduzieren. Zusammen mit den Fehlermeldungen, die ihr mit F12 einreichen könnt, hilft uns dies dabei, den EVE-Client so stabil wie möglich zu halten.


Verbesserte Meldetechnologie

Wenn der Client abstürzt, lädt er einen Absturzbericht auf ein Absturzüberwachungssystem hoch, das rund um die Uhr arbeitet. Nachdem wir jahrelang die allseits bekannte und beliebte Breakpad Library von Google verwendet haben, haben wir uns nun für eine bessere Lösung entschieden: die Crashpad Library. Bitte beachtet, dass bei beiden Bibliotheken keine Informationen an Google gesendet werden.

Breakpad befindet sich in der normalen ausführbaren Datei des EVE-Clients. Das bedeutet, dass ein abstürzender Client auch Breakpad zum Absturz bringen kann, was möglicherweise zum Verlust des Berichts führt. Dasselbe passiert, wenn dem EVE-Client der Speicherplatz ausgeht – der wertvolle Absturzbericht kann verloren gehen.

Crashpad löst dieses Problem, indem es außerhalb des Programms sitzt, das es überwacht. Das bedeutet, dass ihr bald einen separaten Prozess sehen werdet, der neben dem EVE-Client läuft und den passenden Namen „eve_crashmon“ trägt. Das Ganze sieht im Windows Task-Manager so aus:

Die separate Anwendung verbraucht nicht mehr Speicher oder CPU als das alte System, das sie ersetzt, also sollte sich eure Spielerfahrung nicht verändern.


Wie Absturzberichte verwendet werden

Ein Absturzbericht fällt normalerweise in eine der folgenden fünf Kategorien:

  • Der Absturz wurde durch den Client verursacht. Dies kann durch eine Reproduktion des Fehlers bestätigt werden.
  • Der Absturz wurde wahrscheinlich durch den Client verursacht, aber es liegt keine bestätigte Reproduktion vor.
  • Der Absturz wurde von einem Gerätetreiber verursacht.
  • Der Absturz wurde durch externe Software verursacht, die mit dem Client interagiert.
  • Der Absturz wurde wahrscheinlich durch ein Hardwareproblem verursacht.

Auch wenn es vielleicht seltsam klingt: Ein bestätigter Absturz, der vom Client verursacht wurde, ist das beste Szenario. Es gibt einen klaren Prozess, um eine Fehlerbehebung zu implementieren, sie zu testen, anzuwenden und die Ergebnisse zu überwachen.

Wenn der Absturz wahrscheinlich auf den Client zurückzuführen ist, aber nicht reproduziert werden kann, sind wir auf eure Fehlermeldungen angewiesen – mehr dazu in Kürze.

Treiberprobleme sind normalerweise leicht zu erkennen, da sie vom selben GPU-Hersteller und oft auch von derselben Treiberversionsnummer stammen. Indem wir Informationen aus den Fehlermeldungen sammeln, die wir dann den GPU-Herstellern zur Verfügung stellen, können sie schneller eine Fehlerbehebung veröffentlichen.

Software, die mit dem EVE-Client interagiert, verursacht ebenfalls gelegentlich Abstürze. Dabei handelt es sich häufig um Spiel-Overlays, Software zur Bildschirmaufzeichnung oder Hardware-Überwachungssoftware, die Statistiken wie GPU-, CPU-, FPS- und Temperaturinformationen anzeigt. Vergewissert euch immer, dass ihr die neueste Version der Software und den neuesten GPU-Treiber verwendet.

Hardwareprobleme können extrem frustrierend sein. Manchmal kann der Client stundenlang fehlerfrei laufen und manchmal stürzt er schon beim Start ab. Oft gibt es kein klares Muster.


Fehlermeldungen

Fehlermeldungen sind eines der nützlichsten Werkzeuge, um Probleme in EVE Online zu lösen. Es gibt zwei Möglichkeiten zur Einreichung von Fehlermeldungen, und eine davon ist deutlich besser als die andere. Ihr könnt auf support.eveonline.com gehen und die gelbe Schaltfläche anklicken (hilfreich) oder ihr könnt im Spiel F12 drücken (extrem hilfreich).

Wenn ihr der Meinung seid, dass ihr ein Problem gefunden habt, dann reicht bitte eine Fehlermeldung ein, auch wenn ihr glaubt, dass jemand anderes dies bereits getan hat.

Das ist besonders wichtig bei technischen Problemen, bei denen wir die Fehlerursache schneller finden, wenn wir verschiedene Systeme miteinander vergleichen können. Wenn zum Beispiel mehrere Fehlermeldungen dazu eintreffen, dass Grafiken falsch dargestellt werden, und alle Berichte denselben GPU-Hersteller und dieselbe Serie an Grafikkarten erwähnen, können wir unsere Tests auf diese Grafikkarten konzentrieren, um das Problem intern zu reproduzieren. Das führt automatisch dazu, dass die Fehlerbehebung schneller getestet, angewendet und überwacht wird.

Der Schlüssel zu einer guten Fehlermeldung ist, so viele Informationen wie möglich anzugeben. Wenn wir eine Beschreibung des Problems zusammen mit möglichen Reproduktionsschritten erhalten, können wir den Fehler schneller reproduzieren.

Es ist sehr hilfreich für uns, Fehlermeldungen zu erhalten, wenn der Client aufgrund einer Benutzeraktion abgestürzt ist. Ein Beispiel dafür wäre, wenn der Wechsel vom randlosen Fenstermodus zum Vollbildmodus einen wiederholten Absturz verursacht. Absturzberichte sind nicht unfehlbar und es kann sein, dass ein entscheidendes Puzzlestück fehlt, das ihr bereitstellen könnt. Wenn ihr den Bericht über das F12-Menü im Spiel einreicht, enthält er selbst nach einem Neustart die wichtigen Client-Protokolle über den Absturz.


Testlabor

Wir bei CCP sind vor Kurzem in neue Büros umgezogen und haben dort ein Testlabor nach unseren spezifischen Anforderungen eingerichtet. Dazu gehört mehr Platz, eine leistungsfähigere Klimaanlage und mehr Stauraum für viele Testgeräte.

Hier werden die Fehlerbehebungen getestet, bevor sie implementiert werden – besonders wenn es sich um Absturz- oder Grafik-bezogene Fehlerbehebungen handelt. Im Labor werden Tests mit mehreren CPU- und GPU-Familien und mit verschiedenen Versionen von Windows- und Mac-Betriebssystemen durchgeführt.

Wir nutzen das Testlabor nicht nur für Tests von Fehlerbehebungen am Client, sondern auch für Leistungs- und Kompatibilitätstests. Da EVE Online auf vielen verschiedenen PCs läuft, wird in diesem Testlabor auch überprüft, ob neue Versionen auf den beliebtesten Systemen funktionieren und ob die Performance innerhalb der erwarteten Werte liegt.

Das Testlabor wird sich parallel zu den Code-Upgrades des EVE Online-Clients weiterentwickeln, einschließlich des zukünftigen Umstiegs auf DirectX 12.


So haltet ihr eure Software auf dem neuesten Stand

Nicht jeder Absturz kann im Testlabor reproduziert werden. Euer Betriebssystem auf dem neuesten Stand zu halten ist nicht nur aus Sicherheitsgründen wichtig, sondern stellt auch sicher, dass Fehler im Betriebssystem behoben werden. Sowohl Windows als auch Mac werden regelmäßig automatisch aktualisiert, und wir empfehlen allen Spielern, wenn möglich die neuesten Patches für ihr Betriebssystem zu installieren.

Gerätetreiber sind etwas komplexer, da sie manchmal manuell auf die neueste Version aktualisiert werden müssen. Häufig erhalten wir Fehlermeldungen von Benutzern, die einen mehrere Jahre alten Grafikkartentreiber verwenden. In diesem Fall wird das Problem einfach durch ein Update auf den aktuellen Treiber behoben.


Hardware-Probleme

Hardwarefehler gehören zu den schwierigsten Fällen. Ohne Zugang zum physischen Gerät sind sie schwer zu überprüfen. Über kurz oder lang wird jedes Bauteil eines PCs einmal ausfallen. Wenn diese Ausfälle auftreten, erscheint normalerweise ein einmaliger Absturzbericht, der durch einen Fehler verursacht wurde, der unmöglich auf den Client zurückzuführen sein kann.

Die Fehlerbehebung bei Hardwareproblemen am PC kann komplex sein. Die fünf häufigsten Probleme bei hardwarebedingten Spielabstürzen sind jedoch folgende:

  • GPU-Probleme: Manchmal erscheinen diese Probleme als fehlerhaftes Bild mit unerwarteten Farben, oder es wird ein Schachbretteffekt gerendert. In anderen Fällen kann es vorkommen, dass ein Spiel mit der Meldung „Der Anzeigetreiber wurde nach einem Fehler wiederhergestellt“ abstürzt – dieser Fehler ist jedoch nicht immer hardwarebedingt.
  • RAM-Probleme: Wenn der Arbeitsspeicher ausgefallen ist, kommt es oft zu zufälligen Abstürzen oder BSODs*. Wenn der PC über einen großen Arbeitsspeicher verfügt, bei dem nur eine einzige Adresse fehlschlägt, kann es sein, dass dieses Problem nur sehr selten auftritt.
  • Übertakten: In den letzten Jahren ist das Übertakten immer beliebter geworden, da die Mainboard-Hersteller es einfacher gemacht haben. Obwohl das Übertakten sich zur Leistungssteigerung lohnen kann, ist es mit Stabilitätsrisiken verbunden. Wenn Absturzprobleme auf einem übertakteten PC auftreten, empfehlen wir, das System wieder auf die Standardwerte zurückzusetzen und zu überprüfen, ob das Problem weiterhin besteht.
  • Stromversorgunsprobleme: Leider kann ein schlechtes Netzteil dazu führen, dass fast alles in einem System so aussieht, als wäre es fehlerhaft. Wir empfehlen, ein hochwertiges Netzteil zu verwenden, um eine langfristige Systemstabilität zu gewährleisten. Wenn ein PC unter hoher Auslastung oft abstürzt, dann sollte das Netzteil untersucht werden.
  • Überhitzungsprobleme: Diese Probleme werden in der Regel durch zu viel Staub oder durch Ventilatoren verursacht, die aufgrund eines Lagerschadens nicht ausreichend kühlen. Je nachdem, welche Komponente überhitzt ist, kann eine Überhitzung von schlechter Leistung bis hin zum Absturz der gesamten Anwendung führen.

Wenn ihr den Verdacht habt, dass eure Hardware defekt sein könnte, gibt es zum Glück viele kostenlose Programme, um eure Systemstabilität zu testen. Beliebte Empfehlungen sind memtest86 für den Arbeitsspeicher und OCCT für die allgemeine Systemstabilität. Wenn ihr beim Systemtest auf irgendwelche Fehler stoßt, wird wahrscheinlich auch der EVE-Client irgendwann ein Problem haben.


Was bringt die Zukunft?

Unsere aktuellen Absturzberichte enthalten viele nützliche Informationen zur Fehlerbehebung, die uns dabei helfen, Probleme zu lösen. Sie sind jedoch nicht in der Lage, Kontext zu umfassenderen Fragen zu liefern, z. B. wie viele Spieler von diesem Problem betroffen sind.

Was CCP wirklich wissen will, ist: „Wie viel Prozent der Spieler haben seit dem gestrigen Patch einen neuen (bisher unbekannten) Absturz erlebt, und wie viele sind es im Vergleich zur letzten Woche?“ Wir können diese Informationen zwar mit unseren derzeitigen Systemen herausfinden, aber es erfordert manuelle Arbeit, diese Ereignisse miteinander zu verbinden.

In Zukunft wollen wir Dashboards nutzen, die uns die komplexen Situationen in Echtzeit anzeigen. Dazu müssten wir den Zustand aller EVE Online-Clients in Echtzeit beobachten. Der Umstieg auf Crashpad und eine Absturzüberwachung außerhalb des EVE-Clients ist einer der ersten Schritte in diese Richtung.

Als Endpunkte für unsere Absturzberichte erlauben es uns Crashpad + Sentry, die Abstürze zu beobachten, zu filtern und schnell zu handeln. Um unsere Reaktionsfähigkeit zu verbessern, werden wir einige der jüngsten Verbesserungen aus ihrem nativen SDK integrieren.

Vielen Dank fürs Lesen und denkt daran, F12 zu drücken, um bei Bedarf eine Fehlermeldung einzureichen.