Тикрейт — понятие и расчёт¶
Тикрейт (от англ. tick rate — «частота тиков») — количество игровых тиков (шагов симуляции), которые сервер обрабатывает в секунду. Параметр определяет, как часто сервер обновляет состояние мира: позиции игроков, положение снарядов, столкновения, урон и прочие игровые события. Чем выше тикрейт, тем чаще сервер синхронизирует данные и тем отзывчивее геймплей для участников.
¶Суть понятия
Сервер многопользовательской игры работает дискретно: он не отслеживает изменения непрерывно, а выполняет циклы обновления с постоянным интервалом. Каждый такой цикл называется тиком. За один тик сервер фиксирует ввод от игроков, прогоняет физику, проверяет столкновения, начисляет урон и рассылает клиентам актуальное состояние мира.
Тикрейт измеряется в тиках в секунду (tick/s, TPS — ticks per second). Например, тикрейт 64 означает, что сервер выполняет 64 цикла обновления в секунду, то есть интервал между тиками составляет примерно 15,6 мс. Тикрейт 12.5 — один тик каждые 80 мс.
Путаница возникает из-за схожести с FPS (кадрами в секунду) и сетевой частотой опроса (poll rate). FPS отражает частоту отрисовки кадров на клиенте и зависит от железа игрока. Тикрейт — свойство сервера и не зависит от клиентского оборудования. Сетевой poll rate определяет, как часто клиент отправляет данные на сервер, и может быть выше или ниже тикрейта.
¶Тикрейт в популярных играх
| Игра | Тикрейт (по умолчанию) | Примечание |
|---|---|---|
| Minecraft (Java Edition) | 20 | Задаётся в server.properties параметром ticks-per-second |
| Counter-Strike 2 | 64 / 128 | Официальные серверы — 64; 128-тиковые — на кастомных и премиум-серверах |
| Counter-Strike: Global Offensive | 64 / 128 | Аналогично CS2 |
| Team Fortress 2 | 66 | Стандартное значение |
| Dota 2 | 30 | Стабильное значение |
| Rust | 10–30 | Настраивается сервером |
| ARK: Survival Evolved | 30 | Рекомендуемое значение |
| Satisfactory | 20–30 | Зависит от нагрузки |
В Minecraft тикрейт жёстко ограничен значением 20 и является фундаментальной характеристикой движка: все механики — рост растений, движение мобов, переработка руды в печах — привязаны к тику. Модификации и серверные ядра (Spigot, Paper, Fabric) позволяют менять поведение тиков, но не саму частоту.
¶Влияние на геймплей
Низкий тикрейт приводит к «резиновым лентам» (rubber-banding) — когда действия игрока запаздывают или откатываются. В шутерах это выражается в несправедливых попаданиях: сервер, обрабатывая убитого игрока позже, может засчитать урон уже после того, как тот спрятался за укрытие с точки зрения клиента. Высокий тикрейт снижает этот эффект, делая игру отзывчивее и точнее.
При этом тикрейт не отменяет сетевой задержки (ping). Даже на сервере с тикрейтом 128 игрок с пингом 200 мс будет воспринимать отставание. Тикрейт и ping действуют совместно: суммарная задержка до реакции сервера складывается из ожидания ближайшего тика и времени доставки пакетов.
¶Стоимость и компромиссы
Повышение тикрейта линейно увеличивает нагрузку на процессор сервера. Двойная частота тиков примерно удваивает затраты CPU, поскольку вся логика мира прогоняется вдвое чаще. Для серверов с сотнями игроков это критично: требуется более мощное оборудование и оптимизация кода.
По этой причине разработчики часто выбирают компромиссные значения. Counter-Strike 2 при переходе на субтиковую систему (subtick) сохранил официальный тикрейт 64, но добавил точную отметку времени для каждого выстрела, позволяя серверу учитывать ввод игрока внутри тика. Это снизило ощутимую разницу между 64 и 128 тиками без роста нагрузки.
¶Измерение и настройка
В Minecraft тикрейт проверяется командой /tps (на Spigot/Paper) или выводом серверной консоли. Значение ниже 20 указывает на перегрузку. Для снижения нагрузки используют оптимизации: уменьшение радиуса прогрузки чанков, ограничение мобов, модификации оптимизации (Lithium, Starlight).
В шутерах тикрейт настраивается в конфигурационных файлах сервера или при его аренде. Хостинг-провайдеры обычно предлагают выбор между 64 и 128 тиками с разной стоимостью.
Источники:
- Документация Minecraft: server.properties
- Valve Developer Community: Source Multiplayer Networking
- PaperMC Documentation
- Rust Server Documentation (server.cfg)
