Jump to content
Sagittarius

30K, Entstehung und Behebung

Recommended Posts

Als ein Backer sich im Spectrum über 30K und seine finanziellen Verluste ärgerte und bei CIG nachfragte, bekam er eine sehr detaillierte Antwort die einige Fragen beantwortet und Einblicke in die Entwicklung ermöglicht.

 

 

 
Clive Johnson CIG@cjohnson

Zitat:

"In Ihrer Frage gibt es eine ganze Menge zu beantworten. Ich werde versuchen, auf die wichtigsten Punkte einzugehen, aber bitte entschuldigen Sie, wenn Sie das Gefühl haben, dass ich etwas Wichtiges ausgelassen habe.

 

Wann werden die Server stabil sein? Am Ende der Beta-Phase. Warum nicht schon vorher? Weil wir erst den Rest des Spiels fertig machen müssen.

 

Wenn an einem Spiel als geschlossener Alpha gearbeitet wird, liegt der Schwerpunkt auf der Entwicklung von Features und Inhalten. Stabilität und Fehlerbehebung treten in den Hintergrund, und es werden nur Fragen behandelt, die die weitere Entwicklung behindern würden. Das mag unprofessionell klingen, aber die Idee dahinter ist, Ideen so schnell und kostengünstig wie möglich auszuprobieren. So können die Entwickler herausfinden, welche Teile des Spieldesigns funktionieren und welche überarbeitet werden müssen. Es hat keinen Sinn, Zeit mit der Fehlerbehebung für eine Funktion zu verbringen, die sich jederzeit ändern oder sogar ganz aus dem Spiel entfernt werden kann. Die Entwicklung wird mit dem Spiel in diesem halbgeschädigten Zustand zumindest solange fortgesetzt, bis alle Funktionen und Inhalte gesperrt sind. Das Spiel geht dann in die Beta-Phase der Entwicklung, in der Fehlerbehebung, Optimierung, Balance und Feinschliff im Vordergrund stehen. Im Idealfall wird während der Beta-Phase nicht an den Features gearbeitet, aber es werden fast immer in letzter Minute noch einige Änderungen eingefügt.

 

Bei SC handelt es sich natürlich um eine offene Entwicklung, d.h. während der Schwerpunkt in der Alpha-Phase noch darauf liegt, verschiedene Ideen auszuprobieren, muss das Spiel stabil und funktionsfähig genug sein, damit die Geldgeber es testen und ihr Feedback geben können. Das Schlüsselwort dort ist "genug", was natürlich nicht perfekt bedeutet. Es ist wichtig, dass wir die richtige Balance zwischen Fehlerbehebung und Weiterentwicklung finden: zu viel Fehlerbehebung und Entwicklung verlangsamt sich, zu wenig und wir bekommen nicht genug Feedback oder die Fehler behindern die Weiterentwicklung.

 

Hat CIG die richtige Balance zwischen Fehlerbehebung und Weiterentwicklung?

 

Das Problem bei der Feststellung, ob ein Build "stabil genug" ist, besteht darin, dass wir nur betrachten können, wie sich die Stabilität auf die gesamte Spielerbasis, d.h. den Durchschnitt, auswirkt. Es wird daher einige glückliche Geldgeber geben, die weit weniger Abstürze oder andere Probleme als der Durchschnitt erleben, während es einige arme Seelen geben wird, für die der Build ein fehlerbehaftetes Crash-Fest zu sein scheint. Fragen Sie die glücklichen Spieler, ob wir die richtige Balance haben, und sie könnten sagen, nein, das Spiel ist stabil genug, und wir müssen uns mehr auf die Erweiterung des Spiels konzentrieren. Fragen Sie die Unglücklichen, vielleicht sagen sie dann immer noch nein, aber sie wollen, dass wir die Arbeit an neuen Funktionen einstellen, bis alle aktuellen Fehler behoben sind. Nur sehr wenige Leute werden ja sagen.

 

Als Faustregel gilt: Bevor wir einen Patch für Live veröffentlichen, versuchen wir sicherzustellen, dass er mindestens so stabil ist wie die vorherige Live-Veröffentlichung. Einige Patches können für bestimmte Spielweisen mehr oder weniger stabil sein als frühere, aber insgesamt sollte die Stabilität von Patch zu Patch besser werden. Natürlich klappt es manchmal nicht so, wie wir uns das wünschen, und die durchschnittliche Stabilität wird am Ende nicht so gut sein wie bei der vorherigen Version.

 

Warum beheben wir nicht die Server-Abstürze, die 30000 Unterbrechungsfehler verursacht haben?

 

Das tun wir. Es sieht nur so aus, als ob wir es nicht tun, denn unabhängig von der Ursache führen alle Serverabstürze dazu, dass Clients die gleichen 30000 Unterbrechungen der Verbindung erhalten. Diese Verbindungsunterbrechung geschieht, weil die Clients nach dem Absturz des Servers plötzlich keinen Netzwerkverkehr mehr von ihm empfangen. Sie warten dann 30 Sekunden lang, um zu sehen, ob der Datenverkehr wieder aufgenommen wird (falls der Server vorübergehend blockiert war oder es einen kurzen Netzwerkausfall gab), bevor sie aufgeben, zu den Front-End-Menüs zurückkehren und den Trennungsfehler anzeigen. Während dieser 30 Sekunden sehen die Clients, dass sich die Türen nicht öffnen und dass KI, Terminals und andere Einheiten nicht mehr reagieren. Befürworter verwechseln diese Symptome manchmal mit einem Anzeichen dafür, dass der Server kurz vor dem Absturz steht, und man sieht im Spiel-Chat vielleicht, dass ein Serverabsturz bevorsteht, aber in Wahrheit ist der Server bereits tot. Es handelt sich um einen Ex-Server. Er hat aufgehört, ein Ex-Server zu sein. Wenn wir ihn nicht auf seine Stange genagelt hätten, würde er die Gänseblümchen in die Höhe schieben. (Der Chat im Spiel funktioniert nur deshalb weiter, weil er von einem anderen Server verwaltet wird).

 

Wenn ein neuer Patch für PTU vorbereitet wird, stehen fast täglich neue Builds zum Herunterladen zur Verfügung. Sobald DevOps im ATX den neuen Build auf die Server gepusht und zum Download zur Verfügung gestellt hat, überwachen sie den Build während der ersten Stunden und arbeiten dafür oft bis spät und suchen nach allem, was auf ein Problem hinweist, das sofort behoben werden muss. In den nächsten Stunden spielen die Leute das Spiel, laden ihre Absturzberichte hoch, reichen sie beim Issue Council ein, antworten auf Feedback-Foren usw. Server-Abstürze werden alle automatisch in einer Datenbank aufgezeichnet. Wenn die EU-Studios aufwachen, sieht die technische Qualitätssicherung die hochgeladenen Client-Abstürze und die aufgezeichneten Server-Abstürze durch und nimmt eine erste Einschätzung vor, wer die schlimmsten Übeltäter sind, je nachdem, wie oft sie auftreten und wie schnell nach dem Beitritt zu einem Spiel. Serverabstürze landen fast immer an der Spitze des Stapels, allein schon deshalb, weil sie mehr Menschen betreffen als einzelne Clientabstürze. Jiras werden erstellt und an die Produktion weitergeleitet. Die Produktion erledigt hier drei Dinge: erstens schickt sie den Absturz Jiras zur Triage an die Leads, zweitens bestätigt sie die Prioritäten und welche Abstürze die QA versuchen sollte, zu reproduzieren oder anderweitig zu unterstützen, drittens meldet sie besonders schlimme Abstürze bei den Direktoren für Prioritätsanrufe, falls zusätzliche Personen umbesetzt werden müssen, um eine rasche Lösung zu gewährleisten. In der Zwischenzeit triagieren die Leiter die Abstürze und stellen sicher, dass sie an die richtigen Programmierer in den richtigen Teams gehen. Dann untersuchen die Programmierer die Fehler, wobei sie oft mit der QA zusammenarbeiten, um so viele Informationen wie möglich über den Fehler zu finden. Meistens können die Programmierer einen Fix noch am selben Tag committen, aber manchmal kann es ein oder zwei Tage länger dauern. In seltenen Fällen kann es ein paar Wochen dauern, um das Problem aufzuspüren und einen Fix zu finden. In sehr seltenen Fällen ist der Fehler ein Symptom eines tieferen Fehlers, der eine Umstrukturierung eines Systems erfordert, damit es auf eine andere Art und Weise funktioniert, nicht rechtzeitig oder ohne erhebliches Risiko für den aktuellen Patch durchgeführt werden kann und zu einem Rückstand hinzugefügt werden muss, der für eine zukünftige Version eingeplant werden muss. Sobald ATX online geht, veröffentlichen Community und DevOps ihre Berichte über den vorherigen Build aus den Informationen, die sie im Laufe des letzten Tages gesammelt haben. Die Produktion gibt einen Build mit allen neuesten Fixes frei und trifft sich mit QA, Community und DevOps, um zu beurteilen, ob der neue Build wahrscheinlich besser sein wird als der letzte oder ob zunächst zusätzliche Fixes erforderlich sind. Die Produktion gibt ihre Empfehlung an die Führungskräfte weiter, die an diesem Tag eine Go/No-Go-Entscheidung über den Versuch treffen, den neuen Build an PTU zu übergeben. Falls ja, beginnen ATX QA und DevOps damit, sich durch eine Vorab-Checkliste zu arbeiten, deren Bearbeitung mehrere Stunden in Anspruch nimmt. Wenn L.A. online geht, können die EU-Programmierer alle Probleme übergeben, die speziell für die L.A.-Teams bestimmt waren oder an denen die EU-Teams gearbeitet haben, die aber ungelöst sind und von einer weiteren Untersuchung profitieren würden, nachdem die EU für den Tag fertig ist. Wenn ATX die Vorab-Checkliste ausgefüllt hat, und wenn der Bau abgeschlossen ist, beginnt der Zyklus von vorn.

 

Wenn wir die Abstürze beheben, warum kommt es dann immer wieder zu 30000 Verbindungsabbrüchen?

 

Zwischen jeder vierteljährlichen Veröffentlichung ändern wir eine Menge Code. Einiges davon ist komplett neu und einiges davon sind lediglich Änderungen an bestehendem Code. Jede Änderung, die wir vornehmen, birgt die Chance, dass sie Fehler enthalten könnte. Wir sind auch nur Menschen und alle machen von Zeit zu Zeit Fehler, so dass jedes Quartal das Potential hat, eine Menge neuer Fehler hinzuzufügen. Es gibt Prozesse, die die Wahrscheinlichkeit, dass das passiert, verringern, aber einige schlüpfen immer wieder durch. Sobald ein Fehler entdeckt wird, muss er behoben werden. Manchmal funktioniert eine Korrektur nicht. Manchmal wird der Absturz nur in einigen Fällen behoben, aber nicht in allen. Manchmal ist in der Korrektur selbst ein Fehler enthalten, der andere Probleme verursachen kann. Eines der Dinge, die wir recht häufig sehen, ist, dass, sobald ein häufiger Absturz behoben ist, ein oder mehrere andere Abstürze häufiger auftreten werden. Das passiert, weil der Absturz, der gerade behoben wurde, die anderen Abstürze so stark blockiert hat, wie es sonst der Fall gewesen wäre. Wie oben erwähnt, gibt es auch Abstürze, die nicht sofort behoben werden können und warten müssen, bis mehr Zeit zur Verfügung steht, um sie richtig zu beheben, oder bis andere geplante Arbeiten abgeschlossen sind. Letztendlich werden jedoch die meisten der häufigsten Abstürze behoben. Was dann übrig bleibt, sind die wirklich seltenen Abstürze, die Abstürze, die nur einmal im Monat auftreten und über die wir noch nicht genügend Informationen haben, um sie zu beheben oder zu reproduzieren. Einer dieser seltenen Fehler allein wird keinen großen Unterschied machen, aber hundert solcher Fehler würden für mindestens drei Serverabstürze pro Tag ausreichen.

 

Wenn wir die Server nicht stabil machen können, warum bieten wir dann nicht irgendeine Art von Wiederherstellung an?

 

Es wurde vorgeschlagen, dass die Bereitstellung einer Art Frachtversicherung verhindern könnte, dass Spieler große Summen an aUEC verlieren, wenn ihr Server mitten im Frachtlauf abstürzt. Ich glaube, dass dies in Erwägung gezogen wurde, aber es ist klar, dass dies als Exploit missbraucht werden könnte. Solange dieses Problem nicht gelöst ist, ist es unwahrscheinlich, dass eine Frachtversicherung im Spiel auftaucht.

Ein weiterer Vorschlag ist, eine Art Wiederherstellung nach einem Serverabsturz hinzuzufügen. Die Idee dabei ist, dass bei einem Serverabsturz alle Clients mit einem 30000 wie jetzt in die Menüs zurückgeworfen würden, dann aber die Möglichkeit hätten, sich einem neu aufgebauten Server anzuschließen, der den Zustand des Originals aus der Persistenz wiederhergestellt hat. Das ist eigentlich etwas, was wir uns erhoffen, aber es erfordert mehr Arbeit am SOCS und volle Persistenz, bevor es geschehen kann, so dass wir noch weit davon entfernt sind.

Es gab auch andere Vorschläge, wie z.B. Clients oder Server, die den Zustand des Spiels in lokalen Dateien speichern, aber diese sind nicht sicher, oder es wäre eine vorübergehende Lösung und eine Verschwendung von Arbeit für die Implementierung und Wartung, die stattdessen auf die Arbeit an der richtigen Lösung verwendet werden könnte.

Im Moment ist es am besten, wenn wir weiterhin Abstürze beheben, sobald wir sie finden, und hoffen, dass die Server stabil genug sind, dass die meisten Spieler das Spiel testen können."

Übersetzt mit www.DeepL.com/Translator (kostenlose Version)

 

Quelle:https://robertsspaceindustries.com/spectrum/community/SC/forum/50259/thread/server-issues-30k/3034939

 

  • Like 2
  • Thanks 8

Share this post


Link to post
Share on other sites

@SagittariusDanke, DAS ist mal eine ausführkliche Erklärung und genau das, was bei so komplexen Prozessen eigentlich klar sein sollte. Und der Humor gefällt mir :-D

" Es handelt sich um einen Ex-Server. Er hat aufgehört, ein Ex-Server zu sein. Wenn wir ihn nicht auf seine Stange genagelt hätten, würde er die Gänseblümchen in die Höhe schieben. " :-D

Share this post


Link to post
Share on other sites

Ja, was soll man von Clive Johnsons Aussagen halten? Wenn 99 (oder wieviel auch immer) weiter Sonnen- und Planetensysteme noch in das Spiel eingefügt werden sollen, dann haben wir noch 99 weitere Jahre Star Citizen Alpha mit instabilen Servern? Da bin ich aber gespannt.

Share this post


Link to post
Share on other sites
vor 53 Minuten schrieb Brusian:

Ja, was soll man von Clive Johnsons Aussagen halten? Wenn 99 (oder wieviel auch immer) weiter Sonnen- und Planetensysteme noch in das Spiel eingefügt werden sollen, dann haben wir noch 99 weitere Jahre Star Citizen Alpha mit instabilen Servern? Da bin ich aber gespannt.

Die große Hoffnng bzw. eines der vielen Versprechen seitens CIG/CR besteht ja darin, dass man davon ausgeht, wenn ein "Pilot-System" (hier Stanton) erst mal mit allen relevanten Gameplayelementen fertig entwickelt ist und weitestgehend fehlerfrei läuft, dass dann das Generieren weiterer Systeme (mittels zumindest teilweise prozeduralem Prozess) als "Varianten" dieses Pilotsystems relativ schnell vonstatten gehen sollte. Da diese "Varianten" alle auf dem erprobten und weitestgehend bugfrei getesteten Pilotsystem aufbauen, sollen auch die ganzen "Kopien" ebenfalls bereits in Rohfassung relativ fehlerfrei daherkommen.

 

Andererseits glaube ich pers. nicht, dass auf diese WEise ausschließlich prozedural generierten Systeme sonderlich interessant und abwechslungsreich werden, ich befürchte hier dann MMO-typisch generischen Einheitsbrei mit nur wenig Abwechslung. M.E. wird hier nach der prozeduralen Generierung noch an jedem System einiges an manueller NAcharbeit nötig sein, um daraus wirklich interessante und abwechslungsreiche WElten zu schaffen, wo man eben nicht nach dem dritten oder vierten Anflug das Gefühl bekommt: Wenn man drei bis vier Welten gesehen hat, hat man alle WElten des "Verse" gesehen.

 

Vermutlich wird irgendwo ein Mittelweg zwischen effektiver "Massenproduktion" von generischem Content und einzeln per HAnd nachgearbeiteten,  abwechslungsreichen Individualwelten beschritten werden müssen. Das wird halt v.a. vom verfügbaren Budget (Geld sowie Zeit) abhängen und der Art und Weise, wie das CIG-Management um CR damit umgeht. Da sind gerade bei CR und der Art und WEise des Geschäftsmodells auch durchaus gewisse BEdenken angebracht, aber das ist im PRinzip ja auch nix Neues, das war (zumindest mir in meinem Falle) schon vor meiner ersten Spende 2014 bewusst und stellt für mich zugleich auch das Hauptrisiko bei diesem PRojekt aus BAckersicht dar.

Edited by Alter.Zocker

Share this post


Link to post
Share on other sites

Also wenn Stanton fertig ist, könnte so langsam man mit dem Angehen der Beta rechnen? Oder so ähnlich. Und daß das seine Zeit brauchen wird, ist auch klar. Das wäre natürlich eine Ansage die ich verstehe. 

Share this post


Link to post
Share on other sites

@Brusianich vermute das STANTON Mitte 2021 fertig ist, die Beta ist aber noch Lichtjahre entfernt. Wenn ich mich richtig erinnere ist ein Releases bei 10-15 Systemen geplant. Pyro ist ja schon in Arbeit und ich freu mich rießig drauf. Bevor Pyro für Citizen freigegeben werden kann muss aber Server Meshing funktionieren, so ist mein Stand.

Wir sollten uns erstmal auf SQ42 freuen.

Share this post


Link to post
Share on other sites

Hmm ist ja grundsätzlich ne schöne Sache das man überhaupt mal Ansatzweise erfährt warum die 30000er da sind ,nur finde ich diese Antworten bescheiden ,klar hat die Entwicklung Priorität, aber sollte der Sinn einer spielbaren Alpha nicht sein zu Testen unbd damit logischerweise auch länger als ne halbe Stunde am Stück zu spielen?

 

So kommt doch gar kein vernünftiges Testen von uns Backern zustande ,wenn ich nicht eine Mission oder nicht einen Trading Run durchführen kann.Den 30000er zu beseitigen muss oberste Priorität haben ,so einfach ist das.Da muss ich auch kein Programmierer sein um das zu verstehen, Testen kann ich nur in einer halbwegs stabilen Testumgebung ,was versteht CIG an dieser simplen deduktiven Logik nicht?

 

Erst gestern habe ich das wieder gemerkt, wollte mal nen Trading Run mit der Reclaimer machen, was wieder im 30000er Desaster endete, der vordere Aufzug der Reclaimer funktionierte gar nicht, der hintere durch den bin ich durchgeglitcht, dann habe ich es ins Schiff geschafft ,habe  dann wegen der nicht funktionierenden VTOLs bei der Reclaimer mit den Manövrierdüsen ne halbe Stunde Echtzeit! bis aus  der Atmospähre gebraucht ,und als ich dann losspringen wollte kam der 30000er.

 

Und dann durfte ich noch als Belohnung 1 Stunde Echtzeit die Reclaimer wieder neu claimen, ganz ehrlich sowas vermiest mir jegliche Lust am Testen ,also nach 1,5 Stunden verschwendeter Freizeit für mich habe ich SC beendet und das wars:devil:

 

 

Share this post


Link to post
Share on other sites

@Jaabbaagenau so wie gesagt im Video. Ich spiele Stunden ohne 30k und mache einen Run nach dem anderen ohne Probleme und bei anderen gibt's Schwirigkeiten. Machmal ist es auch gar kein 30k sondern nur ein Clientcrash, verursacht durch Hardware oder Treiber. Du bekommst dann im Menü in der Infotafen das Angebot "return to last Session" oder so ähnlich, das übersehen eben viele.

 

Übrigens kannst du, je nach Planet und Atmopshäre ab ca. 10k-12k Meter Höhe die Orbitalstation, OM's oder andere Punkte anspringen, da hast du 20min gespart und mit etwas Kleingeld kannst du die Claimzeit der großen Pötte erheblich reduzieren.

PS: mit einer Reclaimer einen Trading-Run ist aber auch ne Ansage, da hätte ich auch ohne Bugs kein Bock drauf.

Share this post


Link to post
Share on other sites

Hier ein Video von einem U-Tuber, der für 30k Abbrüche recht elegante Methoden entwickelt hat, um seine Fracht zu schützen:

 

 

Share this post


Link to post
Share on other sites
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...