Latenz Effekte auf Bad Company Servern

Alles zum Spiel Bad Company 2 sowie unseren damit verbundenen Servern
---
All about the game Bad Company 2 as well our related game servers
User avatar
[RC]Hunter
Site Admin
Sergeant
Sergeant
Posts: 2376
Joined: Fri Apr 04, 2008
Location: Hue City
Favorite Server: All of them
Has thanked: 3 times
Been thanked: 19 times
Germany

Networker

Contributor

Membership

=]RC[= Hunter’s avatar
Loading…

23 May 2016, 19:07

Eine solch niedrige Latenz denke ich mal wird niemand erreichen aber hinzu kommt noch folgendes, neben der Server Tickrate gibt es auch immer eine Client Tickrate. Sprich auch wenn der Server 30 oder 60 Hz läuft, muss es nicht für den Client zutreffen.

Es wird auch immer viel über den sogenannten Netcode diskutiert, aber es ist schon amüsant all die verschiedenen Posts und Meinungen zu lesen, leider nicht sehr oft fundiert mit Fachwissen.

Als Netcode bezeichnet man ganz einfach das Kommunikationsprotokoll zwischen Server und Client. Um Spiele wie Ego Shooter zu programmieren, müssen die Entwickler unterscheiden welche Daten wie oft erneuert werden. Es gibt Indizien das Positionen der Spieler und Schüsse anders behandelt werden, wie zum Beispiel die Anzeige und grafische Verfolgung eines Tracer Darts. Würden alle Dinge und Objekte gleichermassen behandelt, würde dies eine weitaus höhere Hardare Anforderung und erhöhten Datendurchsatz bei Clients und Servern erfordern. Wie genau der Netcode in einem Spiel aussieht ist natürlich nur den Entwicklern bekannt.

In einigen Spielen kann man die Tickrate des Clients konfigurieren, in anderen nicht. In den ersten Versionen von Bad Company 2 konnte man seinen Client für seinen Favoriten Server optimieren. Hierzu konnte man in der Gamesettings.ini von BC2 entsprechende Parameter setzen. Dadurch erreichte man eine bessere, wenn nicht gar fast perfekte Hitbox. In späteren Patches wurde dies von DICE abgeschafft und mit einem unbekannten festen Wert versehen. Es gibt auch keine offizielle Dokumentation über den BC2 Server und dessen "wirkliche" Tickrate.

Ich denke bei Spielen wie Bad Company 2 oder spätere Battlefields, sind Server Side Hit Detection Modelle auch nicht realisierbar. Dafür müßte der Server zu viel Leistung aufbringen um "die Welt" immer korrekt zu berechnen und an die Clients zu verteilen. In anderen Spielen, wie zBsp. HL Games oder CS sieht es da anders aus, deren Server Engines arbeiten mit Server Side Hit Detections. Da kickt einen der Server auch sofort (Wert ist konfigurierbar) wenn man mit einer zu großen Latenz verbindet.

Zurück zu Deiner Frage,
alle Datenpakete zwischen Deinem Client und dem jeweiligen Server werden mittels dem UDP Protokoll übermittelt. Dies bedeutet, versandte Pakete werde nicht dahingehend geprüft, ob diese auch von der Gegenseite erhalten wurden. Dies wäre nochmal eine mächte Resourcen Anforderung an beide Seiten (Client und Server) und dadurch die Client Hit Detection Anwendung findet, ist es negierbar. Denn dem Server ist es quasi "egal" welche Latenz eine Gegenseite aufweist (bis zu einem bestimmten Wert natürlich).

Geht man nun also davon aus das "hier und da" mal ein Paket nicht ankommt, ist eine niedrigere Latenz immer besser um vom Server wieder mit dem "aktuellsten" Paket versorgt zu werden. Sowas ist mal passiert, wenn man zBsp. mit dem Soldaten rennt und auf einmal gab es einen kleinen Ruckler. Passiert sowas wiederholt, ist die Netzwerkverbindung zum Server gerade schlecht (warum auch immer) oder der Server wackelt und ist nicht weit von einem Absturz... hehehe

Clients mit hohen Latenzen und vielen verlorenen Paketen (aufgrund der Entfernung und Zeit die benötigt wird), schießen oder ruckeln sich über Schlachtfeld und machen keinen Spass. Alles bisher geschriebene erklärt diesen Effekt im technischen Sinne.


=]RC[= Hunter
skill is not an unlock ... see ya on the battlefields

Image * Image * Image * Image
User avatar
[RC]Hunter
Site Admin
Sergeant
Sergeant
Posts: 2376
Joined: Fri Apr 04, 2008
Location: Hue City
Favorite Server: All of them
Has thanked: 3 times
Been thanked: 19 times
Germany

Networker

Contributor

Membership

=]RC[= Hunter’s avatar
Loading…

23 May 2016, 19:13

armithaeus wrote:Ich habe momentan durch meinen Provider verursachte Ping-Probleme (und ja es ist der Ping, da ich mit traceroute nachverfolgen kann, wo es im Provider-Netz hackt.) und muss sagen, dass jede 20-30ms Steigerung für mich bemerkbar ist (falls es kein Placebo ist).
Bei einer unserer letzten Runden welche wir zusammen auf dem Server waren, hattest Du aber keine Ping Probleme... aber Dein Versprechen in Bezug auf "geschärftes Messer" konntest Du nicht einhalten ...
:lies:


=]RC[= Hunter
skill is not an unlock ... see ya on the battlefields

Image * Image * Image * Image
User avatar
Nino-6-years
Staff Sergeant
Staff Sergeant
Posts: 162
Joined: Tue Jun 23, 2015
Favorite Server: BC2
Been thanked: 10 times
Germany

Contributor

Membership

23 May 2016, 19:43

Gut, dann sind aller Fragen geklärt ... vorest. :D
Danke für die Mühe!


armithaeus
Private First Class
Private First Class
Posts: 43
Joined: Tue Sep 15, 2015
Germany

24 May 2016, 00:27

[RC]Hunter wrote:Und ich dachte schon ich schreibe viel @nino ... kaum ist man ein paar Tage mal weniger online ... :)

PING ist die zeit welches ein einzelnes Datenpaket von Deinem Rechner zum Ziel benötigt, nur in eine Richtung wohlgemerkt. Daher werden Richtzeiten in Serverbrowsern auch immer mit PING Werten angeben, so dass man grob schauen kann welcher Server vielleicht nicht so weit weg ist zur Auswahl.
Ist ping nicht typischerweise hin- und zurück?
Hit Detection
Die Effekte welche nun im Spiel durch unterschiedliche Latenzen auftreten werden noch komplizierter bei BC2, denn BC2 (wie auch spätere Titel) arbeiten mit der sogenannten Client Hit Detection. Dies bedeutet der Client teilt dem Server mit, ob er einen Gegner getroffen hat oder nicht. Der Battlefield Server ist also nur ein Verwalter der Datenpakete zwischen den ganzen verbundenen Spielern, aber nicht die Intelligenz des Spieles. (daher auch die Cheat Möglichkeiten übrigens ...)

Das bedeutet praktisch, Dein Client teilt dem Server mit "Ich habe Spieler A auf der Hitbox X mit einen Schaden von Y getroffen". Der Server erhält diese Daten und Spieler A bekommt den Schaden Y zugewiesen und auch alle anderen verbunden Spieler werden mit dieser Information versorgt. Hierbei spielt es keine Rolle wo Spieler A sich gerade befindet, solange Du ihn in Deinem Client sehen kannst und Zielwasser getrunken hast.
Ab und zu kann ich Spieler noch erschießen, die bei mir grafisch schon hinter der Deckung sind. Das Verhalten hab ich nie verstanden. Ist mir nach deiner Erklärung auch noch nicht schlüssig? (Da mein Client ja schon weiß, dass er hinter etwas ist. Evtl. unterschiedliches Update für Grafik und Physik?)


User avatar
Nino-6-years
Staff Sergeant
Staff Sergeant
Posts: 162
Joined: Tue Jun 23, 2015
Favorite Server: BC2
Been thanked: 10 times
Germany

Contributor

Membership

24 May 2016, 01:55

armithaeus wrote: Ab und zu kann ich Spieler noch erschießen, die bei mir grafisch schon hinter der Deckung sind. Das Verhalten hab ich nie verstanden. Ist mir nach deiner Erklärung auch noch nicht schlüssig? (Da mein Client ja schon weiß, dass er hinter etwas ist. Evtl. unterschiedliches Update für Grafik und Physik?)
Ich habe oben das RenderAheadLimit erwähnt, welches man übrigens in der settings.ini verändert kann (Standardwert ist RenderAheadLimit=2). Ich meine es spielt neben der Latenz usw. auch eine Rolle, da BC2 einige Frames vorausberechnet(?), wenn ich mich nicht täusche, was eben auch dazu beitragen könnte, dass Grafik und Hitbox nicht übereinstimmen. Mit RAL=0 scheint dieser Effekt schwächer ausgeprägt zu sein. Aber ich schließe nicht aus, dass es sich auch einfach nur um Einbildung handeln könnte. :D


User avatar
[RC]Hunter
Site Admin
Sergeant
Sergeant
Posts: 2376
Joined: Fri Apr 04, 2008
Location: Hue City
Favorite Server: All of them
Has thanked: 3 times
Been thanked: 19 times
Germany

Networker

Contributor

Membership

=]RC[= Hunter’s avatar
Loading…

24 May 2016, 11:09

armithaeus wrote:
[RC]Hunter wrote:Und ich dachte schon ich schreibe viel @nino ... kaum ist man ein paar Tage mal weniger online ... :)

PING ist die zeit welches ein einzelnes Datenpaket von Deinem Rechner zum Ziel benötigt, nur in eine Richtung wohlgemerkt. Daher werden Richtzeiten in Serverbrowsern auch immer mit PING Werten angeben, so dass man grob schauen kann welcher Server vielleicht nicht so weit weg ist zur Auswahl.
Ist ping nicht typischerweise hin- und zurück?
"der Ping" hat sich mehr oder weniger eingebürgert und ist ursprünglich ein kleines Programm, welches der Entwickler geschrieben hatte um zu prüfen ob eine Gegenstelle online ist oder nicht. Jahrzehnte später ist PING auf allen Betriebssystemen vertreten (Kommandozeilen Tool) und jeder spricht davon, würden wir Haare spalten im technischen Sinne dann müsste man eigentlich nur von Latenz sprechen.

Natürlich ist das Pingpaket ebenfalls auf Reisen hin - und zurück, denn die Gegenseite antwortet ja und das Ergebnis wird entsprechend präsentiert. Die Kommunikationsprotokolle arbeiten jedoch mit verschiedenen sogenannten OSI Layer (Ebenen oder Schichten). Ein Ping ist ein einfacher Echo Request auf Ebene 3 und durchläuft keine weiteren Instanzen auf der Gegenseite. Während ein Datenpaket eines Online Spieles mehr als nur eine "einfaches Echo" auslöst.

Der Echo Request (Ping) benötigt nahezu keine Resourcen um abgearbeitet zu werden und somit spricht man auch davon wie schnell man die Gegenseite grundlegend erreicht. (Knotenpunkte auf dem Weg zum Ziel) Wir haben aber keine Aussage über den Zustand der Gegenseite, also wie ausgelastet ist der Server, wie ausgelastet ist unser System bei der Kommunikation innerhalb eines Spieles wie Bad Company.

Zu beachten ist ebenfalls, das Internet besteht in einer asynchronen Routingstruktur, dies bedeutet technisch betrachtet: mittels Ping haben wir zwar eine Aussage wie die Latenz aussieht von A nach B, aber wir wissen nicht wie es ausschaut von B nach A.

Daher bieten viele Spiele Entwickler innerhalb Ihrer Spiele auch Latenzwerte an, um aufzuzeigen wie es nun wirklich aussieht mit der Verbindung des Spielers zum aktuellen Server.


=]RC[= Hunter
skill is not an unlock ... see ya on the battlefields

Image * Image * Image * Image
armithaeus
Private First Class
Private First Class
Posts: 43
Joined: Tue Sep 15, 2015
Germany

25 May 2016, 23:07

[RC]Hunter wrote:
armithaeus wrote:Ich habe momentan durch meinen Provider verursachte Ping-Probleme (und ja es ist der Ping, da ich mit traceroute nachverfolgen kann, wo es im Provider-Netz hackt.) und muss sagen, dass jede 20-30ms Steigerung für mich bemerkbar ist (falls es kein Placebo ist).
Bei einer unserer letzten Runden welche wir zusammen auf dem Server waren, hattest Du aber keine Ping Probleme... aber Dein Versprechen in Bezug auf "geschärftes Messer" konntest Du nicht einhalten ...
:lies:
Erinnere mich nicht genau, aber wenn es zu Stoßzeiten 18-22Uhr war, hatte ich Ping/Latenz Probleme. Der variiert normalerweise zwischen 65-85 (85 zu Stoßzeiten). Seit 2,5 Wochen aber zwischen 65-180...
Und dat Messer ist gewetzt, ich warte...


Loco
Private First Class
Private First Class
Posts: 19
Joined: Sat Jan 23, 2016
Favorite Server: BC2
Been thanked: 1 time
Germany

Contributor

Membership

28 May 2016, 14:38

Zur Latenz wollte ich mal loswerden das seit dem oder besser gesagt wenn der Pingkicker deaktiviert ist die Serverlatenz oder besser gesagt meine eigene Latenz mehr als miserabel ist. Brauche bei weitem mehr Schüsse und verteile viel weniger Headshot als üblich was leider auch dazu geführt hat das ich weniger auf STRATEGO spiele da es auf anderen Server "normaler" für mich läuft.

P.S.: Hab eure Post nicht gelesen bin nur auf die Überschrift des Freds eingegangen.

MfG Loco


Post Reply