RE:NODE

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

Выделенный сервер Barotrauma и моды

Как запустить выделенный сервер Barotrauma: установка, serversettings.xml, порты 27015 и 27016, права и ранги, консольные команды, LocalMods и сохранения кампании.

0 прочтений

Выделенный сервер Barotrauma скачивается бесплатно (Steam app 1026340, анонимный вход) в сборках для Linux и Windows - DedicatedServer и DedicatedServer.exe. Его настройки лежат в serversettings.xml в папке сервера, права - в Data/clientpermissions.xml, включённые моды - в config_player.xml. По умолчанию он слушает UDP 27015 для игры и UDP 27016 для Steam query. Сервер лёгкий - 1-2 GB памяти и одно-два ядра тянут полный экипаж из шестнадцати игроков, - так что работает ли сервер Barotrauma, решает конфигурация: кто какие права получает, какие моды есть у всех и как сохраняется кампания.

Как устроены серверы Barotrauma#

Barotrauma - игра на раунды. Экипаж садится в подлодку, выполняет миссию (или отрезок кампании), и раунд заканчивается в лобби. Выделенный сервер - это лобби, которое доступно всегда и в котором ни один игрок не несёт роль хоста, и по сравнению с хостингом из игры это меняет три вещи:

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

Режимы игры - Sandbox, Mission (разовые раунды), Multiplayer Campaign (постоянный прогресс, деньги и подлодка, которую вы со временем улучшаете) и PvP. Предатели, система кармы и голосования за подлодки и режимы - всё это настройки сервера, и они формируют сообщество сильнее любого выбора железа.

Какой сервер вы запускаете

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

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

Публичному серверу миссий нужно обратное. Раунды должны начинаться сами, потому что ни на кого нельзя положиться в том, что он нажмёт Start. Голосование за подлодку и режим даёт незнакомцам голос, не давая им власти. Карму стоит включить, потому что заваренные двери, затопленные реакторы и огонь по своим - повседневный гриферинг на публичных серверах Barotrauma, и карма справляется с большей его частью раньше, чем заметит модератор. Предатели - дело вкуса: они часть того, что делает Barotrauma запоминающейся, и они же быстрее всего отпугивают новичков. Многие публичные серверы включают предателей по объявленному расписанию или держат для них отдельный сервер, чтобы игроки знали, во что ввязываются.

Публичную кампанию вести хорошо сложнее всего. Прогресс принадлежит тем, кто случайно оказался онлайн, деньги могут потратить люди, которые завтра уйдут, а один неудачный раунд может потопить подлодку, которую постоянные игроки неделями улучшали. Лучше всего это работает с сообществом по принципу whitelist - паролем, которым делятся в Discord, - а не с открытым листингом.

Укажите выбор в имени сервера. «Campaign, no traitors, EU» за две секунды говорит игроку, стоит ли заходить, и избавляет вас от лобби, полного людей, ожидающих чего-то другого.

Требования и потребление ресурсов#

Сервер Barotrauma - один из самых лёгких, что вам придётся запускать. Ресурсы уходят на физику, ИИ существ и NPC и сеть; мир - это один уровень на раунд, генерируемый заново.

ЭкипажRAMCPUПримечания
2-6 игроков, ванилла1 GB1 ядроНебольшой приватный экипаж
8-16 игроков, ванилла1.5-2 GB1-2 ядраТипичный сервер сообщества
16 игроков, крупные моды2-4 GB2 ядраКонтентные моды добавляют памяти
  • CPU: симуляцию тянет одно быстрое ядро. Дороже всего обходятся большие подлодки с множеством устройств и проводки и уровни, полные существ.
  • Диск: сервер занимает несколько гигабайт; моды и подлодки добавляют к этому.
  • Сеть: требования скромные, но задержка влияет на ощущения от боя и ремонта. Что измерять, описано в статье Задержка, джиттер и потеря пакетов.

Шестнадцать игроков - обычный максимальный экипаж. В модах и некоторых настройках бывают значения и больше, но подлодки и миссии игры рассчитаны на экипажи до такого размера.

Установка и первый запуск#

В Linux:

bash
$ steamcmd +force_install_dir /home/barotrauma/server +login anonymous +app_update 1026340 validate +quit$ cd /home/barotrauma/server$ ./DedicatedServer

В Windows запускайте DedicatedServer.exe. Как поддерживать установку в актуальном состоянии, описано в статье Что такое SteamCMD, и здесь это важно: версия сервера Barotrauma должна в точности совпадать с версией клиента.

Первый запуск записывает serversettings.xml со значениями по умолчанию и открывает лобби. Корректно остановите сервер (кнопкой остановки в панели или собственной командой выхода консоли - help её покажет), отредактируйте настройки и запустите снова. Сервер записывает настройки обратно, когда их меняют через игру, так что редактируйте при остановленном сервере.

serversettings.xml#

Файл - это один элемент serversettings, настройки которого заданы атрибутами. Сокращённый пример тех частей, которые вы будете править:

serversettings.xml
<serversettings  name="Europa Salvage Co."  public="true"  port="27015"  queryport="27016"  maxplayers="12"  password=""  enableupnp="false"  autorestart="false"  startwhenclientsready="false"  allowspectating="true"  karmaenabled="true" />

Что делают важные атрибуты:

АтрибутПо умолчаниюЧто делает
nameобщееИмя в списке серверов
public-Публиковать сервер в общем списке
port27015Игровой порт, UDP
queryport27016Порт Steam query, UDP
maxplayers-Слоты для игроков
passwordпустоПароль на вход
enableupnp-Проброс портов на роутере; выключите на арендованном сервере
autorestartfalseАвтоматически запускать раунды по таймеру
startwhenclientsreadyfalseЗапускать, когда готово достаточно игроков
allowspectating-Давать опоздавшим наблюдать
karmaenabled-Система кармы против гриферов

В файле гораздо больше атрибутов - настройки предателей, правила голосования, режим выбора подлодки, разрешённые и запрещённые предметы, поведение респауна и многое другое, - и их набор растёт с обновлениями. Большинство из них проще менять в игре, на экране настроек сервера, игроку с нужными правами; затем сервер записывает их в файл. Напрямую правьте файл ради сетевых настроек и всего, что хотите закрепить до прихода первого игрока.

Порты и подключение#

ПортПротоколНазначение
27015UDPИгровой трафик (port)
27016UDPSteam query - список серверов (queryport)

Оба должны быть открыты, и оба - UDP. Если хостинг выдаёт другие номера, выставьте port и queryport соответственно. В статье Порты игровых серверов объясняется, почему сервер может быть в списке, но отказывать в подключении, или наоборот.

Игроки находят публичный сервер во внутриигровом списке серверов. К приватному серверу можно подключиться по адресу и порту через прямое подключение. Если список показывает сервер, но подключение отваливается по таймауту, проблема в игровом порту; если прямое подключение работает, а сервера нет в списке, - в порту query.

Права, ранги и консольные команды#

В Barotrauma полноценная система прав, и это хорошо, потому что на выделенном сервере, где права никому не выданы, некому им управлять.

Права выдаются каждому клиенту отдельно и хранятся в Data/clientpermissions.xml. Пресеты рангов - например Moderator и Admin - объединяют наборы прав и лежат в Data/permissionpresets.xml. Отдельные права включают управление раундами, выбор подлодок и режимов, кик, бан, управление настройками и использование консольных команд, причём право на консольные команды можно ограничить списком конкретных команд.

Проще всего назначить первого админа из консоли сервера:

code
giverank PlayerName admin

После этого админы могут управлять остальными прямо в игре через список игроков: щёлкните правой кнопкой по игроку, выдайте ранг или отдельные права, и сервер их сохранит.

Команды, которые вводятся в консоли сервера (или в игре игроком с правами на консоль):

КомандаДействие
helpСписок команд или подробности по одной
giverank <client> <rank>Выдаёт клиенту пресет ранга
giveperm <client> <permission>Выдаёт одно право
revokeperm <client> <permission>Забирает одно право
showperm <client>Показывает права клиента
kick <client>Кикает игрока
ban <client>Банит игрока

Набор команд большой и меняется между версиями; эталон для вашей сборки - help. Баны сохраняются в данных сервера, так что переживают перезапуски.

На публичном сервере продумывайте права слоями: голосовать могут все, проверенные постоянные игроки могут запускать раунды и выбирать подлодки, модераторы могут кикать, а банить или менять настройки - очень немногие. Подробнее о такой структуре - в статье Правила сервера, модерация и команда, а система кармы справляется с обычным гриферингом - заваренными дверями, стрельбой по экипажу - без присутствия админа.

Моды и контент-пакеты#

Моды Barotrauma - это контент-пакеты: папки с filelist.xml, описывающим их содержимое. На выделенном сервере:

  1. Скачайте мод - на клиенте подпишитесь на него в Steam Workshop и скопируйте скачанную папку или возьмите его у автора.
  2. Положите папку в каталог сервера LocalMods.
  3. Включите его в config_player.xml, где сервер хранит список включённых пакетов.
  4. Запустите сервер и следите в логе за ошибками контента.

Список включённых пакетов выглядит так:

config_player.xml
<contentpackages>  <corepackage path="Content/ContentPackages/Vanilla.xml" />  <regularpackages>    <package path="LocalMods/ExampleMod/filelist.xml" />  </regularpackages></contentpackages>

Имя папки - заглушка; используйте собственную папку мода. Порядок важен - пакеты ниже в списке перекрывают те, что выше, когда меняют одно и то же, - так что ставьте большие переработки первыми, а мелкие патчи после них.

Когда игроки подключаются, игра сравнивает их контент с серверным и предлагает скачать недостающее - из Workshop или напрямую с сервера. Поэтому Barotrauma - одна из самых простых игр для мультиплеера с модами, но между новым игроком и его первым раундом всё равно стоит загрузка. Держите список компактным на публичных серверах.

Правила, которые спасают сервер с модами:

  • Обновляйте моды вместе с игрой. Обновление игры может сломать моды, меняющие основной контент. Не обновляйте сервер с модами в ту же минуту, когда выходит патч.
  • Не удаляйте мод посреди кампании. Сохранение кампании, ссылающееся на модовую подлодку или предметы, может без него не загрузиться.
  • Свои подлодки - это тоже моды или файлы .sub в папке подлодок; чтобы подлодку можно было выбрать, у всех должен быть один и тот же файл.

Общий порядок действий для сервера, который не запускается после обновления, есть в статье Что делать, когда обновление мода всё ломает.

Сохранения кампании и backup#

Мультиплеерная кампания - то, что действительно стоит защищать на сервере Barotrauma. Сервер сохраняет прогресс кампании - деньги, репутацию, подлодку и её улучшения, экипаж - в файл сохранения в папке мультиплеерных сохранений игры внутри каталога пользовательских данных, между раундами и по завершении кампании. Упавший раунд обычно стоит прогресса этого раунда, а не кампании.

  • Делайте backup папки сохранений кампаний по расписанию и перед каждым обновлением. Обновления иногда меняют работу с сохранениями, а кампания, которая не загружается, - потерянная кампания.
  • Бэкапьте и `serversettings.xml`, `config_player.xml` и файлы прав. С ними и списком модов свежая установка снова становится вашим сервером.
  • Храните копии вне машины. Почему копии рядом с оригиналом не считаются, объясняется в статье Backup, которые действительно восстанавливаются.

Несколько кампаний могут существовать бок о бок, и лобби позволяет игроку с правами выбрать, какую загрузить. Называйте их понятно; «Campaign 3» через шесть недель ничего не будет значить.

На RE:NODE у каждого игрового сервера есть SFTP и редактор XML-файлов, слоты backup, которые хранятся вне машины и восстанавливаются одной кнопкой, и вкладка Schedules, которая умеет связать backup и перезапуск в цепочку. Barotrauma нет в каталоге, так что это описание панели, а не тарифа для Barotrauma.

Решение проблем#

Игроки ждут в лобби, и ничего не происходит. Ни у кого нет права запускать раунд. Выдайте кому-нибудь ранг или включите autorestart или startwhenclientsready.

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

Игрокам отказывают из-за несовпадения версии или контента. Игра обновилась, а сервер нет, или отличается какой-то мод. Обновите сервер через SteamCMD и проверьте список включённых пакетов.

Сервер падает при запуске после добавления мода. Мод сломан или несовместим с этой версией. Удалите его строку из config_player.xml и запустите снова.

Изменённые в файле настройки теряются. Вы правили файл при работающем сервере, и он сохранил свою копию. Остановите, отредактируйте, запустите.

Раунды лагают на большой подлодке. Слишком много устройств и проводов или уровень, полный существ, на одном ядре. Меньшая подлодка или меньше тяжёлых модов помогут больше, чем память. Почему - объясняется в статье CPU или RAM для игровых серверов.

FAQ#

Сколько игроков вмещает сервер Barotrauma?

Шестнадцать - обычный максимальный экипаж, и подлодки с миссиями рассчитаны на экипажи до такого размера. Большинство серверов сообщества работают на 8-16 игроков.

Нужно ли игрокам скачивать моды вручную?

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

Как сделать себя админом на выделенном сервере?

Из консоли сервера выдайте своему игроку ранг admin через giverank. После этого можно управлять всеми остальными из списка игроков в игре.

Где сервер хранит прогресс кампании?

В папке мультиплеерных сохранений внутри каталога пользовательских данных игры на сервере. Бэкапьте эту папку, а не только установку сервера.

Нужен ли серверу Barotrauma аккаунт Steam?

Нет. Он скачивается анонимно через SteamCMD. Игра нужна игрокам.


Комментарии

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

0/2000