"Desync" in Online-Spielen nicht lösbar?



  • Noch so eine Fragen, die mir nicht aus dem Kopf geht. Wieso ist das Problem so unmöglich zu lösen? Ich spiele gerne Shooter und auch Battle Royale Titel.
    Schlechte Netzwerk-Performance ist praktisch IMMER ein Problem und mindert die Qualität JEDES PvP-Shooters. "Desync" nennt man das, Client A sieht was anderes als der Server bzw. Client B. Auf seinem eigenen Screen ist man längst in Deckung, bekommt aber eine halbe Sekunde später trotzdem noch Hits vom Server ausgeteilt. Denn der war mal wieder zu langsam, bei dem war man noch woanders.

    Ich denke mal, dass das einfach rein durch die Entfernung der betroffenen Parteien nicht lösbar ist. Theoretisch ist der "ping" eigentlich relativ gering, meistens hat man nur etwa einen um die 40-60 ms zum Game-Server. Vermutlich wird dieser aber durch die nötige Verarbeitung durch den Server weiter amplifiziert.
    Ist das ein Problem, das rein technisch jemals lösbar wird? Was für eine Rolle spielt hier die tatsächliche Programmierung der jeweiligen Anwendungen (Client, Server)? Tatsächlich fällt dieses Problem bei unterschiedlichen Spielen unterschiedlich stark aus. Allerdings kann ich mir einfach nicht vorstellen, dass in 2018 immer noch Firmen, die finanziell stark genug sind um Spiele zu entwickeln, unbekannt ist, wie man sowas sauber entwickelt.



  • Hallo,

    lösbar ist das schon, erfordert jedoch einen großen Aufwand gegenüber der herkömmlichen Technik.
    Path of Exile z.B. hat dies vor ein paar Jahren zusätzlich implementiert, s. Networking Mode ("Deterministic lockstep") - Nachteil ist jedoch, daß es dann auf dem Client öfter mal hakelt (wenn die Serverantworten nicht schnell genug verarbeitet werden), während ein Desync zwar seltener auftritt, dann aber meist für den Spieler-Charakter gravierendere Folgen hat.


  • Mod

    Wenn du eine geniale Lösungsidee hast, nur her damit. Aber wie willst du es lösen? Man hat hier zwei gegenläufige Anforderungen:

    1. Der Client soll flüssig laufen
    2. Der Client soll mit dem Server synchron sein

    aber

    1. Es gibt unkalkulierbare Laufzeiten und Unterbrechungen beim Synchronisieren

    Was hier halt gemacht wird, ist, dass man bei Unterbrechungen halt hoffnungsvoll den Client weiter laufen lässt zum Zwecke der Flüssigkeit. Wenn die Unterbrechung kurz genug ist, merkt es dann niemand. Das wird auch gewiss oft genug so funktionieren. Bloß wenn es mal eine wirklich große Störung gibt, kommt es zu dem was du beklagst.

    Oder der genannte Networking Mode geht das andere Extrem und erhebt die Synchronisierung über alles. Nun führen auch kleine Störungen zu Verlust der Spielflüssigkeit und große zu Totalstillstand, aber dafür hat man nie die von dir beklagten Effekte. Dafür wird man halt die Ruckler beklagen.

    Wenn du eine geniale Idee zur Lösung des Dilemmas hast, kannst du viel Geld damit verdienen.


Anmelden zum Antworten