View Single Post
  #6  
Old 11-13-2009, 07:01 PM
InfiniteStates InfiniteStates is offline
Approved Member
 
Join Date: Sep 2009
Posts: 707
Default

Yeah it's easily possible/probable. Sit down and grab a drink, cos I'm bored and it's Friday afternoon lol...


A game updates at a fairly regular, fairly high frequency (e.g. 30 or 60 frames per second). But network packets about game state (from other players) arrive at a much lower frequency. e.g.

Good ping:
Update + network packet
Update
Update
Update + network packet
Update
Update
Update + network packet
...


Bad Ping:
Update + network packet
Update
Update
Update
Update
Update
Update + network packet



To cope with this, the game will predict, based on the last known information, where each player will be for the updates between network packets. e.g. if the last packet says player A is moving north at 200mph, that is what the system will continue have him doing until a packet arrives to tell it otherwise.

This explains why people jump all over the place when a game is laggy. The game is not getting status updates frequently so is running linear predictions for too long. Then it adjusts when new status information arrives and on your screen player A jumps from where the system thought he would be to where the system has now been told he actually is.

This also explains why incredibly quick events often don't register. Ever had problems getting an online takedown on Burnout? Or knifing someone on Call of Duty or Battlefield? This is why.

The problem is also made even worse by changing from a TCP protocol for match-making and the lobby, to UDP for in-game communication. TCP is a slower protocol, but guarantees packet delivery, whereas UDP is faster but packets can and will go missing now and then.

But there's also a lot of other factors that come into it that are beyond my knowledge, and there are many different ways of going about implementing netcode and packet loss coping. There is also the difference between dedicated servers and peer-to-peer systems.

So to answer your question, I think it's less a case of miscalculating bullet projection and more a case of misrepresenting target location. If that makes sense...?
Reply With Quote