База знаний
ПоследнееПопулярное
Виртуальные серверы (VDS)
Выделенные серверы (DS)
Домены
Игровые серверы
WEB-хостинг
Что такое тикрейт?
Игровые серверы
Тикрейт (tickrate) — частота шагов игровой симуляции на сервере. Измеряется в герцах: при 64 Гц сервер выполняет 64 шага в секунду.
Во время тика сервер обрабатывает команды игроков, рассчитывает игровую логику и физику, обновляет состояние объектов. Отправка сетевых обновлений связана с этой работой, но не обязательно происходит каждому клиенту на каждом тике.
Интервал между тиками рассчитывается по формуле: 1000 / тикрейт.
Во время тика сервер обрабатывает команды игроков, рассчитывает игровую логику и физику, обновляет состояние объектов. Отправка сетевых обновлений связана с этой работой, но не обязательно происходит каждому клиенту на каждом тике.
Чем отличаются низкий тикрейт от высокого тикрейта?
Интервал между тиками рассчитывается по формуле: 1000 / тикрейт.
Тикрейт | Интервал между тиками |
|---|---|
64 Гц | 15,625 мс |
128 Гц | 7,8125 мс |
Более высокий тикрейт уменьшает временной шаг симуляции и может сократить ожидание очередной серверной обработки. Однако он не снижает сетевой пинг и не гарантирует лучшую регистрацию попаданий: на результат также влияют соединение, интерполяция и компенсация задержки.
Увеличение тикрейта повышает вычислительную нагрузку. Требования к процессору сервера растут при более частой обработке обновлений, при этом важно понимать, что удвоение тикрейта не обязательно означает удвоение нагрузки или трафика.
Тикрейт в CS 1.6 (GoldSource).
В GoldSrc — HLDS, используемом для CS 1.6 и Half-Life, параметр
sys_ticrate задаёт целевой верхний предел частоты серверных кадров, которую обычно называют серверным FPS.Значение
sys_ticrate нельзя напрямую трактовать как число сетевых обновлений, получаемых игроком. Например, sys_ticrate 1000 не означает, что клиент получает 1000 обновлений в секунду.Также заданное значение не гарантирует фактический FPS: результат зависит от сборки сервера, нагрузки, доступного процессорного времени и работы таймеров ОС. Сравнивать «1000 FPS» в HLDS и «128 tick» в CS:GO как равнозначные показатели некорректно.
Тикрейт в Source: CS:S, CS:GO
В Source стандартный тикрейт составляет примерно 64 тика в секунду. Для запуска сервера с частотой 128 тиков используется параметр:
-tickrate 128При 64 tick шаг серверной симуляции составляет примерно 15,6 мс, при 128 tick — 7,8 мс. Более высокая частота позволяет чаще обновлять игровое состояние, но требует больше вычислительных ресурсов. Если сервер не успевает обрабатывать тики вовремя, заданные 128 tick не обеспечат стабильную работу.
Тикрейт CS2: как работает subtick
Сервер CS2 работает с тикрейтом 64 Гц — это 64 тика в секунду, с интервалом около 15,6 мс. Дополнительно игра использует систему subtick, которая помогает точнее учитывать время действий игрока.
Например, если игрок выстрелил между двумя тиками, subtick позволяет серверу учитывать, в какой момент произошёл выстрел, а не только к какому тику он относится. Valve описывает такой подход также для начала движения и бросков гранат.
Subtick не повышает тикрейт до 128 и не убирает пинг. Его задача — точнее передать время действия. Таким образом удается обеспечить что-то среднее между нагрузкой на процессор и точностью регистраций действий в самой игре.
Как процессор и ОС влияют на стабильность сервера?
Для сервера важна способность вовремя завершать обработку каждого тика. При 64 Гц интервал составляет около 15,6 мс, при 128 Гц — около 7,8 мс. Если обработка регулярно занимает больше этого времени, сервер не выдерживает заданный темп.
При оценке производительности стоит учитывать:
- Производительность основного потока. Частота CPU сама по себе недостаточна для сравнения процессоров разных архитектур.
- Игровую нагрузку. Число игроков, ботов, объектов и сложность плагинов влияют на время обработки.
- Доступность ресурсов. Конкуренция с другими процессами или виртуальными машинами может вызывать задержки.
- Стабильность времени обработки. Среднее значение может скрывать кратковременные просадки.
Стабильность игрового сервера зависит от того, насколько регулярно он успевает обрабатывать тики. При 64 tick на один шаг приходится около 15,6 мс, при 128 tick — 7,8 мс. Нехватка процессорного времени и задержки со стороны ОС могут нарушать этот ритм.
В Windows точность ожидания зависит от используемых таймеров, а завершение ожидания не гарантирует немедленного запуска серверного потока. В Linux есть высокоточные таймеры, но само их наличие также не гарантирует стабильную работу игрового сервера.