Саб-тик (Sub-tick): как на самом деле работает новая архитектура

CS2 Server Architecture

На протяжении многих лет главным предметом споров в комьюнити Counter-Strike был "тикрейт" (tickrate). Сервера матчмейкинга Valve работали на частоте 64 тика в секунду, а турнирные платформы вроде FACEIT — на 128. С релизом CS2 Valve полностью отменили это деление, внедрив революционную систему Sub-Tick (Саб-тик).

Проблема классического тикрейта

Тикрейт — это частота, с которой сервер обновляет состояние мира игры. При 64 тиках сервер делает "снимок" игры каждые 15.6 миллисекунд. Если вы нажмете кнопку выстрела между этими "снимками", сервер засчитает ваш выстрел только в следующий тик. Из-за этой микро-задержки возникали ситуации, когда вы точно видели кровь на модели врага, но сервер решал, что враг успел убежать за стену.

Решение Source 2: Саб-тик обновления

В CS2 серверы всё еще имеют базовый такт обновления, но теперь они обладают памятью. Система Sub-Tick позволяет серверу фиксировать точное время совершения действия (выстрела, прыжка, броска гранаты) с точностью до микросекунд, независимо от того, когда наступит следующий кадр симуляции.

"То, что вы видите — то и происходит". Это главный слоган архитектуры Sub-Tick от разработчиков Valve.

Как это меняет игру?

  • Стрельба стала отзывчивее: "Тапы" из AK-47 и Deagle регистрируются в тот самый момент, когда вы нажали ЛКМ.
  • Прыжки и раскидки: Раскидки гранат в прыжке (Jump-throws) теперь работают одинаково на любых серверах. Вам больше не нужно учить разные ориентиры для 64 и 128 tick серверов. Бинды (binds) на jump-throw стали встроены в движок — достаточно нажать пробел и бросок одновременно.