Grand Prix Garage - GPL
The workings of GPL Online - Part 2
Ghost collision example
This page shows screen shots from three replays of the same accident that took place in the 1998 IGPLC F3 race at Zandvoort. Doc ran the server, Jason and I ran as clients. The replays show that the server does not detect collisions between clients if the local server car is not involved.
Here's what it looks like. You can enlarge the pictures if your browser is capable of doing that.
Jason's replay | Doc's replay | My replay |
Jason is about to be hit by me in his 'universe' and Doc's, but not in mine.
Jason sees me collide with him, Doc sees me go through Jason's car and I miss him by a yard.
In Jason's 'universe' there has been a collision that damaged his car, in Doc's and mine no collision was detected.
My car is about to fly over the fence in Jason's replay ...
... but then his system receives data from Doc's server and the collision seems not to have happened for my car, yet the damage to his car remains.
Jason's car is not visible in the last two clips of my replay because my system wrongly predicts it to be spinning on the grass to the left. It warps back on the track shortly after the last clip, just like my car warps back to the track in Jason's replay.
The discrepancies between the replays are caused by the latency of the connections combined with the fast changing circumstances when collisions occur.