Okay, also vom technischen Hintergrund sieht die Sache so aus:
Wir haben Objekte, die, wenn diese in der Bubble vom Spieler sind, vom Server nachgeladen werden müssen (infos z.B wo das Objekt ist, und welchen Status es hat, ob und welche proxies da hängen usw...) Wenn die Daten nicht alle eingetroffen sind
=> Client Pause, bis alles da ist für euch als Lag bekannt, da sichergestellt werden muss, dass alle die gleichen Daten haben, sonst async (ja passiert auch)
Dann haben wir noch bei allen Objekten mit denen man interagieren kann einen Skript, der ebenfalls dauerhaft ausgeführt wird, solange sind das entsprechende Objekt in der Bubble des Spielers befindet.
Da wir von Bohemia mit den besten Diagnosetools augestattet wurden ( Mittelfinger und breites Grinsen von BI ) stechen wir entsprechend im dunkeln, ob und wo das problem liegt.
Wenn ich wüsste wie man den Ping zum spieler Skriptseitig misst, würde ich halt jeden mit Ping über 120 oder so kicken (pvp wäre natürlich mit pings weniger als 80 besser), wie in anderen Games auch üblich. Bei CS gehörst du mit einem Ping über 20 schon zum Präkariat.
Ich weiß nicht einmal ob sowas Auswirkung hat, es ist nur stark davon auszugehen. Die Frage liegt im Backend von ihrem Netzwerkcode in der Enfusion Engine.
Ergo nur mit Diagnosesoftware zu machen - von uns kann das nur Halfmoon
Frage: Sorgen einzelne, schlechte Client Verbindungen mit Ping>120 für ärger bei allen?
Die Frage ist heftig, da die Diagnose schwer fällt und viel Kummer kosten wird.
Ocullision Culling
Ich gebe zu, es ist ein mießes Wort, aber auch für euch von zentraler Bedeutung. Dieses Verfahren dient in einer 3d Engine dazu Polygone, die nicht von der Kamera gesehen werden können, im Vorfeld nicht zu rendern. DayZ hatte das mal nicht und ihr hattet mit euren Mega Maschinen trozdem nur 20fps in Cherno, weil auch die Häuser hinter den Häusern berechnet wurden, auch wenn ihr nicht mal einen Pixel davon sehen konntet.
Dann haben die Devs gesagt: "so geht das nicht weiter!111!!111einself " somit gibt es in jedem Haus neben Kollisions und Hitboxen auch eine Art Ocullision Hitbox, die sagt, ob die Wand durchsehbar ist oder nicht.
Dann muss man das im Vorfeld berechnen lassen, geht bei Cherausrus so etwa 40 Minuten dann erstellt er eine art Baumdiagramm was man von wo sehen kann. Das wird dann in Realtime in die Engine gepresst und voila der Client zeigt nur das an, was der Client von der Position auch sieht!
Und jetzt kommts: Diese Berechnung wird nur einmalig gemacht, wenn die Map erstellt wird!
Folgedessen werden Häuser in Cherno, die bereits im Editor gesetzt sind "gecullt", ergo weggemacht, wenn man diese nicht sehen kann,
D.h alle nachträglich hinzugefügten Objekte (gemoddet oder reguläre Items und Spieler) fallen nicht under das Ocullision Culling von DayZ.
Weil ihre Vorberechnung nach Polygon (alles was gecullt werden soll muss da sein) erfolgt und nicht nach Volumen (alles was in dem Volumen steht wird gecullt).
Da wir auch nicht einen Script Heap auslesen können (wieviele Skripte aktuell laufen und wieviel Zeit diese in Anspruch nehmen für einen Durchgang)
gibt es auch keine Diagnoseitems die wir euch verteilen können.
Kombiniert mit etwas was die GPU und Memoryauslastung anzeigen könnte wäre es ein Traum.
Denn mit den Daten wäre jegliche Ursache sofort sichbar...