Игра на движке Source и её сетевая модель
Left 4 Dead 2 работает на движке Source, и его сетевые параметры давно знакомы игрокам: клиент отправляет серверу команды несколько раз в секунду и получает обновления состояния мира. Между кадрами чужие объекты достраиваются по интерполяции. Это значит, что при потерях и джиттере вы сначала видите не «пинг», а рывки заражённых и застревание членов отряда.
Отсюда и главный инструмент диагностики: встроенный график сети, который включается консольной командой net_graph. Он показывает потери, состояние канала и частоту кадров рядом.
Заражённые особенно чувствительны: специальные заражённые, такие как охотник или курильщик, используют способности с точным тайммингом, и расхождение в несколько кадров превращает чистое отражение атаки в промах.
Хорошая привычка — сохранять значения, которые вы меняли, в отдельном файле конфигурации с комментариями: через месяц вы не вспомните, какая правка что дала, и легко вернёте настройки к исходным.
Читаем график и отделяем причины
В net_graph смотрите три вещи. Первая — частота кадров: если она низкая, лаг вызван самим клиентом. Вторая — потери в обе стороны: ненулевые значения означают, что пакеты не доходят. Третья — задержка канала и её колебания.
Если потери отображаются только на входящем направлении, вероятнее проблема на стороне сервера или маршрута. Если исходящие — смотрите на свою сеть и Wi-Fi. Эти значения нужно записать: без них любые «исправления» превращаются в гадание.
Интерполяция и частота обновлений
Параметры cl_interp, cl_interp_ratio, cl_updaterate и cl_cmdrate управляют тем, как клиент обменивается данными с сервером. Слишком маленькое значение интерполяции делает картинку резкой, но не защищает от потерь: при пропуске пакета объект прыгает. Большее значение сглаживает, но увеличивает эффективную задержку.
Верхние пределы задаёт сервер, а не ваши команды. Поэтому не ждите чудес: если сервер ограничивает частоту, ваши значения выше просто урезаются. Меняйте по одному параметру и проверяйте на графике.
Учтите, что для многих серверов частота обновлений ограничена значением, которое задаёт администратор. Поэтому лучшая стратегия — выбирать серверы с известной хорошей репутацией, а не подгонять клиент под неудачный.
Выбор сервера и режим кооператива
В кооперативной кампании хост чаще всего один из игроков. Если у него плохая связь, лаги испытывает весь отряд. Для игры на выделенном сервере используйте тот, что ближе по пингу и не перегружен: слишком заполненные серверы часто дают неровный тик.
Пересоберите лобби с другим создателем и сравните. Разница подскажет, кто источник проблемы.
Для игры на сервере сообщества проверяйте наполненность: пустой сервер с ровным тиком лучше переполненного.
Дополнительно проверьте, не установлены ли пользовательские модификации, загружающие данные при подключении: карты и скины с сервера иногда скачиваются прямо в момент входа и создают заметную паузу.
Домашняя сеть и кабель
Наконец, всегда исключайте Wi-Fi на время теста. Нерегулярные потери в радиоканале и есть самая частая причина скачков на net_graph при добротном канале. Кабель убирает эту переменную и сразу показывает, стоит ли копаться в cvar.
Если у вас старый роутер, обратите внимание на его загрузку: при активных соединениях и включённых функциях защиты он может не справляться и добавлять задержку в десятки миллисекунд. Такие устройства при высокой нагрузке дают именно те неровные потери, которые вы увидите на графике. Проверьте, свежая ли прошивка, отключите лишние функции и оцените результат.
Проверка перед запуском кампании
Прежде чем запускать длинную кампанию, включите net_graph и пройдите короткий участок, наблюдая за показателями. Если потерь нет, а частота кадров стабильна, приступайте. Если появляются нулевые обновления, остановитесь и проверьте канал.
Учтите режим версус: в нём игроки за заражённых напрямую зависят друг от друга и от сервера, поэтому потери там ощущаются острее. Если ваша сеть нестабильна, лучше предпочесть кооперативную кампанию, где хост определяет большинство событий, чем состязательный режим, где каждый лаг видят все.