I've implemented pretty much the techniques described by valve here: https://developer.va...ayer_Networking It all works on both the server and client(s). With one little issue, or rather, a concern/question:
When I interpolate the movement of an entity between two points I already know, this causes a blanked 100ms rendering lag on the client (I receive state updates at 20Hz) of remote entities. This is fine, but when a remote entity does some action (say shooting or jumping), which needs to be synchronized to movement - do I not also need to delay these events by the same amount when I receive them from the server, so everything lines up nicely?
Synchronizing actions to interpolated movement
Started by fjholmstrom, Feb 04 2012 03:39 AM
1 reply to this topic
Ad:
#2 Moderators - Reputation: 1805
Posted 06 February 2012 - 03:53 PM
Yes, you need to display object position and object actions at the same (consistent) time stamp. If they are somehow sent or simulated separately, then you'll get weird-looking artifacts unless you re-align them.
In this model, typically, you'll enter everything a remote entity does into a single receive queue on the viewing client, time-stamped, and play it back in order with some fixed delay based on your RTT to the server.
In this model, typically, you'll enter everything a remote entity does into a single receive queue on the viewing client, time-stamped, and play it back in order with some fixed delay based on your RTT to the server.
enum Bool { True, False, FileNotFound };


















