Kurt M. Weber
New member
So I've been working on a multiplayer system off-and-on for a couple of years now, and here are my design thoughts for you to chew on, hopefully to get some input as I pick back up on it.
Time acceleration: there is an SDK function that can set the time acceleration level. Every frame, the current acceleration level is checked and reset to 1 if it is not.
Time sync: The server maintains an internal clock, and upon connecting sends the client its internal MJD (which may or may not be the server's system time--it's configurable indepdently). An algorithm similar to what NTP uses is then used to correct for the delay in propagating the message from the server to the client.
Vehicle state: Rather than continuously update a vehicle's position in space, updates are only sent and propagated to other connected clients when a vehicle's orbital parameters (other than mean anomaly, of course) have changed by more than a certain amount from the last time they were updated.
Thoughts?
Time acceleration: there is an SDK function that can set the time acceleration level. Every frame, the current acceleration level is checked and reset to 1 if it is not.
Time sync: The server maintains an internal clock, and upon connecting sends the client its internal MJD (which may or may not be the server's system time--it's configurable indepdently). An algorithm similar to what NTP uses is then used to correct for the delay in propagating the message from the server to the client.
Vehicle state: Rather than continuously update a vehicle's position in space, updates are only sent and propagated to other connected clients when a vehicle's orbital parameters (other than mean anomaly, of course) have changed by more than a certain amount from the last time they were updated.
Thoughts?