Как игроки попадают в один мир
В Terraria мир обычно создаёт один из игроков или отдельный выделенный сервер, а остальные подключаются к нему. Есть два основных способа входа: через список друзей платформы и по IP-адресу с портом. Второй вариант требует, чтобы порт был доступен снаружи, и именно он вызывает большинство проблем у новичков.
По умолчанию используется порт 7777. Если друг не может присоединиться, сначала выясните, какой способ вы применяете, и не смешивайте их: инструкции для входа по IP не помогут, если вы приглашаете через платформу, и наоборот.
Отдельно учтите, что мир хранится на компьютере хоста. Пока хост в сети, мир доступен, а при выходе хоста игра для остальных заканчивается.
Если играете по списку друзей платформы, соединение идёт через её инфраструктуру, и проброс на роутере не нужен. Этот вариант надёжнее для тех, у кого нет отдельного внешнего адреса, но он зависит от доступности самих сервисов платформы, а также от настроек приватности в профиле каждого игрока.
Проброс порта и типичные ошибки
Чтобы принимать подключения по IP, на роутере нужно перенаправить порт 7777 на локальный адрес компьютера хоста. Присвойте компьютеру постоянный локальный адрес, иначе после перезагрузки правило перестанет работать. Проверьте, что брандмауэр разрешает игре входящие соединения.
Частая ловушка — провайдер, выдающий общий адрес нескольким клиентам сразу. В таком случае проброс на вашем роутере не помогает, потому что внешний адрес не принадлежит вам одному. Признак: у роутера в панели один адрес, а сервисы проверки показывают другой. Решение — попросить у оператора отдельный адрес либо использовать вход через список друзей платформы или размещение на арендованном сервере.
Не открывайте порты «на всякий случай» и не включайте режим DMZ: он оставляет компьютер без защиты.
Задержка в кооперативе и что на неё влияет
Пока игроков немного, сама игра требует от сети совсем немного. Лаги возникают, когда мир крупный, в нём много активных объектов, идёт событие с большим числом врагов, а хост играет на слабом компьютере или по Wi-Fi. Признаки: враги дёргаются, блоки восстанавливаются после разрушения, предметы падают с задержкой.
Оцените отдельно два фактора. Сетевой фактор — пинг остальных игроков до хоста. Вычислительный фактор — нагрузка на процессор хоста. Если у хоста процессор загружен почти полностью, лаги будут, даже если сеть идеальна. Закройте другие программы и, если возможно, запустите выделенный сервер отдельным процессом.
Практические шаги для стабильной игры
Сначала подключите хоста по кабелю. Затем проверьте порт с внешнего устройства, например с телефона в мобильной сети. Ограничьте число игроков до разумного значения для вашего оборудования. Уменьшите число одновременно активных механизмов и ловушек, которые постоянно создают события. Если мир очень старый и большой, сделайте резервную копию и оцените, не стало ли хуже после обновления игры.
После каждого изменения играйте минимум полчаса: некоторые проблемы проявляются только после накопления событий.
Когда стоит перенести мир на отдельный сервер
Если друзей пять-восемь, а хост играет и одновременно держит мир, вычислительная и сетевая нагрузка становится ощутимой. Тогда разумно вынести мир на отдельную машину: старый компьютер, мини-ПК или арендованный сервер. Он не занят игровым клиентом и работает круглосуточно, так что играть можно и без хоста.
Учтите: для такого сервера всё то же самое, порт 7777 и стабильный канал, но теперь важна скорость отдачи, а не только задержка.
Наконец, обратите внимание на расписание: пока сервер работает круглосуточно, автоматические обновления системы и перезагрузки по ночам могут разрывать сессии. Отключите автоматическую перезагрузку в часы, когда друзья обычно играют, и настройте сохранение мира на разумный интервал.
Диагностика по симптомам: три типичные ситуации
Первая ситуация: игра «замирает» на секунду и возвращается. Обычно это кратковременная потеря пакетов у хоста, чаще всего из-за Wi-Fi или фоновой загрузки. Вторая: блоки, которые вы разрушили, возвращаются на место. Так проявляется расхождение состояний между клиентом и хостом, и оно тем сильнее, чем выше пинг. Третья: постоянный высокий пинг у одного игрока при нормальном у остальных, значит, проблема на его маршруте.
Для каждой ситуации свой первый шаг. В первом случае проверьте канал хоста, во втором сравните пинг всех участников, в третьем предложите проблемному игроку сменить тип подключения. Так вы не тратите время на бесполезные действия.