Я понимаю что вы говорите. Но я, со своей стороны и опыта разработки где уже все это перечисленное работает (кроме поиска пути, сейчас над этим и работаю) на моем сервере, просто напоминаю что это не просто привинтить болт или гайку и все будет круто.Step by step ) сначала 1 квест, потом второй. Если второй потребует переработку первого goto: 1 квест рефакторинг.
С гео первая задача: считывать Z координату
Потому что задача на перемещение по таймеру на сервере идет с расчетом на X.Y.
Клиент с сервером синхронизируются unit в unit на плоскости. Но когда клиент ходит по неровностям то тут расхождение с сервером. Клиент находится на одном месте а на сервере он либо дальше либо ближе на 30-40 unit'ов.
Насчет разсинхронизации, тут нужно смотреть на клиент и какие параметры он отсылает на сервер (ValidatePosition). Да, есть дрифт, но я тоже компенсировал все это простой паузой в 100 ms.