К сожалению рассинхрон можно исправить только если переехать поближе к серверу (но и это не гарантирует 100% полноценную работу клиента).
Попробую на пальцах рассказать.
Есть сервер (на котором мы играем) и есть клиент (который мы запускаем, чтобы играть). Данные между сервером и клиентом передаются туда-сюда (очевидно). Данные не идут одним потоком, они разбиваются на пакеты (опустим все уровни OSI).
Так уж иногда складывается, что один или несколько пакетов теряются (не мы такие, жизнь такая). Когда клиент не получает нужный пакет он грустит и начинает ждать, когда же ему этот пакет пришлют еще раз.
Сервер понимает, что злостные провайдеры потеряли пакет и высылает его еще раз (всё это время клиент продолжает грустить и ты видишь, как твой персонаж "стоит на месте и тупит"). Когда нужный пакет доходит, клиент радостно и быстро двигает твоего персонажа к координате, где он должен быть по расчетам сервера (но чаще, конечно, появляется табличка "ту виладж").
Хотя, нельзя исключать возможные глюки клиента, когда он получает от сервера вариант обхода препятствия, но внезапно начинает страдать фгм. Клиент временно тупит, но потом всё-таки получает от сервера новую координату для синхронизации (грубо говоря, в клиенте ты можешь какое-то время бегать по крыше здания, а сервер однозначно будет уверен, что ты стоишь на земле). Тут стОит помнить, что прав сервер.