Netcode

Diskussionen rund um Star Citizen und Squadron 42

Moderator: JackTF

Benutzeravatar
DTC
Administrator
Administrator
Beiträge: 14968
Registriert: 14. Jul 2006, 18:11
Clan: -=[MiA]=-
Gang: -=GSI=-
Wohnort: Schwerin
Kontaktdaten:

Netcode

Beitrag von DTC »

https://robertsspaceindustries.com/spec ... -up/773513

Also anscheinend haben die miesen FPS nix mit den Servern zu tun, wenn man das liest...
Hängt also alles wirklich nur an der Anzahl der gleichzeitigen Spieler auf dem jeweiligen Server.

Es liegt als nicht am Netcode, sondern am "Physics-Code", "Entity-Code" usw... oder ?
Also müsste ja eine bessere CPU und/oder GPU was bringen ;)
Wahrscheinlich aber auch nur, wenn die Engine die Hardware entsprechend ausnutzen kann...
Bild
Benutzeravatar
JackTF
General
General
Beiträge: 3829
Registriert: 8. Jan 2015, 09:09
Wohnort: Tostedt
Kontaktdaten:

Re: Netcode

Beitrag von JackTF »

Nun, so einfach kann man es sich nicht machen. Ich habe mich schon mit Kollegen darüber unterhalten. Es kommt darauf an, was man als NetCode versteht. Im engeren Sinne meint man damit den Programmcode, der die Daten überträgt. Dieser Teil kann nicht dafür verantwortlich sein, dass die FPS schlecht sind.

Etwas weiter betrachtet meint man damit aber häufig, was übertragen wird. Das hängt nicht nur am NetCode, sondern ist eigentlich im ganzen Programm verteilt. Das wurde im AtV zu Serialized Variables gut erklärt. Sie haben die Voraussetzungen geschaffen, dass man nur Teile übertragen muss. Aber das muss noch überall implementiert werden, um den tatsächlichen Traffic zu reduzieren.

Dazu kommt die Interpretation, dass man meint, was der Server und was der Client macht. Schlechter MMO-Netcode berechnet alles Client-seitig. Das führt dazu, dass 10 Personen auf einem Server für alle Personen berechnen und damit 100 Berechnungen für eine bestimmte Sache (bspw. Physik) durchgeführt werden auf der Client-Seite, obwohl der Server selbst eigentlich nur 10 Berechnungen durchführen müssen. Daran wird aktuell bei SC gearbeitet, um (bestimmte?) Physikberechnungen Server-seitig durchführen zu lassen. Das reduziert nicht nur Berechnungen pro Client, sondern sorgt auch für bessere Synchronisierungen, weil der Server allen Clients mitteilt, wer wo gerade was macht und wo er sich befindet. Da kommt es aktuell ja gern noch mal zu Aussetzern.

Ja, die aktuellen Performance-Probleme liegen nicht einfach nur am Server. Schon gar nicht stimmt die Behauptung, dass die FPS durch den Server beschränkt werden. Es liegt daran, was der Client leisten muss. Und eben am Netcode im weiteren Sinne (meiner Meinung nach). Die Frage im Raum ist ja auch, warum man dann mit unterschiedlich potenter Hardware trotzdem gleiche FPS hat. Und da vermute ich, dass eben alle paar Berechnungen Syncs anstehen und dadurch die CPU nicht ihre volle Kraft entfalten kann. Eigentlich ist das ganze so entkoppelt, dass der Client immer davon ausgeht, dass der Server die Daten als gültig ansieht und annimmt. Dadurch kann der Client einfach weitermachen, ohne eine Antwort abzuwarten. Kommt es aber zur Nicht-Annahme, muss der Client seine Berechnungen verwerfen und neu durchführen. Das ist vermutlich auch das Problem, da bei 50 Personen auf einem Server, die jeweils ihre eigenen Berechnungen der Welt vornehmen, sicherlich genügend Fehler auftreten, dass immerzu Berechnungen wiederholt werden müssen. Das ist aber nur eine Annahme. Daher auch der Wunsch der Community, dass da mal Licht ins Dunkel gebracht wird.

Edit: mir fällt dabei ein, dass damit auch die CPU-Spikes erklärbar werden. Sobald einmal Daten als ungültig gesehen werden, berechnet der Client vielleicht so viel neu, dass kurzzeitig eine Vollauslastung auftritt. Die Hardware, die da potent genug für ist, schafft es ohne Vollauslastung, der Rest hängt eben kurz. Das würde auch die Synchronisationsprobleme am Sonntag erkären, weil ich der einzige war, der asynchron zu den anderen lief (kurzzeitig). Ich war sozusagen synced, der Rest nicht wegen der CPU-Spikes... (Ich wurde sozusagen von allen gesehen, bei mir waren die Positionsdaten der anderen jedoch veraltet, weil der Server sie noch nicht akzeptiert hatte...) Das ergibt Sinn, muss aber nicht stimmen.
JackTF
Diplomat und Chef-Schlichter i.A.b.
----------
"We don't have friendly fire in The Old Republic for a simple reason: a lot of players are, well… idiots. I don't mean you, of course, dear reader, I mean those OTHER players. You know who I'm talking about." Damion Schubert, Lead Systems Designer, Bioware
Bild
Benutzeravatar
Loewenstolz
General
General
Beiträge: 4017
Registriert: 31. Jan 2016, 21:14

Re: Netcode

Beitrag von Loewenstolz »

Genau in einer Woche gibt es wohl einen Live-Stream oder ähnliches dazu. Einfach mal die Terminübersicht für nächste Woche abwarten.

Es laufen auch schon Tests zu bestimmten Mechaniken/Features/Techniken; bspw. für die ersten 1,5 Stunden nach dem letzten Patch: https://robertsspaceindustries.com/spec ... netw/64501

Vielleicht auch einfach mal nicht auf den FPS-Zähler achten und spielen?! :wink:

Ach ja, CiG arbeitet auch mit client-side prediction, meine ich!
Benutzeravatar
DTC
Administrator
Administrator
Beiträge: 14968
Registriert: 14. Jul 2006, 18:11
Clan: -=[MiA]=-
Gang: -=GSI=-
Wohnort: Schwerin
Kontaktdaten:

Re: Netcode

Beitrag von DTC »

@JackTF

Auch wenn man den Netcode im "erweiterten Sinne" betrachtet - sollte die Menge der übertragenen Daten ja nicht die FPS beeinflussen - zumindest nicht die Übertragung selbst.
Was der Client dann aus den übertragenen Daten macht bzw. was er daraus berechnen muss, das wiederum dürfte sich dann im Endeffekt auf die FPS auswirken.
Je weniger relevante Daten der Client also bekommt bzw. berechnen muss, desto besser die FPS :) (wenn man jetzt mal eventuelle Limitierungen durch die Grafikkarte außen vor lässt).
Bild
Benutzeravatar
JackTF
General
General
Beiträge: 3829
Registriert: 8. Jan 2015, 09:09
Wohnort: Tostedt
Kontaktdaten:

Re: Netcode

Beitrag von JackTF »

So meinte ich es auch.
JackTF
Diplomat und Chef-Schlichter i.A.b.
----------
"We don't have friendly fire in The Old Republic for a simple reason: a lot of players are, well… idiots. I don't mean you, of course, dear reader, I mean those OTHER players. You know who I'm talking about." Damion Schubert, Lead Systems Designer, Bioware
Bild
Antworten