Игровые сети глубоко: netcode, тикрейт, джиттер и потеря пакетов

«Я выстрелил первым!» — а в игре вы умерли. Виноват не только ваш пинг. В онлайн-играх работает целая система: netcode решает, кого считать «первым», тикрейт задаёт частоту обновления мира, а джиттер и потери пакетов превращают всё в фарс. Разберём игровые сети изнутри — глубоко и по полочкам.

Обложка: игровые сети глубоко
💡

Главное: в онлайн-играх важнее не средний пинг, а его стабильность. Пинг 40 мс с джиттером в 5 мс лучше, чем пинг 60 мс с скачками до 200 мс.

Клиент-сервер и как устроен онлайн

В большинстве онлайн-игр есть сервер — «авторитет» игрового мира. Клиенты (игроки) отправляют на сервер свои действия, сервер обрабатывает их и рассылает всем остальным. У каждого игрока — своя картина мира, и сервер сводит их вместе.

Ключевое: сервер принимает решения. Если у вас задержка, ваши действия доходят позже, и сервер «видит» вас в прошлом. Отсюда ощущение, что «меня убили за углом» — на сервере вы ещё не успели уйти за угол.

Тикрейт: частота обновления мира

Сервер обновляет состояние игры не непрерывно, а «тиками» — с фиксированной частотой. Это тикрейт. Типичные значения: 64 и 128 тиков в секунду.

  • 64 тика — состояние мира обновляется раз в ~15,6 мс.
  • 128 тиков — раз в ~7,8 мс.

Чем выше тикрейт, тем «плавнее» и честнее игра: меньше ситуаций «обоих убили». Но высокий тикрейт требует больше трафика и ресурсов сервера. Некоторые игры даже вводят платные серверы с высоким тикрейтом.

Netcode: как игра «прощает» задержку

Netcode — это совокупность алгоритмов, которые игра использует для синхронизации. Главный приём — компенсация задержки (lag compensation):

Когда игрок стреляет, сервер не смотрит на текущий момент, а «отматывает» состояние мира на момент, когда выстрел был произведён на устройстве игрока. Это позволяет «прощать» задержку стреляющему. Без компенсации с пингом 80 мс было бы невозможно попадать по движущимся целям.

Разные игры реализуют компенсацию по-разному, поэтому ощущения от пинга в них различаются: где-то «прощают» 150 мс, где-то — 20.

Джиттер: нестабильность хуже высокого пинга

Джиттер — это разброс задержки между пакетами. Пинг то 20, то 150 мс. Он губителен, потому что ломает все механизмы компенсации:

  • Игра не может «отмотать» на стабильный момент — состояние скачет.
  • Персонажи «телепортируются» и «рвутся».
  • Выстрелы не засчитываются непредсказуемо.

Джиттер обычно вызывается перегрузкой сети: ваш канал забит, Wi-Fi нестабилен, узел маршрута перегружен.

Потеря пакетов: невидимый враг

Потеря пакетов — когда часть данных просто не доходит. Игровые данные часто отправляются по UDP, который не пересылает потерянное автоматически — это быстро, но потери «невидимы» и невосстановимы.

Результат потерь:

  • Ваши действия «пропадают»: вы нажали, а игра не среагировала.
  • Чужие персонажи двигаются рывками.
  • Состояние мира расходится у игроков.

Даже 2–3% потерь заметно портят игру, хотя пинг может быть нормальным.

Задержка ввода и интерполяция

Кроме сети есть задержка ввода: ваше устройство, дисплей и сам игровой клиент тоже «думают». Полная задержка «нажал — увидел» складывается из:

  • Задержки ввода (мышь, клавиатура) — 1–10 мс.
  • Обработки клиентом — 5–20 мс.
  • Сети (пинг) — 10–100 мс.
  • Вывода на экран — 5–30 мс (зависит от монитора).

Игры используют интерполяцию — плавную «дорисовку» между состояниями сервера, чтобы картинка не рвалась. Но интерполяция скрывает реальность: вы видите чуть «прошлый» мир.

Как настроить сеть для игр

  1. Подключитесь по кабелю — Wi-Fi добавляет джиттер и потери.
  2. Измерьте не только пинг, но и джиттер с потерями — отдельный тест (например, ping с длительным прогоном).
  3. Закройте фоновые загрузки и стриминг — они создают джиттер.
  4. Выбирайте ближайший игровой сервер — регион решает.
  5. Если джиттер и потери держатся — проблема в маршруте. Ускоритель интернета Rare Booster строит стабильный маршрут до игровых серверов, снижая и пинг, и потери.

Онлайн-игры чувствительны не к «скорости», а к стабильности сети. Понимая, как работает netcode и что такое джиттер, вы поймёте, что лечить — и сеть перестанет проигрывать за вас дуэли.

Часто задаваемые вопросы

Что такое тикрейт и как он влияет на игру?
Тикрейт — частота обновления состояния мира сервером (64 или 128 тиков/с). Чем выше, тем честнее и плавнее игра, но тем больше трафика нужно.
Почему в игре меня убивают за углом?
Из-за компенсации задержки: сервер отматывает мир на момент выстрела, а не на момент, когда вы «видите» себя за углом. На сервере вы ещё не успели уйти.
Что такое джиттер и почему он страшен?
Джиттер — разброс задержки. Он ломает компенсацию задержки, персонажи телепортируются, выстрелы не засчитываются. Стабильный пинг важнее низкого.
Что такое потеря пакетов?
Это когда часть данных не доходит до сервера. Игровые данные идут по UDP и не пересылаются — потери «невидимы» и портят игру даже при нормальном пинге.
Помогает ли ускоритель интернета в играх?
Да, если проблема в маршруте или перегруженных узлах. Он строит стабильный маршрут до игровых серверов, снижая джиттер и потери пакетов.
RARE

Стабильный пинг для честных дуэлей

Игровой ускоритель Rare Booster снижает джиттер и потери пакетов на маршруте до серверов. 3 дня бесплатно.

Попробовать бесплатно

Читайте также

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

Высокий пинг и лаги в играх

Почему высокий пинг, потеря пакетов и джиттер портят онлайн-игры и как снизить задержку без переезда к серверу.

Обложка: Как устроен маршрут пакетов в интернете: хопы, BGP и задержки

Как устроен маршрут пакетов

Глубокий разбор маршрутизации: как пакеты добираются до сайта, что такое хопы и BGP и почему маршрут влияет на скорость.

Обложка: Метрики скорости интернета: Мбит/с, пинг, джиттер и потери пакетов

Метрики скорости интернета: разбор

Глубокий разбор метрик интернета: что означают Мбит/с, пинг, джиттер и потери пакетов и как правильно читать тесты скорости.