Да так и делается уже. Передаются раз в секунду координаты ПС, скорость и ускорение. На всех клиентах перемещение поездов до получения новых координат происходит с последними полученными значениями скорости и ускорения. А когда координаты получены, поезд сразу же перемещается в них. По-другому нельзя, потому что тогда пойдёт рассинхрон с сервером - на сервере поезд может уже высвободить стрелку и после этого дисп её переводит. А на клиенте, если координаты не будут применены сразу после их получения, а будут сглаживаться - может получится, что в момент, когда с сервера придёт команда перевода стрелки, поезд её ещё не высвободил. И поедет поезд на клиенте в неизвестном направлении, стрелку может взрезать. Если стрелку взрежет - она ведь в правильное положение не переключится, пока на сервере её не перещёлкнут.
"Дёргание" начинается при быстром изменении ускорения поезда.
|