00:05.09 | JBdiGriz | I read another paper and deciphered a bit more. It seems that each client has to have a measurement of lag for itself and for the other player |
00:05.57 | JBdiGriz | It then calculates the position of the other tank based on self-lag+other-lag using the position/velocity/acceleration of the last known position |
00:06.33 | JBdiGriz | Apparently, there is no correction for jitter by trying to determine the latency per packet. |
00:08.08 | JBdiGriz | I'm going to download the latest p24 sources tonight and tinker a bit. bzflag is not well enough structured to jump into the middle of this. |
00:15.08 | Patlabor221 | P24 just deals with server to each client lag |
00:15.33 | Patlabor221 | each client knows its lag to the server, and comps it's timestamp so that it sends in what it thinks as server time |
00:15.51 | Patlabor221 | then when a cleint gets a packet from the server, it knows it's lag and can comp that way |
00:16.11 | Patlabor221 | so that each player dosn't have to know about the other players |
00:21.50 | Patlabor221 | another one you may want to look at is the game "cube" |
00:22.05 | Patlabor221 | it's an opensource FPS that uses enet like P24 does |
00:22.10 | JBdiGriz | How does it comp itself in, does it update the position info based on what it assumes it will be? |
00:22.30 | Patlabor221 | every so often the cleint pings the server and trys to figure it's lag |
00:22.40 | Patlabor221 | then they sync clocks to the server |
00:22.51 | Patlabor221 | so yeah it tries to set the time to what it thinks the server time is |
00:22.56 | Patlabor221 | it hasn't been tested |
00:22.59 | JBdiGriz | Right, but it needs to send a position update to the server. |
00:23.03 | Patlabor221 | but it makes sense to me in my head |
00:23.24 | JBdiGriz | That position will be off by the latency between client (itself) and server |
00:23.41 | JBdiGriz | The position will then be relayed to the opposing client |
00:23.41 | Patlabor221 | yes, that is why it stamps it with the time it thinks the server is |
00:23.53 | Patlabor221 | the other client will get the update |
00:24.01 | Patlabor221 | and then interplolate based on the timestamp |
00:24.40 | JBdiGriz | The timestamp is increased by the other client by the amount of lag from the other client |
00:25.08 | Patlabor221 | the other client knows how far off in time it is from the server. |
00:25.26 | Patlabor221 | since all timestamps are server centric it can comp it |
00:25.37 | JBdiGriz | This doesn't take into account jitter on a per packet basis, where some packets are a little slower |
00:26.36 | Patlabor221 | no it dosn't but I don't know how bad it will be |
00:26.39 | Patlabor221 | as I say it needs testintg |
00:26.52 | Patlabor221 | I don't know of a way to comp for each specific packet being difrent |
00:26.56 | JBdiGriz | I'm just trying to understand it for now. |
00:27.27 | Patlabor221 | if I resync the clock every 30 sec to a min, it shoudln't be too bad |
00:27.50 | Patlabor221 | and if there is a bit of a lag spike, yeah it'll mess up for a bit, but onece it resyncs it'll be ok |
00:28.00 | Patlabor221 | I don't think there is any perfect solution. |
00:28.01 | JBdiGriz | I'll look through the sources over the next couple of days, and relate it to the papers |
00:28.35 | JBdiGriz | I have noticed that some connections (e.g. bzg's) are very susceptible to jitter according to the latest bzflag. |
00:28.58 | JBdiGriz | Others are not as susceptible. The jitter listed for my connection is typically 0 |
00:30.54 | Patlabor221 | yeah, I dono |
00:31.13 | Patlabor221 | I've seen system that don't just "pop" people to new positions, but interpolate them |
00:31.24 | Patlabor221 | it looks smother but is techincaly less acruate |
00:31.36 | Patlabor221 | I mean when you find out your DR was wrong, what ya gonna do? |
00:31.44 | Patlabor221 | and it's gonna be wrong at some point |
00:37.14 | Patlabor221 | I kinda stoped on the net backend of P24, and am now concentrating on the "making it draw stuff" part |
00:39.16 | Patlabor221 | not that I dislike the net stuff, I want to verify if my idea for the world database will work or not |
00:39.30 | Patlabor221 | if it does I think it could work out to be really cool |
00:40.01 | JBdiGriz | That sounds good. Since I'm getting more into the net stuff, perhaps I'll try to be useful in the near future. |
00:40.10 | Patlabor221 | yay |
00:40.21 | Patlabor221 | I'd love to have somone else look at the stuff |
00:40.34 | Patlabor221 | the Idea I had makes sense to me, but I could be full of it |
00:40.51 | Patlabor221 | I just know that other games do it way better then BZ, so I sould be able to do it well also |