Ночь орды как пиковая нагрузка
В 7 Days to Die регулярно наступает ночь орды, когда на базу игроков идёт множество зомби. Для сервера это самый тяжёлый момент: обсчитывается поведение каждого противника, разрушение блоков, движение и физика. Поэтому лаги нередко сосредоточены именно в эти часы, а в спокойные дни игра идёт хорошо.
Если вы заметили такую закономерность, вопрос почти наверняка в мощности сервера и настройках числа зомби, а не в вашем интернете.
Заранее подготовьтесь: перед ордой проверьте, что сервер перезапущен и свободная память достаточна. Иногда достаточно сохранить мир и перезапустить сервер за час до штурма, чтобы избежать неприятных сюрпризов посреди ночи.
Если играете на общем сервере, попросите администратора включить оповещение о перезапуске: так вы вовремя сохраните прогресс и не потеряете добычу в момент сбоя.
Порты выделенного сервера
По умолчанию сервер использует порт 26900 по TCP и UDP, а также ряд соседних портов по UDP, обычно 26901–26903. Если игроки не могут подключиться, откройте их на роутере и в брандмауэре и проверьте, что правила направлены на нужный компьютер. Если вы меняете основной порт, помните, что соседние сдвигаются вместе с ним.
Для проверки доступности воспользуйтесь внешним устройством в другой сети, например телефоном в мобильной сети. Если подключиться оттуда получается, порты настроены правильно.
Если вы используете хостинг, порты часто открыты по умолчанию, но брандмауэр самого сервера может блокировать соседние. Проверьте все четыре порта, а не только основной: частая ошибка состоит в том, что игрок видит сервер в списке, но не может подключиться.
Что нагружает сервер и как это уменьшить
Главные факторы — число одновременно активных зомби, размер карты, число игроков и построек. Разрушаемая среда добавляет расчётов при каждом падении блока. Если вы видите лаги на ордах, попробуйте уменьшить число зомби или их максимальное количество в настройках, а также ограничить размер построек, которые подвергаются штурму.
Администратору стоит следить за загрузкой процессора и памяти именно в ночи орд и делать выводы по этим данным, а не по средним значениям за сутки.
Потери пакетов и клиентская сторона
Если лагает не у всех, а у одного игрока, проблема на его стороне: слабое Wi-Fi, фоновая загрузка, перегрев. Его тест на потери покажет их наличие. Вылечить помогают кабель и ограничение фоновых задач.
Клиентам с слабыми компьютерами стоит снизить дальность прорисовки и качество теней. Когда на экране одновременно много зомби, процессор не успевает, и игрок ощущает то же самое, что при сетевых проблемах.
Также проверьте размер карты и число построек: чем крупнее и плотнее застроена территория, тем больше данных приходится обрабатывать при штурме базы.
Практический план
Определите, у кого лагает и когда. Проверьте порты. Смотрите на нагрузку сервера в ночи орд. Проверьте канал игроков. Настройте число зомби. Сделайте резервную копию. Затем повторите проверку на следующей орде: проблемы такого рода воспроизводимы, и одна ночь достаточно показательна, чтобы понять, помогли ли изменения.
Полезно вести небольшой журнал: дата орды, число игроков, число зомби, замеченные лаги и загрузка процессора. Через несколько недель по этим записям видно, насколько нагрузка растёт со временем, и можно заранее планировать расширение ресурсов, а не реагировать на жалобы игроков в последний момент.
Что делать игроку, если сервер чужой
Если вы не администратор, выберите сервер с подходящим пингом и ограничением числа игроков. Переполненные серверы чаще испытывают проблемы в ночи орд. Прочитайте описание сервера: там обычно указаны настройки орд, размер карты и правила.
Если лаги на орде начинаются после определённого числа игроков, сообщите об этом администратору с конкретными цифрами. Со своей стороны подключитесь по кабелю, снизьте графику и закройте фоновые программы, чтобы не добавлять собственную нагрузку. Если у вас есть друзья, предложите им играть на одном сервере и собираться вместе: командная игра на базе распределяет нагрузку и снижает вероятность того, что вы окажетесь в одиночку в центре толпы при лагающем сервере.