Высокий тикрейт и собственный провайдер: как работает сетевая часть Valorant
С тикрейтом 128 совпадение состояний мира на клиенте и сервере почти идеальное.
Кстати, на сайте читать удобнее
В киберспортивном шутере Valorant студия Riot Games хотела добиться максимально высокого тикрейта: сервер обсчитывать данные игрового мира 128 раз в секунду. Чтобы достичь этого, разработчикам пришлось создать собственный провайдер.
Как правило, объясняют сотрудники Riot, мультиплеерные игры работают так: компьютер игрока отправляет сигнал, он проходит через ряд узлов-маршрутизаторов, а затем попадает на сервер игры. Если на одном из узлов возникнут проблемы со связью, разработчики ничего не смогут с этим сделать.
[Провайдер] Riot Direct хорош тем, что им владеет Riot. Когда обнаружим брешь в покрытии, сможем расширить свою сеть в регионе. К примеру, если вы живете в Марокко, то рядом с вами нет наших серверов.
И мы такие думаем: «Ага, здесь находится много пользователей, и нам хотелось бы сделать игру приятнее для них». И мы можем расширить нашу сеть, вложиться в то, что поможет нашим игрокам.
Дейв Хейронимус, технический директор
Повышение качества связи и снижение пинга поможет разработчикам справиться с «преимуществом нападающего». Это ситуация, в которой один игрок неожиданно появляется — например, из-за угла — в зоне видимости другого игрока, а тот его еще не видит из-за лагов.
Такие задержки негативно сказываются на геймплее: по игроку могут открыть огонь еще до того, как он поймет, что противник где-то рядом. Наличие собственной сетевой инфраструктуры позволяет разработчикам решить эту проблему.
Причина данной задержки в перемещении сетевого сигнала, который переходит от компьютера игрока А к серверу игры, а затем доходит до игрока Б. Это длинная петля.
Проходит много времени, прежде чем Б узнает о существовании А. Поэтому для поддержания соревновательных условий нам важно укоротить данную петлю.
Дэвид Стрейли, ведущий инженер
Кроме того, отмечает Стрейли, здесь важную роль играет тикрейт сервера — частота, с которой он обсчитывает изменения в игровом мире и обрабатывает данные с клиентов. Первая версия Valorant работала с тикрейтом 64 и этого было недостаточно.
С таким тикрейтом клиент и сервер могли достаточно сильно рассинхронизироваться. Серверу приходилось проводить дополнительные вычисления и отматывать время назад, чтобы понять, была ли у игрока возможность куда-то попасть.
Когда вы стреляете в противника в игре, момент, в который вы сделали выстрел, отличается от момента, на котором находится сервер. Сервер уже двинулся вперед и он уже в будущем состоянии, поэтому для определения попадания или промаха он должен перемотать назад игровой процесс и переместить всех игроков назад, чтобы понять, было ли попадание.
Дэвид Стрейли, ведущий инженер
Повысив тикрейт вдвое, разработчикам удалось достичь почти полной синхронизации между клиентом и сервером. Во многом это стало возможным благодаря собственной инфраструктуре: Riot может гарантировать, что на канале между игроком и сервером будет минимум технических проблем.
Если связь все-таки недостаточно хороша, то серверная часть Valorant умеет сглаживать движения игрока с низким тикрейтом так, чтобы у других игроков все выглядело нормально.
- Не можешь победить — возглавь: как Valorant стали круглосуточно транслировать на Twitch
- Авторы Valorant заплатят больше 7 миллионов рублей за эксплойты в античите
- «Мы безумные и тупые»: Кевин Смит рассказал о коронавирусе в «Лоботрясах» и планах Disney
- Сюжетные задания в Mount & Blade 2 Bannerlord больше не будут проваливаться через 10 лет
- Игроки в Valorant считают, что античит влияет на производительность других игр
- Драйвер и приватность: как устроен античит Valorant