Механизм асинхронной синхронизации данных в онлайн-играх основан на том, что игровое время в один и тот же момент реального времени на разных хостах разное. 2 При этом сервер всегда впереди, а клиенты отстают от него на время доставки к ним пакета от сервера. 2
Некоторые особенности работы механизма:
- Периодическое измерение пинга. 2 Это время, за которое данные доходят от сервера до клиента. 1 Объём буфера устанавливается примерно в два раза больше пинга. 1
- Прогнозирование позиции. 1 Приложение игры берёт данные сервера и заранее просчитывает, где (скорее всего) будет находиться объект в движении. 1
- Буферизация. 1 Часть данных загружается заранее, чтобы успеть расположить их в правильном порядке или запросить повторно, если что-то потерялось по дороге. 1 Тогда в случае проблем со связью воспроизведение не прервётся. 1
- Удалённый вызов функций. 1 Это часть кода, которая вызывается на одной машине, а исполняется на другой. 1 Сервер может вызывать RPC для клиента, и наоборот. 1
Асинхронная синхронизация позволяет создавать сетевые игры с быстрым доступом к контенту и минимальными задержками. 5