Timebased, Lags, etc.
is vll ja jetzt offtopic aber wie macht es zum bleistift EA games bei "most wanted" dass wenn das game mal hängt auch der timer am hängen ist?
weil ich von mir aus denke dass das ein starker rechenaufwand ist so etwas zu ermitteln: wann tritt ein lag auf? wie lange dauert dieser lag? wieviel spielzeit geht verloren? wieviel ist aufzuholen?
weil ich von mir aus denke dass das ein starker rechenaufwand ist so etwas zu ermitteln: wann tritt ein lag auf? wie lange dauert dieser lag? wieviel spielzeit geht verloren? wieviel ist aufzuholen?
Kommt drauf an. Viel Rechenaufwand ist es in jedem Fall nicht, da die Anzahl der dargestellten Frames bekannt ist.R4z0r1989 hat geschrieben:is vll ja jetzt offtopic aber wie macht es zum bleistift EA games bei "most wanted" dass wenn das game mal hängt auch der timer am hängen ist?
weil ich von mir aus denke dass das ein starker rechenaufwand ist so etwas zu ermitteln: wann tritt ein lag auf? wie lange dauert dieser lag? wieviel spielzeit geht verloren? wieviel ist aufzuholen?
Allerdings wird es in den meisten Spielen so gehandhabt, das ein Timer nicht hängt, wenn das Spiel hängt. Und das mit Absicht. Es geht dabei vorallem um den Mehrspieleraspekt. Da muss bei allen der Timer ja gleich laufen, auch wenn das Spiel bei einem hängt aus Performancegründen. Da werden dann einfach Frames nicht dargestellt. Das Spiel hängt aber es läuft nicht langsamer ab. Stichwort Timebased Movement. So wird das heute eigentlich in jedem professionellen Spiel gemacht.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!

Du meinst wohl eher ... in Netzwerkspielen wird das nicht gemacht ... in
Singleplayerspielen sollte das schon drinn sein. Wie man das ermittelt liegt
vom System ab, das man programmiert hat. Wenn aber alles in einem
Hauptthread verläuft ist es am Einfachsten eine bestimmte Grenze zu
bestimmen und dann so zu tun, als sei keine Zeit vergangen.
Thorium hat das entsprechende Stichwort schon gepostet. Und wenn du
für jeden Loop eh die Zeit mist, die vergangen ist, kannst auch messen,ob
die Zeit seit dem letzten Aufruf größer als z.B. 1 Sekunde ist. Wurde als 1
Sekunde lang nichts gemacht, ist es ein Lag und du setzt die Variable,
welche die verstrichende Zeit beinhaltet seit dem letzten Aufruf auf einen
viel viel niedrigeren Wert als 1 Sekunde. Ich glaub es gibt sogar spiele, die
in dem fall automatisch in den "Pausenmodus" gehen.
Ach ja, zum Thema Multiplayer ... so ganz hat Thorium nicht recht. Denn
wegen der Syncronisation bzw. je nach dem um was es sich für ein Spiel
handelt werden Spieler mit einem größeren Lag einfach aus dem spiel
gekickt ... oder aber das Spiel wird für alle pausiert bis die Syncronität
wieder hergestellt ist. ... bei Echtzeitstrategiespielen dürfte das z.B.
schon gang und gebe sein.
Zu deinem Mathe-Timer-Problem ... ElapsedMilliseconds() ist dein Freund.
MFG PMV
Singleplayerspielen sollte das schon drinn sein. Wie man das ermittelt liegt
vom System ab, das man programmiert hat. Wenn aber alles in einem
Hauptthread verläuft ist es am Einfachsten eine bestimmte Grenze zu
bestimmen und dann so zu tun, als sei keine Zeit vergangen.
Thorium hat das entsprechende Stichwort schon gepostet. Und wenn du
für jeden Loop eh die Zeit mist, die vergangen ist, kannst auch messen,ob
die Zeit seit dem letzten Aufruf größer als z.B. 1 Sekunde ist. Wurde als 1
Sekunde lang nichts gemacht, ist es ein Lag und du setzt die Variable,
welche die verstrichende Zeit beinhaltet seit dem letzten Aufruf auf einen
viel viel niedrigeren Wert als 1 Sekunde. Ich glaub es gibt sogar spiele, die
in dem fall automatisch in den "Pausenmodus" gehen.
Ach ja, zum Thema Multiplayer ... so ganz hat Thorium nicht recht. Denn
wegen der Syncronisation bzw. je nach dem um was es sich für ein Spiel
handelt werden Spieler mit einem größeren Lag einfach aus dem spiel
gekickt ... oder aber das Spiel wird für alle pausiert bis die Syncronität
wieder hergestellt ist. ... bei Echtzeitstrategiespielen dürfte das z.B.
schon gang und gebe sein.
Zu deinem Mathe-Timer-Problem ... ElapsedMilliseconds() ist dein Freund.
MFG PMV
Ne das wird kombiniert. Ein Multiplayerspiel muss timebased ablaufen. Ansonsten läuft es out of sync und das is tötlich. Kick/Pause tritt erst nach langen Lags auf. Kenne das von Starcraft z.B. nach 1 Sekunde keine Rückmeldung wird das Spiel pausiert und ein Timer runtergezählt. Is der Timer auf 0 dürfen die anderen Spieler, den vermeindlich disconnecteten kicken.PMV hat geschrieben: Ach ja, zum Thema Multiplayer ... so ganz hat Thorium nicht recht. Denn
wegen der Syncronisation bzw. je nach dem um was es sich für ein Spiel
handelt werden Spieler mit einem größeren Lag einfach aus dem spiel
gekickt ... oder aber das Spiel wird für alle pausiert bis die Syncronität
wieder hergestellt ist. ... bei Echtzeitstrategiespielen dürfte das z.B.
schon gang und gebe sein.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!

- KeyKon
- Beiträge: 1412
- Registriert: 10.09.2004 20:51
- Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit) - Wohnort: Ansbach
- Kontaktdaten:
Ja, nur in C&C nich, nichmal in AR3 isses so, ich glaube die wollen das als tolle Tradition aufrechterhalten -.- Sobal irgendeiner im beim Multiplayer langsamer is ziehts alle runter -.-Thorium hat geschrieben:...So wird das heute eigentlich in jedem professionellen Spiel gemacht.
(\/) (°,,,°) (\/)
Was anderes hab ich auch nicht behauptet. Dein vorheriger Post besagteThorium hat geschrieben:Ne das wird kombiniert. Ein Multiplayerspiel muss timebased ablaufen.
aber, dass Multiplayerspiele eben grundsätzlich nicht langsamer ablaufen
würden

Mein Post beinhaltet genau das, was du jetzt wiederholt hast

Und wie KeyKon erwähnt, hängt dann tatsächlich das gesamte Spiel,
anstelle dass der entsprechende Spieler gekicked werden kann.

Wenn du mit deinem Post was anders sagen wolltest, hättest es schreiben
müssen

MFG PMV
Timebased heisst doch das es nicht langsamer läuft. Sondern immer mit konstanter Geschwindigkeit unabhängig von den FPS. Wenn das bei C&C nicht so ist, dann ist es nicht timebased und damit in dieser Hinsicht amateurhaft.PMV hat geschrieben: Was anderes hab ich auch nicht behauptet. Dein vorheriger Post besagte
aber, dass Multiplayerspiele eben grundsätzlich nicht langsamer ablaufen
würden
Wenn du mit deinem Post was anders sagen wolltest, hättest es schreiben
müssen![]()
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!

Quatsch ... timebased heißt, das es Zeitabhängig ist ... das schießt aber
nicht aus, dass man das spiel nicht auch "pausieren" kann, man also an
der Zeit rum schraubt. Und dabei spielt es keine rolle, ob der Benutzer das
per Knopfdruck aktiviert, oder im Spiel das automatisch ohne wissen des
Spielers durch geführt wird. Das es bei schlechter Umsetzung zu "Lags"
kommt, die ein Spiel unspielbar machen ist wieder ein ganz anders Blatt
... letztendlich kommt es nur auf den Netzwerkcode an, das Zeitbasierte
sollte heut zu Tage jeder vernünftige (Spiele-)Programmierer hin
bekommen. Und beides sind zwei unabhängige Probleme, die als Einheit
funktionieren müssen ... aber das ist ja bei Software grundsätzlich der Fall
und dir brauch ich das eh nicht erzählen.
MFG PMV
nicht aus, dass man das spiel nicht auch "pausieren" kann, man also an
der Zeit rum schraubt. Und dabei spielt es keine rolle, ob der Benutzer das
per Knopfdruck aktiviert, oder im Spiel das automatisch ohne wissen des
Spielers durch geführt wird. Das es bei schlechter Umsetzung zu "Lags"
kommt, die ein Spiel unspielbar machen ist wieder ein ganz anders Blatt

... letztendlich kommt es nur auf den Netzwerkcode an, das Zeitbasierte
sollte heut zu Tage jeder vernünftige (Spiele-)Programmierer hin
bekommen. Und beides sind zwei unabhängige Probleme, die als Einheit
funktionieren müssen ... aber das ist ja bei Software grundsätzlich der Fall
und dir brauch ich das eh nicht erzählen.

MFG PMV