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

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

MAATRIX GAMES

Если вы гоняете Risk of Rain 2 регулярной командой и задолбались пересоздавать лобби через Steam-инвайты каждый раз, когда кто-то дисконнектится — вот решение. Dedicated-сервер держит мир открытым постоянно, не зависит от того, кто из вас включил компьютер, и не падает вместе с хостом на 30-й минуте забега. Разберём установку по шагам: от SteamCMD до автозапуска, без воды.

Кому вообще нужен выделенный сервер

Сразу честно: большинство людей играют в Risk of Rain 2 через обычный P2P — один игрок хостит лобби, остальные заходят по приглашению в Steam. Для разовой пробежки на 3-4 человек это проще и быстрее — не надо ничего разворачивать. Игра неплохо держит P2P-соединение, задержки для рогалика с видом сверху не так критичны, как в шутере.

Dedicated-сервер имеет смысл в трёх случаях: у вас постоянный состав, который играет несколько раз в неделю, и надоело ждать, пока хост "докачает" мод-лист; хост часто вылетает или у него слабый канал, и весь забег обрывается вместе с ним; либо вы держите сервер под мод-сборку (например, с ChallengeMode или пачкой QoL-модов через r2modman/Thunderstore), и хочется, чтобы конфигурация не зависела от того, чей это компьютер. Если это про вас — едем дальше.

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

Risk of Rain 2 — не самая тяжёлая игра для сервера, но и не самая лёгкая: движок Unity плюс процедурная генерация карт и активная симуляция монстров/лута требуют некоторого запаса.

  • RAM: от 2 ГБ на голый сервер без модов. С модами (особенно с крупными сборками вроде тех, что меняют генерацию мира или добавляют десятки новых предметов) закладывайте 3-4 ГБ.
  • CPU: 2 ядра достаточно для комнаты на 4-8 игроков. Больше игроков и активный спавн монстров на поздних стадиях забега (loop-режим) — процессор начинает ощущаться сильнее, чем память.
  • Диск: сама игра + сервер — около 5-8 ГБ, плюс место под SteamCMD и логи. SSD не обязателен, но HDD с высокой задержкой чтения может добавлять фризы при подгрузке карт.
  • ОС: Linux (Ubuntu/Debian) — стандартный выбор для dedicated-серверов, официально поддерживается через SteamCMD. Можно и на Windows Server, но команды ниже — под Linux.
  • Сеть: стабильный канал с открытым UDP-портом наружу. Для комнаты до 8 человек хватит скромного аплинка, порядка нескольких мегабит на игрока с запасом.

Если берёте VPS специально под это — 2 ГБ RAM это минимум, а не комфортный запас. Для сервера с модами и на будущее лучше сразу смотреть в сторону 4 ГБ, чтобы не upgrade'иться через неделю.

Поднять сервер Risk of Rain 2 за пару минут

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

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

Устанавливаем SteamCMD и качаем сервер

Дальше — на чистом Ubuntu/Debian через SSH.

Сначала подключаем 32-битную архитектуру (SteamCMD на Linux всё ещё тянет 32-битные зависимости) и ставим сам SteamCMD:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd lib32gcc-s1 lib32stdc++6 curl

Создаём отдельного пользователя под сервер — не гоняйте игровые процессы под root:

sudo adduser --disabled-password --gecos "" ror2
sudo su - ror2

Дальше от имени пользователя ror2 качаем сам dedicated-сервер по его app id:

steamcmd +force_install_dir /home/ror2/ror2server \
  +login anonymous \
  +app_update 1180760 validate \
  +quit

Скачивание займёт несколько минут в зависимости от канала. После завершения в /home/ror2/ror2server появится исполняемый файл сервера и папка с данными игры. Если апдейт оборвался или ругается на нехватку места — проверьте df -h, игре с ассетами и кэшем SteamCMD нужно с запасом гигабайт 8-10 свободных.

Настраиваем запуск: параметры и базовый конфиг

Dedicated-сервер Risk of Rain 2 настраивается через параметры командной строки при запуске — отдельного текстового конфига в духе server.cfg тут нет, всё передаётся флагами. Базовый запуск выглядит так:

cd /home/ror2/ror2server
./Risk\ of\ Rain\ 2.x86_64 \
  -batchmode -nographics \
  -dedicatedserver.port 27015 \
  -dedicatedserver.maxplayers 8 \
  -dedicatedserver.password "" \
  -dedicatedserver.public true \
  -dedicatedserver.name "Мой сервер RoR2"

Разберём по флагам:

  • -batchmode -nographics — обязательны на сервере без монитора, отключают попытку инициализировать графику.
  • -dedicatedserver.port — сетевой порт сервера, по умолчанию используется что-то в районе 27015; если поднимаете несколько серверов на одной машине, разносите порты вручную.
  • -dedicatedserver.maxplayers — лимит игроков в комнате (у игры мягкий кап, обычно комфортно играется до 8, дальше начинает штормить производительность и баланс сложности).
  • -dedicatedserver.password — пустая строка означает сервер без пароля; для закрытой команды поставьте свою фразу.
  • -dedicatedserver.public — публиковать ли сервер в списке серверов игры (true/false); если играете только своей командой по прямому подключению — ставьте false и не светите IP всем подряд.
  • -dedicatedserver.name — имя, которое видно в списке серверов и при подключении.

Полный и актуальный список флагов на конкретный патч удобно смотреть прямо у бинарника:

./Risk\ of\ Rain\ 2.x86_64 -help

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

Если играете с модами через r2modman/Thunderstore — сборку модов ставят в профиль на клиентской машине, но серверная часть BepInEx-модов должна стоять и на самом dedicated-сервере: копируете папку профиля с плагинами в директорию сервера рядом с исполняемым файлом. Совместимость сборки мод-на-мод — отдельная головная боль, тестируйте на паре человек перед тем, как звать весь отряд.

Пробрасываем порт и открываем сервер друзьям

Если сервер стоит на VPS с "белым" IP — обычно достаточно открыть порт в файрволе:

sudo ufw allow 27015/udp
sudo ufw status

Если хостите из дома за роутером — потребуется проброс порта (port forwarding) в настройках роутера: UDP-порт 27015 (или тот, что указали в -dedicatedserver.port) на локальный IP машины с сервером. Заодно закрепите за сервером статический локальный IP через DHCP-резервацию в роутере, иначе после перезагрузки порт может "уехать" на другой адрес.

Проверить, что порт реально открыт снаружи, можно сервисами вроде canyouseeme.org (для TCP) или банально попросить друга с другой сети подключиться напрямую по IP:порт. Для UDP полноценно проверить открытость извне сложнее, чем для TCP, так что живой тест с другом — самый надёжный способ.

Игрокам для прямого подключения (если сервер -dedicatedserver.public false) обычно нужно знать IP и порт — способ подключения по прямому адресу зависит от текущей версии клиента игры, уточните актуальный пункт меню на вашем патче.

Автозапуск и стабильная работа

Чтобы сервер не падал при разрыве SSH-сессии и поднимался сам после перезагрузки машины, заведите systemd-юнит вместо голого запуска в терминале.

Создайте файл /etc/systemd/system/ror2server.service:

[Unit]
Description=Risk of Rain 2 Dedicated Server
After=network.target

[Service]
Type=simple
User=ror2
WorkingDirectory=/home/ror2/ror2server
ExecStart=/home/ror2/ror2server/Risk of Rain 2.x86_64 -batchmode -nographics -dedicatedserver.port 27015 -dedicatedserver.maxplayers 8 -dedicatedserver.password "" -dedicatedserver.public false -dedicatedserver.name "Мой сервер RoR2"
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Дальше:

sudo systemctl daemon-reload
sudo systemctl enable --now ror2server
sudo systemctl status ror2server

Логи смотрите через journalctl -u ror2server -f — удобно ловить момент подключения игроков и падения сервера, если такое случается.

Для обновления сервера после патчей игры сервис нужно останавливать перед steamcmd +app_update, иначе файлы могут перезаписаться под запущенным процессом:

sudo systemctl stop ror2server
steamcmd +force_install_dir /home/ror2/ror2server +login anonymous +app_update 1180760 validate +quit
sudo systemctl start ror2server

Имеет смысл держать это в небольшом bash-скрипте и вешать на cron раз в неделю или запускать вручную после крупных патчей — Risk of Rain 2 обновляется не так часто, как некоторые выживалки, так что автоматический апдейт на каждый чих обычно избыточен.

Что делать, если сервер тормозит или вылетает

Пара практических моментов, с которыми реально сталкиваются на dedicated-серверах RoR2:

  • Память утекает на долгих сессиях. Особенно на loop-забегах (когда команда проходит все стадии по кругу много раз) память процесса может расти. Если видите деградацию производительности через несколько часов непрерывной игры — держите под рукой Restart=on-failure в systemd-юните (он выше уже есть) и не бойтесь просто перезапускать сервис между сессиями.
  • Лаги при спавне большого количества монстров на поздних стадиях — это упирается в CPU процесса Unity, а не в сеть. Если на слабом тарифе замечаете просадки именно в моменты массового спавна — это повод смотреть в сторону более быстрого процессора, а не большего канала.
  • Мод-конфликты — если сервер крашится сразу после подключения игрока с модами, а без модов всё стабильно, проверяйте версии BepInEx и совпадение набора плагинов между клиентами и сервером. Несовпадающие версии одного и того же мода — самая частая причина десинков.
  • Порт "прыгает" после перезагрузки роутера — см. пункт про DHCP-резервацию выше, это разово решается один раз и больше не всплывает.

Если у вас похожая механика подключения через SteamCMD и хочется свериться с другой игрой на том же движке — можно посмотреть, как устроена установка сервера Valheim или V Rising: принципы с systemd и проброс портов там почти идентичны.

Поднять сервер Risk of Rain 2 за пару минут

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

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

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

Нужен ли сервер Risk of Rain 2, если играем вчетвером раз в неделю?

Необязательно. Для редких сессий небольшой компанией обычный P2P-хост через Steam-инвайт проще и не требует администрирования. Dedicated-сервер оправдан, если играете часто и хотите постоянный мир без привязки к конкретному хосту.

Можно ли поставить сервер на Windows?

Да, SteamCMD и dedicated-сервер RoR2 доступны и под Windows, но большинство недорогих VPS под игровые серверы — это Linux, и команды в этой статье рассчитаны именно на него.

Сколько игроков реально тянет один сервер?

Официально играбельно до 8 человек в комнате, но по ощущениям после 6 сложность и производительность начинают требовать более мощного железа — закладывайтесь по CPU с запасом, если планируете большие составы.

Как обновить сервер после выхода патча?

Останавливаете systemd-сервис, запускаете steamcmd +app_update 1180760 validate заново, стартуете сервис обратно — шаги описаны в разделе про автозапуск выше.

Можно ли играть с модами на dedicated-сервере?

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