MAATRIX GAMES / Блог / Как поднять сервер Barotrauma: пошаговая инструкция

Как поднять сервер Barotrauma: пошаговая инструкция

MAATRIX GAMES

Затопило отсек, реактор заглох, а половина команды всё ещё разбирается с интерфейсом — знакомая картина для тех, кто пробовал гонять Barotrauma по локалке через Hamachi. Рано или поздно упираешься в лаги, разрывы и полное отсутствие возможности оставить сервер работать без своего компьютера. Решение простое: свой dedicated-сервер на VPS, который живёт 24/7 и не зависит от того, кто из игроков сейчас онлайн. Разберём весь путь — от чистой машины до работающего сервера с автозапуском.

Системные требования и что понадобится

Barotrauma — не самая прожорливая игра для сервера, но и не игрушка на 512 МБ. Симуляция физики воды, электричества и AI существ работает даже без визуального рендера, так что процессору и памяти есть чем заняться.

Ориентир по железу:

  • RAM: от 3 ГБ — этого хватит на небольшой экипаж (4-6 игроков) без модов. С крупными сборками модов и подсабмаринами закладывайте запас в 1-2 ГБ сверху.
  • CPU: 2 ядра как минимум, желательно с хорошей однопоточной производительностью — симуляция подлодки в основном упирается в один поток.
  • Диск: 10-15 ГБ под сам сервер, моды из Steam Workshop и логи.
  • ОС: Linux (Ubuntu/Debian) — самый предсказуемый вариант для dedicated-сервера, но бинарник Barotrauma Dedicated Server есть и под Windows.

Понадобится доступ по SSH (root или sudo-пользователь), установленный curl или wget, и открытые порты у провайдера — если это VPS с файрволом на уровне панели, порт придётся открыть отдельно (см. ниже раздел про проброс портов).

Готовые сборки под Barotrauma на VPS с уже открытыми портами и панелью управления избавляют от возни с зависимостями SteamCMD — но если хочется руками, дальше пошагово. Сам процесс установки через SteamCMD у большинства Steam-игр похож — если параллельно поднимаете ещё и сервер Rust, шаги с зависимостями будут почти идентичны.

Установка сервера через SteamCMD

Barotrauma распространяется через Steam, поэтому сервер ставится через SteamCMD — консольный клиент Steam для загрузки контента без графического интерфейса.

Сначала ставим зависимости и сам SteamCMD (пример для Ubuntu/Debian):

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl unzip
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" -o steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz

Дальше запускаем SteamCMD и через него скачиваем Barotrauma Dedicated Server (Steam App ID 1026340):

./steamcmd.sh +force_install_dir /home/steam/barotrauma +login anonymous +app_update 1026340 validate +quit

Barotrauma Dedicated Server доступен анонимно, отдельный аккаунт Steam для него не нужен — это касается именно серверной части, не путайте с самой игрой, которую покупают в Steam для клиента. Загрузка обычно занимает несколько минут в зависимости от канала провайдера — точное время зависит от вашего VPS и текущей нагрузки на CDN Steam, так что ориентируйтесь по прогресс-бару, а не по чужим цифрам.

После завершения app_update в папке /home/steam/barotrauma появится исполняемый файл сервера и сопутствующие библиотеки.

Поднять сервер Barotrauma за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Первый запуск и генерация конфигов

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

cd /home/steam/barotrauma
chmod +x ./DedicatedServer
./DedicatedServer

При первом запуске сервер спросит имя (если не задано заранее) и создаст рядом с исполняемым файлом serversettings.xml, а также файлы разрешений и списка модов. Дайте процессу подняться до сообщения о том, что сервер слушает порт, затем остановите его комбинацией Ctrl+C — конфиги уже сохранены, дальше редактируем их напрямую, без интерактивного мастера.

Если сервер падает сразу после старта — почти всегда это нехватка библиотек 32-бит (шаг lib32gcc-s1/lib32stdc++6 из установки) или запуск не из той директории, где лежат ассеты. Проверьте лог в консоли: там обычно прямо указано, какого файла или библиотеки не хватает.

Настройка serversettings.xml

Это основной конфиг, где задаётся всё поведение сервера. Открываем его любым текстовым редактором:

nano serversettings.xml

Ключевые параметры, которые обычно правят в первую очередь:

<ServerSettings
  ServerName="Мой сервер Barotrauma"
  ServerPort="27015"
  QueryPort="27016"
  MaxPlayers="8"
  Password=""
  GameStartWhenFull="false"
  AutoRestart="true"
  RandomizeSeed="true"
/>
  • ServerName — имя, которое видно в списке серверов.
  • ServerPort — игровой порт (по умолчанию 27015, при необходимости меняйте на свой).
  • QueryPort — порт для запросов Steam-мастер-сервера, обычно на единицу больше игрового.
  • MaxPlayers — лимит игроков в экипаже.
  • Password — пароль на вход, оставьте пустым для открытого сервера.
  • AutoRestart — автоматический рестарт раунда, когда все игроки готовы.

Выбор режима игры — Sandbox (свободная песочница без сюжета) или Campaign (кампания с прогрессом и деньгами экипажа) — задаётся отдельно при создании сессии через консоль сервера или в файле сохранения кампании, а не единственным флагом в serversettings.xml. Проще всего запустить сервер, подключиться клиентом с правами администратора и выбрать режим через игровое меню — сервер сам сохранит выбор для следующих запусков.

Обратите внимание: структура serversettings.xml менялась между крупными обновлениями Barotrauma, так что часть тегов у вас может называться иначе или лежать в отдельном файле рядом (например, настройки модов — в contentpackages.xml). Сверяйтесь с тем, что реально сгенерировалось у вас после первого запуска, а не только с этим примером.

Проброс портов и файрвол

Barotrauma работает через UDP, и если сервер стоит за файрволом или NAT, игроки просто не найдут его в списке или не смогут подключиться напрямую по IP.

На самом VPS (если используется ufw):

sudo ufw allow 27015/udp
sudo ufw allow 27016/udp
sudo ufw reload

Если провайдер даёт отдельную панель управления файрволом (это отдельный слой поверх ОС на многих VPS и хостингах игровых серверов), порты нужно открыть ещё и там — иначе правило ufw внутри системы ничего не даст, трафик срежет раньше. На хостингах с готовыми игровыми шаблонами порты под конкретную игру обычно открываются автоматически при создании сервера — это заметно экономит время по сравнению с ручной настройкой файрвола на голом VPS.

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

nc -vzu ВАШ_IP 27015

Если экипаж подключается не по прямому IP, а через список серверов Steam — убедитесь, что открыт именно QueryPort, иначе сервер не будет отображаться в браузере серверов, хотя прямое подключение по IP при этом может работать. Логика проброса та же, что и для сервера DayZ — отдельный игровой порт и отдельный порт запросов, оба обязательны.

Автозапуск и работа в фоне (systemd)

Держать SSH-сессию открытой ради того, чтобы сервер не падал — плохая идея. Правильный вариант — systemd-сервис, который поднимет Barotrauma при перезагрузке машины и перезапустит при падении процесса.

Создаём юнит:

sudo nano /etc/systemd/system/barotrauma.service

Содержимое:

[Unit]
Description=Barotrauma Dedicated Server
After=network.target

[Service]
Type=simple
User=steam
WorkingDirectory=/home/steam/barotrauma
ExecStart=/home/steam/barotrauma/DedicatedServer
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Включаем и запускаем:

sudo systemctl daemon-reload
sudo systemctl enable barotrauma
sudo systemctl start barotrauma

Смотреть логи сервера удобно через:

sudo journalctl -u barotrauma -f

Для обновлений сервера при выходе новых версий игры проще всего написать короткий скрипт, который останавливает сервис, гоняет app_update 1026340 validate через SteamCMD и снова стартует сервис — так вы не забудете накатить обновление вручную и не поймаете рассинхрон версий с клиентами, который в Barotrauma обычно жёстко блокирует подключение при несовпадении версии игры. Если уже настраивали автозапуск для сервера Project Zomboid, юнит-файл будет узнаваемым — меняется только путь и команда запуска.

Поднять сервер Barotrauma за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

Нужен ли аккаунт Steam для запуска dedicated-сервера?

Нет, Barotrauma Dedicated Server скачивается и запускается анонимно через SteamCMD, отдельная лицензия для сервера не требуется.

Почему сервер не виден в браузере серверов Steam, хотя запущен?

Чаще всего не открыт QueryPort — проверьте, что проброшены оба порта, игровой и query, а не только один из них.

Можно ли поставить моды из Steam Workshop на dedicated-сервер?

Да, через SteamCMD или через клиентскую подписку с последующим копированием файлов модов в папку сервера; список активных модов сервер хранит в отдельном файле контент-пакетов, который нужно синхронизировать между сервером и клиентами.

Что делать, если после обновления игры сервер не пускает старых клиентов?

Это несовпадение версий — Barotrauma жёстко проверяет версию клиента и сервера при подключении, обновите сервер до актуальной версии через SteamCMD (app_update 1026340 validate).

Сколько игроков потянет сервер на 3 ГБ RAM?

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