Yes this is a common 'challenge' in network game. The best link I have so far 
is this: http://www.mine-control.com/zack/timesync/timesync.html

The algorithm from the article:-

        1. Client stamps current local time on a "time request" packet and 
sends to server
        2. Upon receipt by server, server stamps server-time and returns
        3. Upon receipt by client, client subtracts current time from sent time 
and divides by two to compute latency.  It subtracts current time from 
server time to determine client-server time delta and adds in the 
half-latency to get the correct clock delta.
(So far this algothim is very similar to SNTP)
        4. The first result should immediately be used to update the clock 
since it will get the local clock into at least the right ballpark (at 
least the right timezone!)
        5. The client repeats steps 1 through 3 five or more times, pausing a 
few seconds each time.  Other traffic may be allowed in the interim, but should 
be minimized for best results
        6. The results of the packet receipts are accumulated and sorted in 
lowest-latency to highest-latency order.  The median latency is 
determined by picking the mid-point sample from this ordered list.
        7. All samples above approximately 1 standard-deviation from the median 
are discarded and the remaining samples are averaged using an 
arithmetic mean.

 
----- Original Message ----
From: Alexander Shyrokov <[email protected]>
To: [email protected]
Sent: Wed, March 3, 2010 6:41:51 AM
Subject: [ENet-discuss] Time synchronization client/server/client communication.

Hello,

I have multiple clients connected to the server. The server echos the received 
data from any single client to the rest of the clients. I would like to know 
the time when a packet is sent by the original client. How do I do that? It is 
clearly a very common situation in games. I get position of a player with the 
velocity. Given that some time elapsed since the packet was sent I can estimate 
current position by using elapsed time and the velocity to get the offset.


      
_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss

Reply via email to