Перейти к основному содержимому

Сетевой код CS2 и VALORANT: две философии борьбы с лагами

Сетевой код CS2 и VALORANT: две философии борьбы с лагами

У CS2 и VALORANT сегодня самые лучшие инженерные и инфраструктурные решения для компенсации сетевых проблем в PvP. У обеих команд было достаточно ресурсов и времени, чтобы строить технологии с нуля.

Обе игры используют базовый стандарт жанра:

  • авторитарный сервер (сервер — источник истины),
  • предикшен/интерполяцию (клиент сглаживает движение и “дорисовывает” реальность между обновлениями, а потом синхронизируется с сервером),
  • плюс базовый набор компенсаторов: lag compensation (сервер “перематывает” момент попадания), reconciliation (синхронизация клиента и сервера после расхождений), buffering/jitter smoothing (сглаживание сети), rate limiting/traffic shaping (защита от спама/пакетного мусора).

Дальше начинаются различия философий.

Сетевой код CS2 и VALORANT: две философии борьбы с лагами — иллюстрация 1

VALORANT — классический client-server подход, доведённый почти до максимума

  • единственные у кого tickrate 128Hz на всех серверах. Стандарт на сегодня — ~60 Hz (tickrate – как часто за одну секунду сервер обрабатывает события). У Battle Royal игры он обычно ниже 60 – Apex Legends и Warzone 20 Hz, Fortnite 30 Hz.
  • собственная инфраструктура и маршрутизация трафика (Riot Direct),
  • отдельный фокус на снижении peeker’s advantage (когда выходящий из-за угла получает временную фору и видит defender раньше).

CS2 пошли другой дорогой

  • subtick – сервер учитывает точный момент времени ввода (выстрел/движение/граната) внутри тика, а не просто “привязывает” действие к ближайшему тику
  • мир всё равно пересчитывается через равные промежутки времени, но идея в том, что точность тайминга действий меньше завязана на tickrate и лучше переживает сетевые проблемы.
  • 128 Hz есть, но только на турнирных серверах