requestAnimationFrame
(rAF) будет срабатывать только с максимальной скоростью 60 кадров в секунду.(исключение Некоторые гораздо более старые версии некоторых браузеров имели флаги для выключения VSync, которые влияли на rAF)
Примечание
Локальные сети
В многопользовательских играх сервер должен обслуживать время так, чтобы у всех игроков было общее и надежное время.Клиенты могут проецировать время вперед от последней отметки времени, чтобы избежать зависания, если сеть задерживает пакеты, но должны возвращаться к синхронизированному (серверному) времени при получении.
Большие сети
Связь зависит от расстояния,даже в идеальной сети точка-точка, если клиент находится на другом конце света, наилучший возможный пинг составляет 130 мс (около 8 кадров при 60 Гц) из-за небольшого времени прохождения.Это не включает коммутацию пакетов и фактическую длину маршрута.Обычно время пинга до наиболее удаленной точки земного шара составляет около 300 мс.
Эта задержка должна учитываться для профессиональных игр, и поэтому многие многопользовательские игры предоставляют локальные серверы и ограничивают игроков от некоторых серверов, если далекопрочь.300 мс дают близким игрокам значительное преимущество.
Многопользовательские игры в реальном времени, использующие API браузеров для размещения клиентов, будут в лучшем случае проблематичными, поскольку браузер является ненадежным и непоследовательным клиентским хостом, в основном из-зак огромному диапазону устройств, на которых работают клиенты.
BTW
window
по умолчанию this
(globalThis
) и как таковой не требуется,например, window.requestAnimationFrame
идентичен requestAnimationFrame