Ладно, не обижайся, но ты тут пытаешь стоить из себя специалиста в области сервером ММОРПГ и как минимум толкового программиста.
И именно я рассказываю о расчёте коллизий на Havok, ага
Я программер хреновенький, именно потому, что знаю столько, что понимаю, что знаю очень мало Я готов учиться, открыт новому знанию.
Поэтому в который раз, прошу тебя, объясни мне как программист программисту, ответь на вопрос:
какие данные по коллизиям должен получить клиент от сервера кроме корректных данных о положении и ориентации объекта?
В третий или четвертый раз ?
И как программист - программисту не могу, я "программистом" себя называть не могу никак. "Программист" - это как слесарь: от сантехника до КИПиА.
Да и сам вопрос не совсем корректен. Попробую описать процесс, как я его вижу:
С сервера клиент получает все данные, которых у него точно нет, а именно - положение и состояние всех "активных" объектов. О чём уже в который раз и пишу. Причем получает с некой периодичностью, с фпс на клиенте почти никак не связанной.
А вот эти самые положение и состояние этих самых активных объектов - в ММО - считаются именно на сервере. Исходя из данных, поступивших со всех клиентов конкретно этого сервера, собственной карты объектов (всех) и правил взаимодействия этих объектов.
Клиент ММО этого сделать не может, ибо опухнет на 2-3 десятке источников данных/подключений (см. мультиплеерные игры).
Мало того, сервер определяет область видимости для клиента - т.е. какие объекты участвуют в отображаемой клиентом сцене, какие нет - и именно и только по этим объектам данные прилетят на клиента. Иногда с запозданием. Сам же сервер считает все коллизии для всех объектов (ну или - все участки карты, видимые клиентам, например+некоторый объем вокруг них, тут очень много всяких факторов, например - событий, случающихся вне зависимости от воздействий игроков: в ТЕСО долмены те же).
Что касается ситуации с разрывом связи - опять же всё просто: получил клиент последний набор данных (повторяю, частота синхронизации данных между сервером и клиентом к фпс на клиенте не имеет почти никакого отношения), "сделал" сцену, новых данных нет - и что ?
Можно зависнуть, что будет некрасиво. Можно продолжать предсказывать (ну ладно - считать

) коллизии -
в пределах сцены - исходя из последних полученных данных.
Что, видимо и делается.
Откаты - это откаты и к коллизиям динамических объектов они не имеют никакого отношения.
Только появилась вроде бы вменяемость в мыслях - и тут же пропала. Жаль.
Вся собственно деятельность сервера и сводится к расчёту коллизий, в основном, и если есть рассинхрон именно коллизий между сервером и клиентом - один из вариантов решения это именно что откат. "Короткий" откат, доли-единицы секунд.
"Длинный" откат (десятки секунд-минуты) - это совсем другая история:
"мегасерверы" и прочие игровые серверы - это несколько (от единиц до тысяч, зависит от реализации движка) процессов, внутри которых "живут" (считаются видимость и коллизии, ага) клиентские сессии. Эти процессы регулярно делают снэпшоты текущего состояния - ради балансировки и устойчивости к сбоям/отказам эти данные могут быть переброшены другому процессу (даже и на другом физическом сервере), и расчёты будут продолжены с этого места. Так вот, если этот самый процесс заглючил или повис нафиг - происходит поднятие другого процесса и продолжение расчёта с того места, где убившийся процесс успел последний раз отдать снэпшот. Разумеется, то, что процесс висит или вылетел, обнаруживается не сразу, а если и сразу (вылет процесса/упал физический сервер, например) - то реакция на него (переезд данных на наименее занятое железо, старт процесса, обработка им данных) занимает некоторое время. При этом данные о том, что произошло с момента снятия снэпшота до момента фактического убиения процесса - тупо теряются, и происходит именно то, что именуется на оффоруме роллбэком, а я тут обозвал "длинным откатом".
Сорри за портянку.