Furyhunter

  • Archive
  • RSS
  • Computer questions? Ask way.

Maybe it should be called REVERSE Lag Compensation.

I’m beginning to think “lag compensation” is a misnomer for this particular problem in the game. The concept of lag compensation, I believe, came around the time of Half-Life. The server keeps a temporary storage of game states from previous server ticks (up to about half a second in the Delagged Quake 3 mod, iirc) and, when calculating hits from guns, it “rewinds” the game state to a point where it compensates for the time it took for the player’s shot to reach the server, using that cache. As a result, the server is calculating the player’s hit close to where it would have appeared on the player’s screen as opposed to when the server heard of the player’s shot.

This kind of compensation was implemented in Call of Duty in as early as the first game, however I can’t be sure which game — all I know is that it exists in CoD2 and beyond. If it wasn’t in the game, it’d be hard as hell to play the game in high latency environments on the console (as is common in matchmaking).

The “lag compensation” put in with Black Ops and MW3 is actually a sort of handicap that the server imposes, and instead of sending the most recent game state deltas, it sends one from a previous point, to create artificial “latency” on the client. The client still has a low “true” latency, but it’s getting data that is older then what is being sent to the other clients. As a result, the client is sending player state data to the server in its “future” where it only sees the past — and other players see the “future” that the lagged player is sending as the present, allowing them to see you before you see them. Theoretically this would even out the latency between all the players in the game, but it is very clear that there is a discrepancy in latency between players who are actually lagging and players who are being “reverse compensated.”

In essence, the player is unwillingly traveling through time to the past, and Modern Warfare 3 is forcing them too far back in time and actually putting them at a disadvantage compared to other players in the game. This is a fatal design flaw that Infinity Ward should remedy but I guess doesn’t realize the problem. Maybe because they copied the code from Treyarch (as I understand, it wasn’t nearly as bad in Black Ops). Maybe because they only keep certain increments of game states of 20ms, 40ms or even 100ms to save RAM (a likely cause considering the strained memory of the consoles, but the game already saves a big backlog of states for the Killcam).

This article explains a bit about Quake 3 networking (what CoD is built on), to make it easier to understand just how the deltas might be generated to create the “compensation”.

    • #Call Of Duty
    • #MW3
  • 3 months ago
  • 1
  • Permalink
  • Share
    Tweet

1 Notes/ Hide

  1. sandyyyyyy reblogged this from furyhunter
  2. furyhunter posted this
← Previous • Next →

About

Avatar Self-taught software engineer. Also likes ponies.

Twitter

loading tweets…

I Dig These Posts

See more →
  • Photoset via discorderlyconduct

    “Pony” Prom part 2

    Photoset via discorderlyconduct
  • Photoset via discorderlyconduct

    “Pony” Prom Part 1

    Photoset via discorderlyconduct
  • Photoset via discorderlyconduct

    BWARGH

    Photoset via discorderlyconduct
  • Post via fourzerotwo

    The only thing evil needs to prevail is for good men to Error 37.

    May 15, 2012

    Post via fourzerotwo
  • Photoset via ask-trixie

    A little backstory.

    … Now Trixie needs to stop by Sugarcube Corner.

    Photoset via ask-trixie
  • RSS
  • Random
  • Archive
  • Computer questions? Ask way.
  • Mobile

Effector Theme by Carlo Franco.

Powered by Tumblr