Todesklinge
Software-Overclocker(in)
Spieler A: Wird von Server gefragt ob dieser in das Raumschiff einsteigen will.
Spieler A: Steigt in das Raumschiff ein und schickt als Antwort die Nachricht an den Server.
Server: Schickt die Nachricht von Spieler A an Spieler B, C, D, (E ist leider recht weit weg, bekommt aber trotzdem die Mitteilung von Spieler A) usw.
Das wäre grob gesagt nur ein kleiner Einblick in den Basis-Netcode.
Jeder Schritt, Schuss, jeder Milimeter der geflogen wird und alles wird an andere Spieler und jeweils zum Server hin und her kommuniziert.
Natürlich NUR innerhalb der Instanz in der sich die Spieler befinden (Instanz ist nichts anderes als ein Server von vielen).
Und die Instanz schickt wiederum Teilinformationen an den Hauptserver der die Instanzen verwaltet (Server-Farm).
Der Server versteht nur "Soll ich an andere Spieler Senden?" Ja oder Nein.
Wenn Ja, dann werden etwa Dinge wie Treffer entsprechend Syncronisiert, so das jeder andere Spieler den gleichen Effekt sieht.
Oder Nein, dann sieht jeder Spieler einen anderen Treffer (Lokal nur auf seinem PC und jeder andere Spieler für sich selber).
Vor allem auch Dinge wie der Druck, Sauerstoff, Schäden usw.
Eben extra Funktionen oder Zustände die nicht nur den Spieler selber (Lokal) betreffen, sondern auch alle anderen (Online).
Die Datenmengen sind dann zu groß und führen zum Lag und dadurch zu FPS Einbrüchen.
Deshalb war am Anfang auch alles sehr eingeschränkt von der Spieler anzahl her.
Darum haben unterschiedliche Spieler mit unterschiedlich starken PCs, auch unterschiedliche FPS, je nach dem wie viele Spieler sich in der Instanz befinden.
Ist eine Instanz voll, wird eine neue erstellt usw.
Der Basis-Netcode ist also darauf ausgelegt, möglichst alles was relevant ist, mit dem Server und den anderen Clients (Spielern) zu teilen.
Unabhängig von der Reichweite zueinander innerhalb des Spiels.
Die Optimieren läuft darauf hinaus diese ganzen Informationen in ihrer Reichweite zu beschränken (daher das Container System), welches nur innerhalb sich selber die nötigen Daten hin und her versendet und andere Spieler, die sich nicht mit in dem Container befinden, diese Daten entsprechend NICHT weiter zu leiten.
Daran werkeln sie nun seit vielen Monaten.
Warum der Server abstürzt liegt daran, dass wenn es zu Fehler innerhalb der versendeten Informationen (Spieler zu Server und Server zu Spieler/n) kommt (man kennt es auch als "Package Lost", also ein Paket an Informationen wurde nicht richtig übermittelt oder ist verloren gegangen) kommt und Daten entsprechend nicht korrekt übermittelt wurden, später dem Server Daten fehlen, die er benötigt um diese auszuführen.
Grobes Beispiel:
Spieler will in das Raumschiff einsteigen und die Daten gehen verloren, dann kann es sein das der Spieler sich zwar Lokal im Raumschiff befindet (er steigt also ein), aber der Server hat die Nachricht nicht ganz erhalten und "wundert" sich nun, warum der Spieler im Raumschiff sitzt, obwohl dies nicht sein kann.
Folglich fehlen dem Server weiterführende Variablen (Spiele-Kommandos), um alles weiter berechnen, ausführen und mit anderen Clients austauschen zu können.
Da der Fehler weiterhin besteht, fragt der Server ständig nach wo der Spieler ist (weil er kann ja nicht im Raumschiff sein, wegen der Fehlinformation), bekommt aber gleichzeitig die Informationen das er sich doch darin befinden mag und das führt zu mehrfachen Fehlern... kurz um, die Fehlinformationen werden zu groß (die Kette an Informationen) und der Server kann die Daten nicht weiter verarbeiten und stürzt ab.
Eben weil es zu Konflikten kommt.
Das ist auch nur ein kleiner Ausschnitt und ein sehr vereinfachtes Beispiel, dabei gibt es viele Informationen die in wenigen Milisekunden hin und her geschickt werden.
Spieler A: Steigt in das Raumschiff ein und schickt als Antwort die Nachricht an den Server.
Server: Schickt die Nachricht von Spieler A an Spieler B, C, D, (E ist leider recht weit weg, bekommt aber trotzdem die Mitteilung von Spieler A) usw.
Das wäre grob gesagt nur ein kleiner Einblick in den Basis-Netcode.
Jeder Schritt, Schuss, jeder Milimeter der geflogen wird und alles wird an andere Spieler und jeweils zum Server hin und her kommuniziert.
Natürlich NUR innerhalb der Instanz in der sich die Spieler befinden (Instanz ist nichts anderes als ein Server von vielen).
Und die Instanz schickt wiederum Teilinformationen an den Hauptserver der die Instanzen verwaltet (Server-Farm).
Der Server versteht nur "Soll ich an andere Spieler Senden?" Ja oder Nein.
Wenn Ja, dann werden etwa Dinge wie Treffer entsprechend Syncronisiert, so das jeder andere Spieler den gleichen Effekt sieht.
Oder Nein, dann sieht jeder Spieler einen anderen Treffer (Lokal nur auf seinem PC und jeder andere Spieler für sich selber).
Vor allem auch Dinge wie der Druck, Sauerstoff, Schäden usw.
Eben extra Funktionen oder Zustände die nicht nur den Spieler selber (Lokal) betreffen, sondern auch alle anderen (Online).
Die Datenmengen sind dann zu groß und führen zum Lag und dadurch zu FPS Einbrüchen.
Deshalb war am Anfang auch alles sehr eingeschränkt von der Spieler anzahl her.
Darum haben unterschiedliche Spieler mit unterschiedlich starken PCs, auch unterschiedliche FPS, je nach dem wie viele Spieler sich in der Instanz befinden.
Ist eine Instanz voll, wird eine neue erstellt usw.
Der Basis-Netcode ist also darauf ausgelegt, möglichst alles was relevant ist, mit dem Server und den anderen Clients (Spielern) zu teilen.
Unabhängig von der Reichweite zueinander innerhalb des Spiels.
Die Optimieren läuft darauf hinaus diese ganzen Informationen in ihrer Reichweite zu beschränken (daher das Container System), welches nur innerhalb sich selber die nötigen Daten hin und her versendet und andere Spieler, die sich nicht mit in dem Container befinden, diese Daten entsprechend NICHT weiter zu leiten.
Daran werkeln sie nun seit vielen Monaten.
Warum der Server abstürzt liegt daran, dass wenn es zu Fehler innerhalb der versendeten Informationen (Spieler zu Server und Server zu Spieler/n) kommt (man kennt es auch als "Package Lost", also ein Paket an Informationen wurde nicht richtig übermittelt oder ist verloren gegangen) kommt und Daten entsprechend nicht korrekt übermittelt wurden, später dem Server Daten fehlen, die er benötigt um diese auszuführen.
Grobes Beispiel:
Spieler will in das Raumschiff einsteigen und die Daten gehen verloren, dann kann es sein das der Spieler sich zwar Lokal im Raumschiff befindet (er steigt also ein), aber der Server hat die Nachricht nicht ganz erhalten und "wundert" sich nun, warum der Spieler im Raumschiff sitzt, obwohl dies nicht sein kann.
Folglich fehlen dem Server weiterführende Variablen (Spiele-Kommandos), um alles weiter berechnen, ausführen und mit anderen Clients austauschen zu können.
Da der Fehler weiterhin besteht, fragt der Server ständig nach wo der Spieler ist (weil er kann ja nicht im Raumschiff sein, wegen der Fehlinformation), bekommt aber gleichzeitig die Informationen das er sich doch darin befinden mag und das führt zu mehrfachen Fehlern... kurz um, die Fehlinformationen werden zu groß (die Kette an Informationen) und der Server kann die Daten nicht weiter verarbeiten und stürzt ab.
Eben weil es zu Konflikten kommt.
Das ist auch nur ein kleiner Ausschnitt und ein sehr vereinfachtes Beispiel, dabei gibt es viele Informationen die in wenigen Milisekunden hin und her geschickt werden.
Zuletzt bearbeitet:




. Ich somit 2x gestrandet im Nirgendwo.