Extreme Lags und sehr hohe Latenzen Multiplayer

Moin :smiley:

wie üblich gibt es bei Mehrspielern das Problem in hohen Grifts, das bei bestimmten Skills einfach nichts mehr geht. Lustig ist, wenn man Solo Hexendoctor 138er ohne Latenzen oder FPS Drops schafft aber in der Gruppe schon ein 115er Spiel einfach nur nervt.

Bisher habe ich immer so lustige Ausreden gelesen wie „zu viele grafische Effekte“, „Flächenschaden ist schuld“, „die Monster werden nicht schnell genug gekillt“ und weiß der Geier für Ausreden.

Also irgendwie kann ich daran nicht wirklich glauben da diese Probleme ja im Einzelspiel so nicht nachvollziehbar sind, da diese bei mir schlichtweg einfach nicht so auftreten.

Dafür konnte ich in der letzten Zeit allerdings was anderes beobachten und zwar wenn man einem Mehrspieler Grift beitritt und dort schon die Gruppe unterwegs ist und es dann im Grift zu den oben genannten Lags und extrem hohen Latenzen kommt, so ist der Spieler in der Stadt, der auf das Ende des Grifts durch seine Mitspieler wartet, ebenfalls von den FPS Einbrüchen und den extrem schlechten Latenzen betroffen!

Dabei bekommt er nichts von den grafischen Effekten zu sehen - die für diesen Umstand verantwortlich sein sollten bzw. Flächenschaden hat ebenfalls nichts mit unbeteiligte Spieler ausserhalb des Griftes zu tun. Demnach dürfte es bei dem unbeteiligten Spielern nicht zu den FPS Drops oder miesen Latenzen führen!

Weiter ist uns mehrmals nun aufgefallen, das ein etwas höheres Game (130er Grift) so böse „abgeschossen“ wurde, das jegliche Overlay Grafikten (links die Portrairahmen der 4 Spieler, die Skillleiste unten) am Flackern waren und dann für eine Zeit sogar komplett verschwunden waren! Weiter konnte man sich nicht mehr wieder beleben wie auch das Spiel verlassen war unmöglich!
Als dann alle 4 Spieler der Gruppe tot waren, waren die Overlay Grafiken wieder da, man konnte sich wieder beleben und das Spiel fortführen bis zum nächsten „Abschuss“ des Systems und die Overlay Grafiken waren wieder weg.
Leider haben wir davon kein Video gemacht :frowning:

Kann es sein, das jegliche Berechnungen (Schaden, Monster, Dungeon Design, Loot) extern auf Blizzards Servern berechnet werden und diese dann in einer Art Stream zu den Spielern raus geschickt werden? Wenn die Berechnungen zu hoch ausfallen, dann ist das Spiel unspielbar?
Interessanterweise gibt es nämlich Zeiten wo es fast keine Probleme gibt und dann gibt es Zeiten, wo es unspielbar ist.
An der Höhe des Griftes kann es eigentlich auch nicht liegen da es ja genügend Spieler gibt, die auch mit Flächenschaden etc. 150er in der Gruppe laufen.

Also wo ist das Problem zu suchen und vor allem wie kann das das Problem endlich behoben werden?

1 Like

Aber nich wenn da 150Mobs rumlaufen und 4Elite.

Grundsätzlich ist zwischen Grafik-Lags aka „Frame-Drops“ und Server-Lags zu unterscheiden. Erstere treten nur auf dem Client, also heimischen PC auf und für gewöhnlich findet sich die Ursache dafür auch dort. Sprich, zu schwache Hardware oder in selteneren Fällen zu geringe Bandbreite des Netzwerks.

Das Problem in D3 sind aber eher die Serverlags. Wobei das eigentlich auch nicht so recht stimmt, denn der Server ist nicht zwingend das Problem, sondern eher die Netzwerkinfrastruktur. Die Berechnung der Daten stellt - vermutlich - kein Problem dar (Server). Der Transport dieser Daten schon eher. Sprich, wenn zu viele Daten transportiert werden müssen und dafür nicht genügend Bandbreite zur Verfügung steht, dann kommt es zum Stau (Lag).

Die meisten Skills und Spells in D3 verursachen Area Damage unabhängig davon, obman AD% auf dem Gear/ im Paragon hat oder nicht. Ergo bringt die „Deaktivierung“ des Area Damage rel. wenig. Aber! Es bringt schon etwas.

Jede Schadenswirkung muss mit u.U. allen Entitäten synchronisiert werden - und das kann so einiges an Berechnungen nach sich ziehen, insb. im Gruppenspiel…

Ein paar Beispiele:

Single Player, single Target DD, Gegner Menge: 1
Der Spieler führt einen Angriff aus und trifft ein Ziel. Der Server muss hierbei rel. wenig berechnen. Im Grunde nur die Entgegennahme der Angriffsinformation, die Berechnung des Schadens und die Rücksynchronisation der Veränderungen bei Spieler und getroffenem Monster.

Single Player, default DD*, Genger: 5
kleiner AoE und AD-Proc
Der Spieler führt wieder einen Angriff aus, trifft aber alle 5 Gegner. Der Server nimmt die Informationen entgegen, berechnet den Verbrauch beim Spieler, berechnet 5x normalen Schaden, 5x ob AD proct und bis zu 5x den AD-Schaden an bis zu 4 Gegnern jeweils. Dazu dann noch die Synchronisation aller Entitäten. Gehen wir vereinfacht (bei 20% AD-Chance) von 22 (max. 38) Berechnungen incl. dem Versenden der Ergebnisse an den Client (Spieler).

4er Gruppe, default DD, Gegner 50 „gepixelt“
Jeder Spieler ein Angriff incl. AD. Der Server nimmt also 4 Nachrichten entgegen und verarbeitet diese. Auf eine Synchronisation der richtigen Reihenfolge der 4 Aktionen verzichte ich an dieser Stelle. Wenn der Debuff von Spieler A erst nach dem Angriff von Spieler B dem Server bekannt wird, dann zählt dieser eben nicht mehr mit in die Berechnung.
Jeder Angriff trifft aber z.B. 10 Monster im Pixel. Zwei mal proct AD auf 49 Gegner und nach den Berechnungen muss alles synchronisiert werden. Berechnet wird aber tatsächlich einzeln. Ergo pro Spieler 274 Berechnungen in diesem vereinfachten Beispiel. Insg. also fast 1000 Berechnungen für eine Runde in einem 50er Pull in einer 4er Gruppe.
Bei 2 APS wären es schon 2000 Berechnungen pro Sekunde.

Im einfachsten Fall (1. Bsp.) waren es im gleichen Zeitraum 8 Berechnungen … :slight_smile:
Entfernt man bei den Supportern und ggf. RGK den AD, reduziert sich das ganze z.B. schon mal auf nur etwas über 300 Berechnungen. AD auf 0% reduzieren bringt also sehr wohl etwas, ist aber keine Garantie für lag-freies Spielen.

Was das Thema „hoher Schaden“ angeht. Auch hier kann man mit den Berechnungen ansetzen. Hoher Schaden heißt ja zwangsläufig, dass pauschal weniger Schadens Berechnungen notwendig sind, bevor eine Entität „vom Spielfeld“ entfernt wird und keinerlei Berechnungegrundlage bzw. -notwendigkeit mehr besteht.

Bzgl. der verschwindenden UI-Elemente: Das ist tatsächlich ein Problem am Client. Hat also mit dem Server nichts zu tun. Irgendwann kommt das Spiel bzw. dessen Engine wohl nicht mehr mit dem Rendern hinterher, was dazu führt, dass diverse Icons einfach verschwinden.

Abhilfe schafft in diesem Fall das (spontane) Heranzoomen Z oder präventive Deaktivieren der HP-Zahlen der Monster.

3 Likes

Moin Tallaron,

na das ist ja mal eine verständliche Antwort! Danke schön. Für mich selber ist das immer sehr schwer zu unterscheiden, ob das Problem nun an den Servern von Blizzard hängt oder ob es an der Bandbreite hängt oder ob andere Faktoren, wie z.B. die eigene Hardware die Ursache ist.

Wenn die Frames fallen, kann man in den meisten Fällen die Hardware verantwortlich machen nur wenn die Hardware für Diablo 3 eigentlich schon überdimensioniert ist und auf sehr starker Hardware identische FPS Einbrüche zeitgleich wie Hardware schwächere Geräte aufweist und das in Verbindung mit extrem hohen Latenzen, würde ich von meiner Seite aus schon mal die Hardware komplett ausschließen.
Nun wie angesprochen treten die FPS Drops bei mir ausschließlich dann auf, wenn auch die Latenzen extrem hoch sind (die Anzeige des Indikators ist rot) was dann für mich eigentlich bedeutet, das entweder die eigene Internetanbindung problematisch ist - also zu langsam oder irgendwas zwischen dem Weg von Blizzard zu mir… wer weiß das schon so genau. Wenn man dann zu Hause 250Mbit Leitung liegen hat wovon laut Messung real fast immer 240Mbit bis 248Mbit anliegen, diese auch von meiner Seite aus zur Verfügung stehen, würde ich meine Netzwerkstruktur als Ursache auch ausschließen. Nun kann man noch den Faktor „Verbindung der Hardware zum eigenen Netzwerk“ in den Raum werfen. Also ob WLAN oder Kabel genutzt wird. Wenn das WLAN zu schwach ist, dann gibt es auch Probleme. Aber auch hier muss ich das leider verneinen, da ich bei mir zu Hause 3 Etagen auf 25 Gigabit (sowohl Glasfaser wie auch Kabel) modernisiert habe - und nein - es gibt nur in 2 Räumen IP-TV oder Verbindung zu Streaming Diensten und auch nur 2 Leute die Computer Zocken. Also wird die Bandbreite so gut wie nie ausgelastet - es sei denn man lädt ein neues Game herunter.
Störungen durch meinen Provider selber hatte ich in den letzten 3 Jahren einmalig gehabt.

Also würde theoretisch (in meinem Fall) nur noch der Client selber zu Hause beim Nutzer Probleme machen - wo allerdings auch Blizzard schuld wäre oder die Verbindung von Blizzard zu den Nutzern…

Naja ich danke dir auf jeden Fall für deine Erklärung :grinning:

Ich habe gestern mal wieder versucht, mein 142er Solo mit dem Hexendoktor zu knacken. Es sah auf dem ersten Moment auch recht gut aus. 4 gelbe Elite, 100 bis 120 Mobs als Trash drum herum - FPS Drops spürbar und laut Nvidia Overlay auch sichtbar aber soweit noch spielbar. Ein Stück weiter in der identischen Map 3 blaue Elite zusammen gezogen, 100 Mobs als Trash dazwischen, Elite fängt mit Illusionen an und die Latenzen fallen jenseits gut und böse, FPS Drops ohne Ende, man hat das Gefühl als hängt man an einem Gummiband und wird alle paar Sekunden zurück gezogen, die GUI verabschiedet sich komplett und irgendwann liegt man tot in der Ecke und von jetzt auf gleich sind die Latenzen im grünen Bereich, FPS wieder bei 60 (bei mir so eingestellt), als wäre nie was gewesen. Mal abgesehen von der GUI, die nicht wieder kommen mochte.

(warum auch immer dürfen meine Beiträge keine Links beinhalten obwohl die Grafik in der Vorschau angezeigt wird und ohne Verlinkungen es keine Grafik gibt - so ein Bullsh)
https://abload.de/img/d3problemeblizzserverffjd9.png
https://abload.de/img/serverproblemekkj1h.png

Also was war jetzt an dem von mir geschildertem Fall für die Berechnung und den Transport der Daten so aufwendig, das es zu so einer Störung führte? Ich glaube nicht, das bei solchen Berechnungen Daten von mehreren 100 Mbyte an alle Spieler - oder hier nur an mich selber - geschickt werden muss und das jede Sekunde. Bei einem Einzelspieler Game, ausreichende Datenleitung zur Verfügung und dazu ausreichende Hardware (ich glaube nicht wirklich daran das die Hardware schwächer wird nur weil man nicht genügend Schaden hat, um die Monster schnellstens zu killen :laughing: - vor allem wo identisches Phänomen auch auftritt, wenn in einem laufendem Gruppenspiel von 3 Spielern in einem Grift mit den von dir beschriebenen Phänomen ein vierter Spieler in das Spiel kommt und in der Stadt steht und von identischen Problemen - abgesehen von GUI - ebenfalls betroffen ist. Also miese Latenzen, FPS Drops und zurück setzen des Chars. und da mussten keine Massen an Mobs berechnet werden oder irgendwelche Daten mit dem 4ten Spieler geteilt werden :wink:)
Also was führt dazu, das Spieler 4 - außerhalb vom Grift, auch davon betroffen ist?

Dann würde ja nur noch Blizzards Server / Anbindung an die Datenautobahn die Ursache sein. So… und nun Grenzen wir das weiter ein - viele User online = öfters die Problematik - weniger User online = das Problem ist nicht ganz so drastisch oder spürbar. Je mehr Leute in meiner Freundesliste oder lezte Mitspieler online sind, umso schlimmer ist es. Wenn fast niemand online ist, kann ich fast immer ohne Latenzen oder FPS Drops spielen und es kommt auch sonst zu weniger Auffälligkeiten.

Du schriebst, das Deaktivieren von AD würde „etwas bringen“. Ich kann es ja nur in den Paragon Punkten raus nehmen aber wie du schon schriebst, hat man es ja auch auf Gegenstände oder in bestimmte Skills. Das Deaktivieren in den Paragon Punkten bringt ja nur eine Reduzierung des Schadens mit sich. Ich meine ob man nun 10% Flächenschaden berechnen muss oder 70% oder 120% macht am Ende keinen Unterschied (mal davon abgesehen das die Zahlen länger werden aber wir leben nicht zu Zeiten von ENIAC wo man mit großen Zahlen Schluckauf bekommt)

Ich werde deinen Rat bezüglich dem Abschalten der Damage Zahlen ausprobieren. Bin über jeden Rat dankbar denn irgendwann möchte ich auch 150 schaffen :rofl: nur mit solchen Störungen und Problemen siehts echt mies aus.

Anscheinend auf einmal doch :sweat_smile:

Naja wenn der Server überlastet ist wirkt sich das in der Regel auf alle Spieler auf diesem aus.

Was ein Wunder :sweat_smile:

Natürlich laufen die Server besser umso weniger sie zu tun haben.

Jein. Oft haben es Builds in die Meta geschafft , weil sie großen Schaden auf einmal verursacht haben. Andere Builds die kontinuierlichen Schaden machen und eigentlich konkurrenzfähig gewesen wären wurden einfach nicht gespielt.

Wenn man Solo einen Build spielt, welcher darauf angewiesen ist, werden die clears meistens dann gemacht wenn wenig los ist. Außerdem hilft es das Spiel immer wieder zu pausieren und zu warten, bis der Server sich wieder erholt hat.

In HC natürlich noch ärgerlicher.

tja… und darum spiele ich kein HC mehr :face_vomiting:
und dann gibts den netten Hinweis von Blizzard, das verreckte Charakter nicht wieder belebt werden können. Die verbocken es und der Spieler ist der Dumme :man_facepalming:

Was war daran verkehrt, jegliche Berechnungen auf der lokalen Hardware durchführen zu lassen bzw. wenn man zu Hause mit Familie und Freunden im EIGENEN NETZWERK spielt, das auch auf dieses Netz zu begrenzen? Es gab bzw. gibt bei Diablo 2 auch die Möglichkeit von lokalen Chars wie auch Battle.Net Chars. Genau das selbe hätte man auch bei Diablo 3 beibehalten sollen. Man hätte auch nicht den Offline Mehrspielermodus vom Classic D2 entfernen dürfen. Offline Modus wurde ja beibehalten. Man kann ohne Blizzards Servern spielen.
Für alle, die eh nur Solo unterwegs sind oder generell nur mit Familie und reale Freunde zu Hause (in einem Haushalt) spielen, würde dies deutlich mehr Spielspaß und auch Stabilität im Game bringen und im Endeffekt sogar die Server inkl. dessen Netzwerkstruktur entlasten.

Das geile an Diablo 3 ist ja, das sogar erkannt wird, wenn bei mir zu Hause in meinem Netzwerk ein Spiel verfügbar ist!!!

Sorry aber diese Meldung kann man sich auch schenken, wenn man eh nicht seperierte Mehrspieler im eigenen Netzwerk spielen kann.

Aber nun ja. Ich verstehe ja Blizzard auch ein wenig.
Sie sind der festen Überzeugung, das private Netzwerke im Multiplayer Spiel ohne Verbindung an das Internet gegen Angriffe von außen anfälliger sind als ein Onlinezwang und davor muss man die Spieler schützen denn selber können die es ja offensichtlich nicht. Jedenfalls war dies eine Antwort auf dem fehlenden offline Multiplayer bei Diablo 2 :joy:
Sorry aber da glaube ich noch eher das ein Zitronenfalter seinen Namen daher bekommen hat, das er Zitronen falten kann.

das hab ich eben mal ausprobiert und es war spürbar flüssiger. 142er auch gleich abgehakt :blush:

danke für den Tipp. Mal schauen wie die letzten 8 Stufen dann werden…

Nope … :wink:

Kleiner Technik-Exkurs:
In den Rechenzentren von Blizzard steht nicht nur ein Server, sondern sog. Server-Farmen. Grob um schrieben, sind das mehrere vernetzte Rechner, die quasi wie eine Maschiene funktionieren und sich Ressource teilen, etc.

Das ganze nennt sich dann „Clustering“. Also letztlich der Betrieb mehrerer Maschienen in einem Kontext, um eine „Maschiene“ mit höherer Leistung realisieren zu können. Ein Rechner kann z.B. 100 Mrd. Operationen pro Sekunde ausführen. Koppelt man 10 dieser Rechner zu einem Cluster zusammen, kann dieser Cluster dann eben ca. 1000 Mrd. Operationen pro Sekunde bewerkstelligen.

Aus einem dieser Cluster (vtl. auch mehrere) laufen die D3-Server. Also mehrere virtuelle(!) D3-Server auf einem Cluster. Sprich, die eigentlichen D3-Server haben keine eigene Hardware, sondern teilen sich diese mit vielen anderen D3-Servern.

Auf jedem dieser D3-Server werden Game-Instanzen gestartet und verwaltet. Diese Instanzen sind Daten-Objekte und enthalten alle Informationen zum D3-Spiel in welches man gejoint ist, berechnen den Schaden, die Bewegungen der Mobs, diverses RNG-Zeug und nat. die Synchronisation der bis zu 4 Spiel-Clients, die dieser Instanz „zugeordnet“ wurden.

Im Beispiel von oben - dem Cluster - haben wir also 10 separate Rechner, die aber als einer agieren. Jeder hat einen Prozessor, z.b. 64GB RAM und eine Art Festspeicher. Ob es sich bei letzterem um altmodische HDDs (praktisch ausgeschlossen), teure(!) SSDs oder einen Anschluss an einen dedizierten Speicherknoten („Plattenverbund“) handelt seit dahngestellt.

Der Cluster besitzt als 10 Prozessoren, 640 GB RAM und Plattenplatz. Nun vergleichen wir zwei Spiel-Instanzen mit einander. Zum einen ein Spiel mit nur einem Spieler, der viel in der Stadt herumsteht, evtl. crafted und ansonsten auf einem niedrigen Schwierigkeitsgrad unterwegs ist auf dem er durch „Oneshots“ entsprechend wenig Berechnungen verursacht. In der anderen Instanz ist eine 4er Gruppe unterwegs, mit dick AD-Power und gibt in irgendwelchen hohen GRifts Vollgas.

Dass diese beiden Instanzen unterschiedlich viel Last erzeugen, dürfte nachvollziehbar sein. Nun stellt sich die Frage, ob Ressourcen des Clusters dynamisch an die virtuellen Server verteilt werden, oder ob diese fixe Mengen zugesprochen bekommen. Für gewöhnlich ist dies der Fall. Also könnten auf dem exemplarischen Cluster z.B. bis zu 100 D3-Server laufen. Jeder Server bekommt fixe Anteile eines der Prozessoren zugeteilt. Ob Kerne oder einfach nur Rechenzeit sei dahin gestellt. Der RAM wird ebenfalls geteils, sowie der Plattenplatz. Letzterer wird für die laufenden Prozesse kaum bis gar nicht gebraucht, sondern eher für die Ablage von Daten beim Beenden und Starten von Server-Instanzen sowie Spiel-Instanzen auf den Servern.

Ein Server hat dann von mir aus einen von zehn Kernen eines der Prozessoren des Clusters zugesprochen bekommen nebst 6,4 GB RAM. Bitte nicht an den Werten aufhängen, diese sind rein fiktiv.

Auf diesem Server laufen nun jene Spiel-Instanzen. Auch hier ist die Frage, wie Ressourcen zur Verfügung gestellt werden. Entweder gibt es auch hier feste zugesagte Mengen oder aber es findet eine Skalierung statt.
Nun gehen wir davon aus, dass auf einem Server 1000 D3-Spiele laufen, die mit dem gleichen (kalkuliertem) Ressourcen-Verbrauch starten und somit den Server komplett auslasten.

Was passiert nun, wenn eine Instanz mit den zugesprochenen Ressourcen nicht mehr auskommt? Nun vielleicht bekommt diese ein wenig mehr zugesprochen. Das wiederum müsste den anderen Instanzen aber entzogen werden, was letztlich zu unkalkulierbaren Problemen führen kann. Gut, ein wenig Spielraum in Sachen Skalierung der Ressourcen wird es geben. Aber es wird unter Garantie auch Grenzen geben. Grenzen, die per Software festgelegt wurden und werden.

Erreicht nun eine Instanz solche Grenzen, eben z.B. während eines extrem großen Pulls, dann reichen die Ressourcen nicht mehr aus, um die Berechnungen „sofort“ auszuführen und es kommt zu Verzögerungen. Dies betrifft die gesamte Spiel-Instanz, also auch den Spieler in der Stadt. Aber nicht die Spieler in den anderen Instanzen.

Spieler A (alleine) in Instanz 1 bekommt von irgendwelchen Überlastungen nichts mit. Spieler B,C und D im High-GRift in Instanz 2 und mittel im 150-Mobs-Pull, sehen den roten Balken und nichts geht mehr. Spieler E, ebenfalls in Instanz 2, bekommt die Probleme ebenfalls zu spüren, obwohl er sich „nur“ in der Stadt befindet.

Das ist das Geheimnis dahinter. Der Rest ist dann eine Frage der Verwaltung des Gesamt-Systems. Einzige Konstante dabei ist der Cluster mit der ihm zugrunde liegenden Hardware. Der Rest ist virtuell und „flüchtig“. Sprich, es werden Spiel-Instanzen gestartet und nachdem die Spieler diese verlassen haben, auch wieder beendet und „weggeworfen“. Die verwendeten Ressourcen werden dadurch schnell und unkompliziert wieder freigegeben. Gleichen gilt für die Server. Auch diese werden wie ein Programm gestartet, eine Weile genutzt und danach „weggeworfen“. Dies könnte z.B. in einer Art und Weise stattfinden, wo auf einem Server z.B. nur max. 1000 Spiele parallel existieren dürfen und nachdem das 10000ste Spiel gestartet wurde, werden keine weiteren gestartet. Irgendwann sind dann alle Spiele beendet und der Server wird „herunter gefahren“ und direkt danach eine neue Server-Instanz gestartet.

Die haben Dir (Euch) einen extra Modus spendiert. Wer das Häkchen aktiviert und die Risiken ignoriert, ist selbst schuld…

Ganz einfach: Cheaten war erheblich einfacher. Modding war möglich. Insb. letzteres ist nicht immer gern gesehen, da mit dieser „Macht“ auch viel Schindluder getrieben wird. Was letztlich nicht im Sinne des Erfinders war.

Ist das wirklich so? Oder handelt es sich dabei um ein Feature, bei dem lediglich beide Clients durch IP-Tracking etc. eine gewisse Nähe eingeräumt wird?

1 Like

Dann nenne es halt Instanz. Bezog mich auf den 4. Spieler in der Stadt: