
Strill
|
Posted - 2008.09.23 00:07:00 -
[1]
Originally by: Praesus Lecti This poses an interesting situation that to me, isn't logical. Say that you are desynced and you know it. You are sitting at a static location, not moving. If you zoom out on your camera and launch some drones, the drones will appear in space at the coordinates the server says you are at. If you then return the drones to your dronebay, they will proceed to fly to the location the client says you are at. Deploy them again and they appear back at the other location. Why are the deploy and return locations allowed to be different? How can the server, which knows full well where you are truly located, tell the drones to proceed to a totally different location in order to return to your drone bay?
This is my understanding of how it works.
>Client's ship location is desynced.
>Client tells server "I'm deploying drones"
>Server tells client that drones are deployed at location X.
>Drones appear at location X for the client, which is far away from the ship.
>Client tells server "I'm telling my drones to return to the drone bay"
>Server tells client: "the drones are moving towards your ship"
The client and server then move their drones towards the player's ship. Since the client's ship location is desynced, it sees them moving for quite a while. The server, however, doesn't see the drones move at all because they're already at the player's ship.
>The drones reach the player's ship from the client's perspective
>Client tells server: "ok scoop all my drones to the drone bay"
Even though the server sees the drones at a completely different location than the client, it scoops them anyway because they're close enough.
>Server tells client "Drones have been scooped"
Basically the problem is that the server doesn't scoop the drones until the client tells it to, regardless of what the server sees. This also causes all sorts of other problems.
For example, let's say the server sees the drones as being within scoop range, but the client doesn't. If the user tries to scoop their drones, that command will be stopped at the client since the client doesn't think the drones are in scoop range, even though the command would have succeeded if it had been sent to the server.
|