- ANZEIGE -
Gamersunity-Foren
Alt
17. April 2014, 12:59 - Onkel Uruk erklärt die Welt - Heute: Netcode
 #1 (permalink)
Sir Uruk.Inc ist offline  
Sir Uruk.Inc
Beiträge: 43.246
Artikel: 3015
 
Benutzerbild von Sir Uruk.Inc
Was ist Netcode?
Das ist Community-Sprech und bezeichnet einen ganzen Haufen Systeme, die dafür sorgen, dass alle Leute die gleichen Sachen erleben. Wobei das natürlich Unsinn ist: In jedem Multiplayer-Shooter sieht man die Dinge leicht verzögert.


Die Sache mit der Tickrate
Die Tickrate sagt, wie oft pro Sekunde Informationen vom Spiel zum Server und vom Server zum Spiel gesendet werden.
- BF4 sendet 30 Mal pro Sekunde Informationen darüber, was du machst (laufen, schießen, wen treffen etc.) an den Server.
- Der Server schickt 10 mal pro Sekunde alle gesammelten informationen darüber, was jeder macht, an alle Spieler.

Jetzt kann man sich als Mathematiker versuchen und nachschauen, was - wenn beide Spieler im Beispiel einen 30er-Ping haben... - im besten Fall und im schlimmsten Fall pasiert...

Bester Fall: Du schießst die Kugel ab und dein Datenpaket kommt beim Server an, direkt bevor ein neues Datenpaket vom Server an alle Spieler geschickt wird.
In dem Fall kriegt der Spieler nach etwa 0.07 Sekunden mit, dass er beschossen wird.
Schlimmster Fall: Du schießst die Kugel ab und das Datenpaket kommt direkt nachdem das Server-Paket verschickt wurde an.
In dem Fall kriegt der Spieler nach etwa 0.17 Sekunden mit, dass er beschossen wird.

Höhere Pings sind natürlich nicht gut...^^

Latency Compensation
Je weiter man sie aktiviert, desto flüssiger sieht das Spiel aus, wenn man einen miesen Ping hat. Das Spiel vermutet dabei einfach, was andere Spieler machen und zeigt dir - bis das nächste Datenpaket vom Server kommt - diese Vermutung, womit das Spiel flüssiger aussieht.

Was ist Packet Loss?
Wenn ein Datenpaket auf dem Weg vom oder zum Server verloren geht.

Jetzt mal die Topics, die immer wieder aufkommen...

"Ich werde getroffen, obwohl ich in Deckung bin!"
Der Server informiert dich, dass du getroffen wirst. Je nach Ping bekommst du die Infos aber mehr oder weniger verspätet - du wurdest vor dem Sprung in die Deckung erwischt, der Server informiert dich aber erst hinterher.

"Granaten und Ähnliches verschwindet beim Tod!"
Das liegt daran, dass der Server vor dir weiß, wann du tot bist. Alle Kugeln, Granaten oder sonstwas, was du danach abfeuerst, werden nicht weitergeleitet - du bist ja eigentlich tot und weißt es nur noch nicht.

"Ich bekomme ganz viel Schaden auf einmal!"
Das liegt am Packet Loss. Wenn ein Paket mit Infos auf dem Weg zu dir beschädigt wird oder verlorengeht (kann passieren...), dann leitet der Server im folgenden Paket für dich alle fehlenden Infos nach. Grade bei schnell feuernden Waffen kann man so sehr schnell und ohne Vorwarnung draufgehen.


Und...
Die 10er-Tickrate ist an sich zu niedrig. Es läuft zwar - aber es gibt immer wieder dumme Situationen. Mit schnelleren Servern - zum Beispiel 20er-Tickrate - würden sich die Beispielzeiten halbieren. In Deckung draufgehen wäre etwa sehr viel seltener.
andy5116, Tarvos, userrr3 and 1 others like this.
_________________________________________________________________________________________

Admin || Mein Twitter || Meine Stats in BF2142 || Meine Stats in BC2 || Meine Stats in BF3 || Meine Stats in BF4
#BFS
Ein Uruk sie zu knechten, sie alle zu finden, ins Dunkel zu treiben und ewig zu binden.
Soon gibt es volles Pfund aufs Maul...
 
Alt
18. April 2014, 17:03
 #2 (permalink)
userrr3 ist offline  
userrr3
Beiträge: 1.107
 
Benutzerbild von userrr3
Bad Company 2 Profil von userrr3 Battlefield 3 Profil von userrr3 Battlefield 4 Profil von userrr3
Sehr schön geschrieben

Ich möchte hinzufügen:
Zitat:
Zitat von Sir Uruk.Inc Beitrag anzeigen
..."Ich werde getroffen, obwohl ich in Deckung bin!"
Der Server informiert dich, dass du getroffen wirst. Je nach Ping bekommst du die Infos aber mehr oder weniger verspätet - du wurdest vor dem Sprung in die Deckung erwischt, der Server informiert dich aber erst hinterher.
....
Kann auch folgende Ursache haben:
Du springst in Deckung und übermittelst es dem Server. Ein anderer Spieler schießt auf deine Spielfigur, die bei ihm noch sichtbar ist, weil er die Nachricht vom Server noch nicht erhalten hat.

MfG
_________________________________________________________________________________________
 
Alt
18. April 2014, 17:29
 #3 (permalink)
Sir Uruk.Inc ist offline  
Sir Uruk.Inc
Beiträge: 43.246
Artikel: 3015
 
Benutzerbild von Sir Uruk.Inc
Zitat:
Zitat von userrr3 Beitrag anzeigen
Sehr schön geschrieben

Ich möchte hinzufügen:


Kann auch folgende Ursache haben:
Du springst in Deckung und übermittelst es dem Server. Ein anderer Spieler schießt auf deine Spielfigur, die bei ihm noch sichtbar ist, weil er die Nachricht vom Server noch nicht erhalten hat.

MfG
Stimmt, ja. Wobei das ja quasi immer so ist: Wenn ein Gegner dich beschießt, dann schießt er auf eine Spielfigur, die - trotz Latency Compensation - ein bisschen dem hinterherhängt, was du als Spieler selbst auf dem Bildschirm siehst.

Und dankeschön für das Lob.
_________________________________________________________________________________________

Admin || Mein Twitter || Meine Stats in BF2142 || Meine Stats in BC2 || Meine Stats in BF3 || Meine Stats in BF4
#BFS
Ein Uruk sie zu knechten, sie alle zu finden, ins Dunkel zu treiben und ewig zu binden.
Soon gibt es volles Pfund aufs Maul...

Geändert von Sir Uruk.Inc (18. April 2014 um 17:42 Uhr).
 
Alt
18. April 2014, 19:10
 #4 (permalink)
t4pse ist offline  
t4pse
Beiträge: 82
 
Benutzerbild von t4pse
Battlefield 3 Profil von t4pse Battlefield 4 Profil von t4pse
Sehr gute Übersicht! Obwohl ich bevor die Technik schuld sein muss den Fehler bei mir suche, so dass es zunächst mit einem "der Situation unangepasstem Verhalten" für mich beginnt - ich arbeite dran, leider passieren im Eifer des Gefechts manche Fehler auch 2x. Synonym hierfür wurden leider auch Ausdrücke wie "Noob" oder "L2P" gern verwendet .

Zitat:
Zitat von Sir Uruk.Inc Beitrag anzeigen

[...]
"Granaten und Ähnliches verschwindet beim Tod!"
Das liegt daran, dass der Server vor dir weiß, wann du tot bist. Alle Kugeln, Granaten oder sonstwas, was du danach abfeuerst, werden nicht weitergeleitet - du bist ja eigentlich tot und weißt es nur noch nicht.
[...]
Um es mit Deinen Worten wiederzugeben: Me encanta!

Analog hierzu eine allzu oft wiederkehrende Szene aus dem GU-Teamspeak:
Lucky: Für welche Map habt ihr gevotet?
t4pse: Ich habe nicht gevotet - ich war mit Sterben beschäftigt!


Grüße und schöne Feiertage.
_________________________________________________________________________________________
 
Alt
18. April 2014, 21:02
 #5 (permalink)
Mindsplitting ist offline  
Mindsplitting
Beiträge: 2.300
Mitarbeiter
Moderator
Bad Company 2 Profil von Mindsplitting Battlefield 3 Profil von Mindsplitting Battlefield 4 Profil von Mindsplitting
Zitat:
Zitat von Sir Uruk.Inc Beitrag anzeigen
Was ist Netcode?
Das ist Community-Sprech und bezeichnet einen ganzen Haufen Systeme, die dafür sorgen, dass alle Leute die gleichen Sachen erleben. Wobei das natürlich Unsinn ist: In jedem Multiplayer-Shooter sieht man die Dinge leicht verzögert.
Guter Post, nur mit oben genanntem hast du einer DICE Aussage geglaubt die auf DICE eventuell zutreffen mag, weil sie ihren Netcode nicht als Netcode bezeichnen. Das ist aber je nach Programm anders.

In der Half Life 1 Engine sowie bei Quake 3 sind diese Begriffe offiziell durch die Entwicklerteams etabliert worden. Quellen dazu findet man in den entsprechenden SDK Manuals

Von daher ist es nicht DIREKT nur community sprech, es ist viel mehr ein etablierter Fachbegriff aus konkurrenzprodukten Es also als "neuzeitliche Erscheinung" zu betiteln ist falsch, denn auch BF4 hat einen ECHTEN Netcode der halt nur intern anders heißt


Was das "herumhacken" auf selbigem angeht... Soooooo wahnsinnig dramatisch wie oft beschrieben isser nicht. Zumindest zum abendlichen Ründchen public. Für E-Sports isser definitiv nicht präzise genug, aber was mich wundert:

Die Spiele aufm Markt die einen Exzellenten "Netcode" haben, wenn auch nur Indiegames, werden von der Community nicht angenommen. Nichtmal die die speziell für E-Sports gemacht wurden (Insurgency zum Beispiel, das MP Gameplay ist finde ich grandios, nur auf dauer Langweilig weils sich nicht etabliert und Clans mangelware sind)

Ergo: Auch wenns schade ist, es bringt nichts mehr ein Game rein auf E-Sport auszulegen, es wird nicht mehr angenommen. Dann is mir ein BF mit einer mittelmäßigen Präzision, dafür aber einer lebendigen Community lieber.

Aufn Patch wart ich trotzdem sehnsüchtig. Es sollt auf jedenfall machbar sein es BESSER als BF3 hinzubekommen. So wars zumindest vor dem BF4 Release versprochen worden.
Sch3v likes this.
 
Alt
18. April 2014, 21:58
 #6 (permalink)
Major Koenig ist offline  
Major Koenig
Beiträge: 8.099
 
Benutzerbild von Major Koenig
Bad Company 2 Profil von Major D. Koenig Battlefield 3 Profil von Maj0r_Koenig
Netcode ist die Kommunikation des Spiels mit der Aussenwelt.

Packet Loss hört sich immer so an als ob DICE da machtlos wäre und das nunmal an den schlechten Leitungen der Leute liegt.
Kann aber gar nicht sein. Ich behaupte, dass die meisten Leitungen kaum bis gar kein packet loss haben.
Wenn es Probleme mit Packet loss gibt, dann durch schlechte Infrastruktur bei DICE wobei ich auch hier eher die Software als Ursache vermute.
_________________________________________________________________________________________
Maj0r_Koenig
 
Alt
23. April 2014, 08:53
 #7 (permalink)
infiniteloop ist offline  
infiniteloop
Beiträge: 184
 
Benutzerbild von infiniteloop
Twitter Account von https://twitter.com/FEAR_Prod Facebook Account von infiniteloop Bad Company 2 Profil von AUTh0rity Battlefield 3 Profil von AUTh0rity Battlefield 4 Profil von AUTh0rity
Guter Beitrag Uruk!

Ein paar Anmerkungen von mir.
Zitat:
Zitat von Sir Uruk.Inc Beitrag anzeigen
"Ich werde getroffen, obwohl ich in Deckung bin!"
Der Server informiert dich, dass du getroffen wirst. Je nach Ping bekommst du die Infos aber mehr oder weniger verspätet - du wurdest vor dem Sprung in die Deckung erwischt, der Server informiert dich aber erst hinterher.

"Granaten und Ähnliches verschwindet beim Tod!"
Das liegt daran, dass der Server vor dir weiß, wann du tot bist. Alle Kugeln, Granaten oder sonstwas, was du danach abfeuerst, werden nicht weitergeleitet - du bist ja eigentlich tot und weißt es nur noch nicht.

"Ich bekomme ganz viel Schaden auf einmal!"
Das liegt am Packet Loss. Wenn ein Paket mit Infos auf dem Weg zu dir beschädigt wird oder verlorengeht (kann passieren...), dann leitet der Server im folgenden Paket für dich alle fehlenden Infos nach. Grade bei schnell feuernden Waffen kann man so sehr schnell und ohne Vorwarnung draufgehen.
Die Probleme werden nicht nur durch Latenz (Ping) und Updaterates (10/30Hz) verursacht. Es spielen auch noch etliche Bugs eine erhebliche Rolle im Gesamtbild.

"just increase the tickrate!!!!!!!" - das fordern viele Spieler.
Abgesehen von den Bugs gibt es aber noch ein Problem. Und das ist die "Simulation Rate".
BF4 (so wie alle anderen Frostbite Engine Titel) simulieren die Spielwelt mit 30 Ticks pro Sekunde.

Würde man die Updaterate(s) nun auf über 30 anheben, müsste man auch die Simulationrate anheben. Und da ist dann Ende Gelände.

Macht man das, spielen einige andere Systeme verrückt, da die Timings an die "30"er Tickrate gehängt sind.
Z.b. gehen die MCOM's viel schneller ab. Denn "15 Sekunden" sind plötzlich nicht mehr "15 Sekunden" wenn die Simulation Rate über 30 liegt.

Laut Hattiwatti, NoFaTe und Kiwidog sieht man dem Code von BF4 sehr stark an unter welchen Zeitdruck da bis zur letzten Minute noch Features eingebaut wurden.

Das ist nicht nur einer der Gründe für den miserablen Zustand von BF4 zu Release, sondern auch für die Teils wirklich abstrusen Bugs. Der Code ist alles andere als sauber und nachvollziehbar - dank der viel zu kurzen Entwicklungszyklen von BF3&4.

Jetzt schimpfen viele über die Frostbite Engine - "WAS FÜR SCHEIß!"
Der Schluss liegt nahe dass die Engine die Wurzel allen Übels ist.
Das stimmt so jedoch nicht. Denn die Engine selbst ist sehr leistungsfähig. Das ganze drum herum, und oben drauf, das DICE in den letzten 4 Jahren unter Zietdruck dran getackert hat, das ist es das die ganzen Fehler verursacht.

Zitat:
Zitat von Sir Uruk.Inc Beitrag anzeigen
Und...
Die 10er-Tickrate ist an sich zu niedrig. Es läuft zwar - aber es gibt immer wieder dumme Situationen. Mit schnelleren Servern - zum Beispiel 20er-Tickrate - würden sich die Beispielzeiten halbieren. In Deckung draufgehen wäre etwa sehr viel seltener. [/color]
Das absolute Minimum wäre es die Updaterates synchron zu setzen 30/30.
Ideal wären Tickrates von 60/60 und die Option für Serverbetreiber gegen Entgeld noch höhere Rates zu setzen.

"Aber das geht nicht, die Internetleitungen/Server sind nicht stark genug!"
Das habe ich schon oft gehört. Das kann aber nur von Leuten kommen die sich nie angesehen haben wieviel Bandbreite BF4 wirklich benötigt.

Tut man das findet man heraus dass BF4 im schlimmsten Fall einen Upload von 4.8kB/sec und einen Download von 14.9 kB/sec hat.
Ja es ist wirklich so wenig.

Battlefield 2 benötigt nicht viel weniger Bandbreite (10 kB/sec / 3.5kB/sec), und das Spiel ist 9 Jahre alt.

Wen es interessiert der kann sich die 3 Videos ansehen die ich zu dem Thema gemacht habe:

Eines vorab. Aufgrund von der vorhandenen Informationslage zum Zeitpunkt der Erstellung der ersten 2 Videos, spreche ich fälschlicherweise von einer 10Hz Updaterate des Clients zum Server.
Das habe ich im 3. Video mit weiteren Details dann richtig gestellt. An der Richtigkeit der Beispiele und des Gesamtproblems, ändert das aber nichts

Spoiler: Aufklappen






_________________________________________________________________________________________
battle(non)sense
[YT] [g+] [tw]

FEAR Productions
[YT] [tumbler] [FB] [g+] [tw]
 
Optionen
Thema bewerten
Thema bewerten:

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:19 Uhr.
Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2015, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.0
Copyright ©2005 - 2013, Gamersunity.de
Changenav Changenav Changenav Changenav