Лаги в ICARUS — это не всегда из-за твоего интернета: проблема принимающей стороны, о которой никто не говорит
Стрела, которая так и не вылетает
Ты натягиваешь тетиву. Медведь несётся прямо на тебя — сорок метров и быстро сокращает дистанцию. Ты отпускаешь. Ничего не происходит. Персонаж замирает прямо посреди анимации. Стрела появляется только через целую секунду, но медведь к этому моменту уже дважды тебя ударил. Полоса здоровья обновляется задним числом, и ты уже лежишь на земле, глядя на таймер возрождения. Игра говорит, что ты умер ещё тридцать секунд назад. Лаг в ICARUS ощущается не так, как в других играх. В соревновательном шутере из-за лага ты промахиваешься. В ICARUS лаг ломает саму симуляцию. Ресурсы не подбираются. Постройки не ставятся. Животные телепортируются. Напарники появляются не там, где стоят на самом деле. Смерть может настигнуть задним числом, потому что сервер уже всё посчитал, пока твой клиент всё ещё показывал, что ты жив. Первым делом хочется свалить всё на свой интернет. Ты запускаешь тест скорости, видишь 200 Мбит/с на загрузку, решаешь, что с интернетом всё в порядке, и злишься, потому что игра всё равно лагает. Но в этом и кроется ошибка: ICARUS устроена не так, как большинство игр, в которые ты играешь. ## Гибридная модель хостинга, которая отличает ICARUS от других игр ICARUS использует не выделенные серверы для каждой сессии. Вместо этого в игре применяется гибридная модель: Некоторые сессии работают на выделенных серверах под управлением RocketWerkz, а другие используют одноранговое соединение, где компьютер хоста отвечает за симуляцию мира и синхронизацию. Когда ты заходишь в Перспективу друга или в сессию сообщества, ты можешь подключаться к хосту в другой стране через домашний интернет с асимметричной пропускной способностью. Домашний интернет почти всегда асимметричный. Тариф с загрузкой 200 Мбит/с обычно дает только 10–20 Мбит/с на отдачу. Эта исходящая пропускная способность должна справляться с отправкой обновлений состояния мира каждому подключенному игроку. ICARUS — игра с тяжелой симуляцией: ИИ животных, погодные системы, физика построек, распространение огня и действия игроков — все это создает изменения состояния, которые хост должен распределять между всеми участниками сессии. Когда подключены три игрока, исходящий канал хоста может быстро забиться. Когда это происходит, обновления встают в очередь. Игроки сталкиваются с резким откатыванием позиции и задержкой действий не потому, что у них самих медленное соединение, а потому, что хост не успевает достаточно быстро отправлять обновления. Это также объясняет, почему лаг по-разному проявляется в разных сессиях. Ты играешь с хостом A, и игра идет плавно. Ты играешь с хостом B в одном регионе, но играть почти невозможно. Проблема не в твоём соединении и не в расстоянии до сервера. Дело в исходящей пропускной способности хоста B и в том, не смотрит ли кто-то в сети хоста B видео в стриме и не загружает ли файлы во время сессии. ## Как отличить проблему хоста от сетевого лага Разница важна, потому что решение в этих случаях разное. Лаг на стороне хоста требует другого решения, чем перегрузка сети на стороне клиента. **Признаки лага на стороне хоста: ** Лаг одновременно затрагивает всех игроков в сессии. Резкое откатывание позиции происходит синхронно. Если твой напарник говорит, что его откатило в тот же момент, значит, узкое место — исходящий канал хоста. Все игроки ждут одни и те же обновления состояния из одного и того же источника. **Признаки лага на стороне клиента: ** Задержки есть только у тебя. Остальные игроки двигаются нормально, а твой персонаж дергается. Только у тебя взаимодействия с объектами срабатывают с задержкой. Это указывает на проблемы с твоим соединением или железом. Сначала закрой фоновые приложения. Если у тебя на ПК в фоне идут загрузка в Steam, Windows Update или облачная синхронизация, они забирают и пропускную способность, и ресурсы CPU, которые нужны ICARUS для обработки симуляции. **Признаки лага из-за маршрутизации: ** У тебя высокий пинг до хоста или сервера — 150 мс и выше, даже если в целом со скоростью интернета всё нормально. Это значит, что маршрут, по которому твой ISP направляет трафик к месту, где находится хост или выделенный сервер, работает неэффективно. Тесты скорости проверяют соединение с ближайшими серверами, а не с конкретным местом, где запущена твоя сессия ICARUS. ## Как уменьшить лаг, изменив сетевой маршрут
Если лаг возникает на стороне клиента и связан с маршрутизацией, решение — изменить путь, по которому идет игровой трафик. Твой ISP выбирает маршрут, исходя из стоимости и пиринговых соглашений, а не из того, как он влияет на игры. Если путь добавляет 20 мс при обычном веб-сёрфинге, ты этого даже не заметишь. Но если он добавляет 100 мс в ICARUS, игра уже начинает ощущаться сломанной. Такой инструмент, как GearUP, позволяет тебе взять этот уровень маршрутизации под контроль. Он перехватывает сетевой трафик ICARUS и направляет его через оптимизированные узлы, выбранные по текущей производительности для сервера или хоста именно твоей сессии. Оптимизация работает отдельно для каждой игры, поэтому она не влияет на остальной интернет-трафик. После того как ты выберешь ICARUS и включишь оптимизацию, ты увидишь, как в реальном времени обновляются значения пинга и потери пакетов. В случае с ICARUS показатель потери пакетов важнее, чем само абсолютное значение пинга. Стабильное соединение с пингом 80 мс и нулевой потерей пакетов ощущается заметно лучше, чем соединение с пингом 40 мс и 2% потери пакетов, потому что ICARUS чувствительна к пропущенным обновлениям состояния. Если пропустить одно такое обновление, ты можешь не получить информацию о том, что животное уже сагрилось на тебя или что огонь перекинулся на твою постройку. ## Железо и настройки, которые действительно помогают Помимо маршрутизации, есть ещё несколько локальных настроек, которые могут заметно повлиять именно на ICARUS. Стабильность частоты кадров. Во многих сценариях ICARUS упирается в CPU, особенно во время штормов и рядом с большими базами. Если в такие моменты частота кадров проседает с 60 до 20, сетевой поток может подвисать, пока ждёт рендеринг, и из-за этого возникает то, что выглядит как сетевой лаг. Ограничь частоту кадров до 60 или до частоты обновления твоего монитора в настройках игры, вместо того чтобы запускать игру без ограничения FPS. Стабильная частота кадров не даёт сетевому потоку страдать из-за скачков нагрузки на рендеринг. Ограничение скорости загрузки в Steam. Если Steam скачивает обновления Workshop или патчи игры в фоне, пока ты играешь в ICARUS, это нагружает и диск, и пропускную способность сети. Настрой Steam так, чтобы он ограничивал загрузки во время игры: Steam Settings > Downloads > Ограничить пропускную способность до 256 КБ/с во время игры. Небольшое значение нужно, чтобы собственный сетевой трафик игры получал приоритет. Выбор сервера для сессий на выделенных серверах. Когда подключаешься к выделенному серверу, выбирай тот, который географически ближе к большей части вашей группы, а не обязательно тот, что ближе именно к тебе. Если ты находишься в Австралии и играешь с друзьями из США, подключение к серверу «Запад США» даст лучшую производительность для большинства участников сессии, а на таком расстоянии твой опыт всё равно будет ограничен задержкой сигнала. ## Как ощущается исправленная сессия Когда лаг в ICARUS устранён, это заметно сразу. Стрелы вылетают в момент, когда ты отпускаешь тетиву. Животные реагируют, когда ты по ним попадаешь. Твоя кирка с первого удара попадает по рудным узлам. Напарники двигаются плавно, без телепортации и откатов. Игра ощущается отзывчивой и стабильной, а не заторможенной и «резиновой». Именно к такому результату тебе и стоит стремиться. ICARUS требовательна и к железу, и к сети, но игра не должна казаться сломанной. Если игра стабильно лагает в разных сессиях с разными хостами, то самым вероятным оставшимся фактором остаётся сетевой маршрут. Исправь это — и симуляция снова придёт в норму.
Об Авторе
Конец