RE:NODE

Руководства11 мин чтения

Кроссплей на сервере Valheim и игроки Xbox

Как работает кроссплей Valheim на выделенном сервере: флаг -crossplay, код подключения, ID админов с префиксом платформы, настройки приватности Xbox и моды.

0 прочтений

Чтобы пустить игроков с Xbox и Game Pass на выделенный сервер Valheim, запустите его с аргументом -crossplay. Тогда сервер регистрирует сессию в сервисе PlayFab от Microsoft, выводит в лог шестизначный код подключения, и по этому коду может зайти любой игрок в Steam, Microsoft Store или на Xbox Series X|S. Цена невелика, но она есть: сессии кроссплея идут через relay, в списках админов и банов нужны ID с префиксом платформы, код подключения меняется при каждом перезапуске, а любой мод, который игрокам пришлось бы ставить, отрезает консольных игроков. В этой статье - как это работает, как настроить и когда лучше оставить кроссплей выключенным.

Общая настройка сервера - параметры запуска, порты, папка сохранений - описана в руководстве по выделенному серверу Valheim. Здесь речь только о кроссплее.

Что на самом деле меняет кроссплей#

Без кроссплея выделенный сервер Valheim - это игровой сервер Steam. Он регистрируется на мастер-сервере Steam, появляется в списке community-серверов на базе Steam и принимает подключения клиентов Steam напрямую на игровой порт. Игроки определяются по 17-значному SteamID64.

С -crossplay сервер переключается на другой сетевой бэкенд, построенный на PlayFab - сервисе Microsoft, который версии для Xbox и Microsoft Store используют для мультиплеера. Из этого следуют три вещи:

  • Зайти могут игроки с любой платформы. Steam, Microsoft Store и Game Pass на ПК, а также Xbox Series X|S - все играют на одном сервере.
  • Главным способом входа становится код подключения. На консоли нельзя ввести в игре IP-адрес и порт, поэтому сервер публикует короткий код.
  • Идентификаторы получают префикс платформы. Сервер видит Steam_76561198012345678 или Xbox ID пользователя со своим префиксом, а не голый SteamID, и во всех файлах списков должна быть именно такая форма.

Что не меняется: файл мира, модификаторы мира, лимит в десять игроков, обязательный пароль и поведение сохранений. Мир, созданный на сервере только для Steam, загружается на сервере с кроссплеем и обратно без всякой конвертации.

UDP 2456шестизначный кодИгрок Steamпо IP или кодуXbox / Game Passпо кодуPlayFabсессия и relayСервер Valheim-crossplayФайл мирабез изменений
Два пути на сервер Valheim с кроссплеем

Как его включить#

На своей машине кроссплей - это один аргумент, добавленный к обычной строке запуска:

bash
$ ./valheim_server.x86_64 -nographics -batchmode \    -name "Longship Crew" -port 2456 -world "Midgard" \    -password "herring-barrel-42" -public 1 -crossplay

Значения у него нет - аргумент либо есть, либо его нет. Уберите его и перезапустите сервер, чтобы вернуться к режиму только для Steam. В файле мира никак не записывается, в каком режиме он запускался последним.

У хостинга с панелью то же самое - это поле на вкладке Startup. На серверах Valheim в RE:NODE кроссплей включён сразу, потому что в большинстве компаний, которые спрашивают, есть хотя бы один человек на Game Pass; если у вас таких нет, выключение - это изменение на вкладке Startup и перезапуск.

Когда сервер поднимется, ищите в логе строку сессии. В ней есть код подключения:

code
Session "Longship Crew" with join code 483920 and IP 203.0.113.10:2456 is active with 0 player(s)

Точная формулировка может меняться от версии к версии игры, но код в ней есть всегда. Если кода подключения нет вовсе, сервер не зарегистрировался в PlayFab; почему так бывает, разобрано ниже в разделе про неполадки.

Как зайти с каждой платформы#

У каждой платформы свой путь на один и тот же сервер.

ПлатформаКак зайтиПримечания
SteamПо IP, через список серверов или по коду подключенияIP - самый надёжный вариант
Microsoft Store / Game Pass PCПо коду подключения или через список серверовИдёт через PlayFab
Xbox Series X/SПо коду подключенияНа консоли нельзя ввести IP

На всех платформах код подключения вводится в разделе Join Game главного меню, в поле для добавления сервера или кода. После ввода игрока спрашивают пароль сервера - точно так же, как в Steam.

Игроки Steam на сервере с кроссплеем по-прежнему могут нажать Add Server, ввести 203.0.113.10:2456 и подключиться напрямую. Это выручает, когда PlayFab тормозит, и это одна из причин держать игровые порты открытыми, хотя консольные игроки к ним напрямую не обращаются. В статье порты игровых серверов объясняется, зачем серверу и игровой порт, и порт для запросов, и для чего каждый из них.

Список серверов действительно показывает серверы с кроссплеем, но при тысячах записей и слабом фильтре это наименее надёжный путь для кого угодно. Дайте компании код.

Настройки аккаунта Xbox, которые мешают подключению#

Самая частая жалоба на кроссплей - «у игрока с Xbox ошибка, а у всех остальных всё нормально». Причина почти всегда в аккаунте Xbox, а не в сервере.

  • Сетевая игра между платформами. В настройках приватности Xbox есть параметр, разрешающий аккаунту участвовать в cross-network play. Если он заблокирован, игрок не может зайти в сессию, где есть игроки с ПК. Он находится в настройках приватности и безопасности в сети, а точный путь в меню меняется с обновлениями интерфейса.
  • Детские аккаунты. Детскому аккаунту в семейной группе Microsoft нужно, чтобы родитель разрешил мультиплеер и cross-network play. Родитель меняет это в семейных настройках, а не на консоли, которой пользуется ребёнок.
  • Состояние сети Xbox. Если сервисы Xbox работают с перебоями, сторона кроссплея на PlayFab может отказать, а игроки Steam, заходящие по IP, этого не заметят. Такая картина - в Steam всё хорошо, у всех остальных ошибка - указывает на сервис, а не на ваш сервер.
  • Game Pass на ПК. Версии Microsoft Store и Game Pass на ПК идут тем же путём через PlayFab, что и Xbox, и используют приложение Xbox для входа. Если в приложении Xbox выполнен вход не в тот аккаунт, который ожидает игрок, игра использует именно его.

Ничего из этого не видно в логе сервера, кроме отсутствия попытки подключения. Если попытка игрока с Xbox вообще не появляется в логе, проверьте его аккаунт, прежде чем разбираться с сервером.

Админы, баны и белые списки с ID платформ#

На сервере только для Steam файлы adminlist.txt, bannedlist.txt и permittedlist.txt содержат голые SteamID64. На сервере с кроссплеем сервер определяет игроков по ID с префиксом платформы, и файлы списков должны им соответствовать.

adminlist.txt
// Steam player on a crossplay serverSteam_76561198012345678// Xbox or Game Pass player, as it appears in the server logXbox_2535412345678901

Надёжнее всего не вводить ID по памяти. Пусть каждый игрок один раз зайдёт, а затем возьмите его ID из лога сервера, где каждое подключение записано с тем идентификатором, с которым сервер будет сверяться. Скопируйте его точно, вместе с префиксом. Если сервер переключается между режимом кроссплея и режимом только для Steam, держите в файле обе формы ID админа из Steam, чтобы права сохранялись в любом случае.

Файлы перечитываются во время работы сервера, так что для добавления админа перезапуск не нужен. Непустой permittedlist.txt превращает сервер в белый список для всех, на всех платформах; для закрытой компании это разумный выбор, но если забыть добавить ID игроков с Xbox, их легко запереть снаружи, даже не заметив.

Сами права админа - это короткий ванильный список: kick, ban, unban, banned, save и ещё несколько, которые вводятся во внутриигровой консоли, открываемой по F5. Эта консоль рассчитана на клавиатуру ПК - в Steam её нужно включить параметром запуска -console, - так что на практике админскую работу делает игрок с ПК даже на сервере, где почти все на Xbox. Полная таблица команд - в руководстве по выделенному серверу.

Моды и кроссплей#

Именно этот компромисс решает дело для большинства компаний.

Игроки с Xbox не могут ставить моды, а версии Microsoft Store и Game Pass на ПК в лучшем случае неудобно модифицировать. Экосистема модов Valheim построена на BepInEx, и большинство модов, меняющих геймплей, нужно ставить и на сервер, и на клиент одной и той же версии. Поэтому:

Тип модаРаботает с игроками Xbox?
Только на сервере (бэкапы, мосты в Discord, серверные утилиты)Да - консольные игроки их не видят
Только на клиенте (интерфейс, доработки карты)Да - каждый игрок с ПК решает сам
На обеих сторонах (контент, правила, новые предметы)Нет - консольные игроки не могут повторить список
Проверка версий (сверка модов при подключении)Нет - она отклонит клиент без модов

Библиотеки модов, которые проверяют совпадение версий при подключении, сразу кикнут игрока с Xbox без модов. Если компания с консольными игроками хочет моды, единственный рабочий вариант - ограничиться колонкой «только на сервере». В статье моды Valheim с BepInEx на сервере разобрано, какие моды к какой колонке относятся и как их устанавливать.

Если вся ваша компания на ПК, этот компромисс исчезает, а вместе с ним и большая часть смысла включать кроссплей.

Производительность и цена relay#

Сессии кроссплея идут через relay, а не напрямую от игрока к вашему серверу. Для игроков из того же региона, что и сервер, это добавляет немного задержки - обычно несколько миллисекунд, иногда больше, если выбранный relay не близок ни к одной из сторон. Для большинства компаний в обычной игре это незаметно.

Значение это имеет из-за модели владения зонами в Valheim: игрок, первым вошедший в область, симулирует её для всех. Игрок с Xbox на соединении через relay, первым зашедший на арену босса, становится источником движения каждого монстра для всех остальных. Если бой ощущается «ватным» только тогда, когда рядом конкретный игрок, дело именно в этом, и практическое решение - пусть в людные места первым заходит игрок с лучшим соединением. Подробно владение зонами объясняется в статье лаги на сервере Valheim.

Компания только из Steam-игроков ничего не получает от кроссплея и немного теряет: лишний бэкенд, ID с префиксами и код подключения, зависящий от перезапусков. Если никто в компании не играет на Xbox или через Game Pass, оставьте его выключенным.

Несовпадение версий между платформами#

Сервер Valheim и его клиенты должны работать на одной и той же версии игры. На сервере с кроссплеем это значит, что клиенты Steam, Microsoft Store и Xbox должны быть на той версии, на которой работает сервер.

Iron Gate обычно выпускает патчи на всех платформах одновременно, но сборки для Xbox и Microsoft Store могут выйти позже, чем в Steam, если сертификация затянулась. В этом промежутке не могут подключиться либо игроки Steam, либо игроки Xbox - в зависимости от того, на какой версии работает сервер. Практическое правило: в день патча убедитесь, что обновление вышло на всех платформах, прежде чем перезапускать сервер на него.

Вторая ловушка с версиями - публичная тестовая ветка. Сервер, обновлённый до публичной тестовой сборки, принимает только игроков на той же тестовой сборке, а консольным игрокам она недоступна. Держите сервер с кроссплеем на ветке по умолчанию.

Перед любым обновлением сделайте backup. На RE:NODE слоты для бэкапов входят в каждый тариф Valheim, а восстановление - одна кнопка, так что обновление, разделившее компанию, можно откатить без тикета. Полный порядок действий - в статье бэкапы сервера Valheim и повреждение мира.

Устранение неполадок#

В логе нет кода подключения. Сервер не зарегистрировался в PlayFab. Проверьте, что -crossplay действительно есть в строке запуска (в панели - что переменная сохранилась), и перезапустите. Если не помогло, возможно, у сервиса PlayFab перебои; игроки Steam тем временем могут заходить по IP.

У игрока с Xbox общая ошибка подключения. Проверьте его настройку приватности для cross-network play, затем - не детский ли у него аккаунт, затем - состояние сети Xbox. Если его попытка вообще не доходит до лога сервера, блокировка на его стороне.

Админ потерял права после включения кроссплея. В списке админов записан голый SteamID. Добавьте форму с префиксом Steam_ из лога сервера.

Код подключения работал вчера, а сегодня нет. Сервер перезапустился, и код сменился. Возьмите новый из лога или консоли панели.

Игроки Steam подключаются, остальные - нет. Такая картина указывает на путь через PlayFab: на сервис или на аккаунты Xbox. С портами у вас всё в порядке, иначе игроки Steam тоже не смогли бы зайти по IP.

Игрока с Xbox кикает сразу после подключения. Мод на сервере проверяет список модов клиента. Уберите моды, проверяющие версии, или смиритесь с тем, что сервер только для ПК.

FAQ#

Нужно ли игрокам Xbox что-то особенное, чтобы зайти на сервер с кроссплеем?

Им нужны актуальная версия игры, шестизначный код подключения, пароль сервера и аккаунт Xbox, в котором разрешена cross-network play. Ничего устанавливать не нужно, а моды на консоли невозможны.

Можно ли задать серверу постоянный код подключения?

Нет. Код генерируется каждый раз, когда сервер регистрирует сессию, и меняется при перезапуске. Игроки Steam всегда могут использовать адрес; консольным игрокам нужен текущий код.

Становится ли сервер медленнее с кроссплеем?

Сам сервер - нет, заметной разницы нет. У игроков через relay задержка может быть немного выше, и это важнее всего, когда они владеют загруженной зоной. Компании только из Steam-игроков лучше оставить кроссплей выключенным, потому что он ничего не даёт.

Может ли игрок с Xbox быть админом?

Его ID можно внести в adminlist.txt, и сервер выдаст права, но админская консоль открывается клавишей на клавиатуре и по сути является функцией ПК. На практике кики и баны выполняет игрок с ПК.

Можно ли перенести наш мир с Xbox на выделенный сервер?

Не так просто, как мир из Steam. Сохранения Xbox и Game Pass хранятся в контейнерном формате, а не в виде обычных файлов .db и .fwl. В статье как загрузить сохранение Valheim на сервер описано, что возможно и где искать актуальный способ.


Комментарии

Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.

0/2000