Not really. It even affects me testing locally (two instances on the same machine, communicating via localhost).
The issue is this: Every time step (which is, if I recall, about once every six milliseconds) the host will poll all clients for a heartbeat. Even if the game is paused, should the heartbeat not arrive promptly, it signals a desync.
What can be fixed quickly are actions that always produce a desync. Those are of course very hard to discover.
For greatest stability two rules can be weighted in matchmaking:
I do not see a short term solution. It certainly does not help that dealing with wide area networks has never been a forte of mine.
... Some preliminary work on the internal timer mechanism has started, and that might eventually allow a relaxation of the rather hasty heartbeat functionality, but like so many other things it will take a while.
The issue is this: Every time step (which is, if I recall, about once every six milliseconds) the host will poll all clients for a heartbeat. Even if the game is paused, should the heartbeat not arrive promptly, it signals a desync.
What can be fixed quickly are actions that always produce a desync. Those are of course very hard to discover.
For greatest stability two rules can be weighted in matchmaking:
- Host should be the slowest computer.
- Host should be the computer with lowest ping to all others.
I do not see a short term solution. It certainly does not help that dealing with wide area networks has never been a forte of mine.
... Some preliminary work on the internal timer mechanism has started, and that might eventually allow a relaxation of the rather hasty heartbeat functionality, but like so many other things it will take a while.
- 1