RE:NODE

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

Выделенный сервер Soulmask и сохранения

Как запустить выделенный сервер Soulmask: установка, параметры запуска, порты 8777, 27015 и 18888, GameXishu.json, права админа, сохранение world.db и backup.

0 прочтений

Выделенный сервер Soulmask настраивается в двух местах: параметры запуска отвечают за всё, что касается самого сервера (-SteamServerName, -MaxPlayers, -PSW для пароля на вход, -adminpsw для пароля GM, -pve или -pvp, три порта), а WS/Saved/GameplaySettings/GameXishu.json - за игровые множители. Ему нужны UDP 8777 для игры, UDP 27015 для Steam query и TCP 18888 для консоли обслуживания. Мир - это один файл базы данных, WS/Saved/Worlds/Dedicated/Level01_Main/world.db. И сервер тяжёлый: после загрузки мира рассчитывайте на 12 GB занятой памяти или больше, а на оживлённом сервере - ещё больше; эту игру не стоит втискивать в маленький тариф.

Что такое сервер Soulmask#

Soulmask - игра на выживание на Unreal Engine 5 с племенами NPC-последователей, и сервер несёт на себе каждого последователя, зверя и постройку в мире. Этим и объясняется его аппетит: сервер на десять игроков, у каждого из которых племя из дюжины работников, симулирует далеко за сотню персонажей с работой, потребностями и поиском пути - и это ещё без учёта дикой природы.

Что даёт сервер по сравнению с хостингом из игры:

  • Мир существует без хоста. Последователи продолжают работать, очереди крафта завершаются, и мир живёт, пока никого нет онлайн.
  • До 50 игроков, задаётся через -MaxPlayers; приватные группы обычно играют куда меньшим составом.
  • PvE или PvP, фиксируется флагом запуска.
  • Настройка геймплея на стороне сервера через GameXishu.json, с куда большим числом ручек, чем в настройках хоста в игре.
  • Инструменты админа (GM) через пароль и консольные команды.

Soulmask находится в раннем доступе с частыми обновлениями, и его сервер за это время оброс функциями. Имена параметров остаются стабильными, но значения по умолчанию и содержимое GameXishu.json меняются от версии к версии, так что воспринимайте написанное ниже как карту и сверяйте с ней собственные файлы.

Приватная группа или публичное сообщество

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

Сервер приватной группы обычно работает в PvE, закрыт паролем, на нём горстка игроков и щедрые множители. Цель - дать друзьям продвигаться в своём темпе без гринда, который баланс по умолчанию закладывает для большой аудитории. Число слотов можно поставить близким к размеру группы - так листинг в браузере остаётся честным, и сразу видно, когда пытается зайти кто-то посторонний. Лимиты на размер племени редко имеют значение, а пароль GM остаётся у одного человека.

Публичный сервер - совсем другая работа. Ему нужны понятные имя и описание, где сказано, PvE это или PvP, какие множители и какая политика вайпов, потому что игроки выбирают сервер в браузере за секунды. Ему нужен лимит размера племени - -GongHuiMaxMember, - чтобы одна большая группа не подмяла под себя карту, и правила о размещении баз у точек ресурсов и мест появления. Ему нужен план вайпов, объявленный заранее, потому что мир, работающий много месяцев, копит брошенные базы, которые стоят памяти и места. И ему нужен больше чем один модератор, с аккуратным обращением с паролем GM и его сменой при каждом изменении команды.

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

Что бы вы ни запускали, решите основное до первого входа: PvE или PvP, множители, лимит на племя и как долго должен прожить мир. Изменение любого из этого после того, как игроки вложили в базу дни, обойдётся вам дороже по части доверия, чем стоит любая настройка.

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

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

СерверRAMCPUПримечания
2-6 игроков, небольшие племена12-14 GB3-4 ядраМинимальный практичный размер
6-15 игроков14-16 GB4 ядраПоследователи и базы накапливаются
15-30 игроков16-24 GB4+ быстрых ядраБольшой публичный сервер
30+ игроков, много племён24 GB+6+ ядерПланируйте по измерениям
  • CPU: симуляция NPC, поиск пути и физика. В отличие от старых игр на выживание, больше ядер здесь действительно помогает, но насколько плавным ощущается бой, всё равно определяет тактовая частота.
  • Диск: сервер большой - закладывайте 30-40 GB на установку плюс сохранения и backup. База данных мира растёт по мере расползания баз.
  • Последователи важнее игроков. Стоимость сервера следует за числом активных членов племён. Некоторые сообщества ограничивают размер племени отчасти и по этой причине.

Эти цифры взяты с типичных серверов сообщества, а не из официальной таблицы. Прежде чем выбирать размер, понаблюдайте за графиком памяти неделю реальной игры - в статье CPU или RAM для игровых серверов объясняется, как понять, что из них настоящее ограничение.

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

В Linux через SteamCMD (для установок на Linux используется app 3017300):

bash
$ steamcmd +force_install_dir /home/soulmask/server +login anonymous +app_update 3017300 validate +quit$ cd /home/soulmask/server$ ./StartServer.sh -SteamServerName='Tribes of the Hollow' -MaxPlayers=20 \    -PSW='long-join-password' -adminpsw='different-gm-password' -pve \    -Port=8777 -QueryPort=27015 -EchoPort=18888 -saving=600 -backup=900

StartServer.sh оборачивает настоящий бинарник, WSServer.sh, который первым аргументом принимает имя карты (Level01_Main для базовой карты), а за ним - параметры. В Windows аналог - StartServer.bat вокруг WSServer.exe. Как поддерживать установку в актуальном состоянии, описано в статье Что такое SteamCMD.

Первый запуск занимает время: мир генерируется и записывается в world.db. Дождитесь, пока лог покажет, что сервер зарегистрирован и слушает порт, прежде чем пытаться подключиться, и в тот же момент посмотрите на график памяти - он сразу скажет, достаточно ли велик тариф.

Параметры запуска#

ПараметрПо умолчаниюЧто делает
-SteamServerName-Имя в браузере серверов
-MaxPlayers20Слоты для игроков, до 50
-PSWнетПароль на вход; не указывайте для открытого сервера
-adminpswнетПароль GM (админа)
-pve / -pvp-Режим игры для мира
-Port8777Игровой порт, UDP
-QueryPort27015Порт Steam query, UDP
-EchoPort18888Консоль обслуживания, TCP
-saving600Секунды между сохранениями мира
-backup900Секунды между записью backup
-GongHuiMaxMember-Максимум участников в племени (гильдии)
-mod-ID модов через запятую, в сборках с поддержкой модов

Несколько замечаний из практики:

  • `-PSW` и `-adminpsw` должны различаться. Если пароль на вход и пароль GM совпадают, каждый игрок, который может зайти, может и стать GM.
  • `-pve` или `-pvp` - решение на уровне мира. Переключиться позже можно, но в PvP-мире, построенном по правилам PvE, будут базы, которые никто не проектировал для обороны.
  • `-saving` и `-backup` - оба интервалы в секундах. Игра периодически записывает мир и хранит резервные копии; снижение -saving ограничивает потери при сбое ценой короткого подвисания на большом мире. 600 секунд - разумное значение по умолчанию; 300 на оживлённом сервере.

GameXishu.json: настройки геймплея#

Настройка геймплея живёт в WS/Saved/GameplaySettings/GameXishu.json. «Xishu» по-китайски значит «коэффициент», и именно их файл и содержит: множители почти для каждой системы в игре. Типичные категории:

  • Опыт и прогрессия: скорость получения опыта игроками и последователями, рост мастерства.
  • Сбор и крафт: выход ресурсов, скорость крафта, время переработки.
  • Давление выживания: расход голода и жажды, получаемый и наносимый урон, потеря прочности.
  • Время: длительность дня и ночи.
  • Последователи: вербовка, лояльность и скорость работы.
  • Рейды и вторжения: частота и сила событий против баз.

Файл генерируется со значениями по умолчанию при первом запуске, и его точные ключи меняются от обновления к обновлению, так что открывайте свой файл, а не копируйте чужой. Редактируйте его при остановленном сервере, следите за валидностью JSON (пропущенная запятая или кавычка может сбросить файл или не дать серверу запуститься) и меняйте по несколько значений за раз. Для приватной группы обычная первая правка - ускорить сбор и крафт и замедлить расход ресурсов на выживание, чтобы игра была про строительство и исследование, а не про рутину.

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

Порты, подключение и echo-консоль#

ПортПротоколНазначение
8777UDPИгровой трафик
27015UDPSteam query - браузер серверов
18888TCPEcho-порт - консоль обслуживания

Два UDP-порта должны быть открыты для игроков. Echo-порт - это консоль в стиле telnet для обслуживания: она принимает команды вроде отложенного выключения (quit 180 даёт игрокам трёхминутное предупреждение). Это интерфейс управления, поэтому доступ к нему должен быть только у вас: ограничьте его через firewall, а не открывайте в интернет. В статье Порты игровых серверов объясняется, почему порты query и игры разделены, а Как безопасно использовать RCON в равной мере относится и к echo-консоли.

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

Админы (GM) и модерация#

Система админов в Soulmask - это пароль. Игрок, знающий значение -adminpsw, открывает внутриигровую консоль и вводит команду GM-ключа с этим паролем, чтобы разблокировать GM-команды на свою сессию. GM-команды охватывают модерацию (кик, бан), телепортацию, выдачу предметов и инструменты мира; полный список длинный и растёт с обновлениями, а эталон - собственная справка игры в вашей версии.

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

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

Мир - это одна база данных:

code
WS/Saved/Worlds/Dedicated/Level01_Main/world.db

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

Правила:

  1. Останавливайте сервер, прежде чем копировать мир. Копия работающей базы данных может оказаться файлом, который не открывается.
  2. Делайте backup перед каждым обновлением. Обновления раннего доступа могут менять формат сохранения, и копия до обновления - единственный путь назад.
  3. Храните копии вне машины. Собственные резервные копии игры лежат рядом с миром на том же диске. Почему этого недостаточно, объясняется в статье Backup, которые действительно восстанавливаются.
  4. Время от времени проверяйте восстановление. Разверните backup на тестовой установке и запустите.

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

На RE:NODE слоты backup входят в каждый игровой тариф, хранятся вне защищаемой машины, могут быть заблокированы от ротации и восстанавливаются одной кнопкой; вкладка Schedules умеет делать backup перед ночным перезапуском. Самого Soulmask в каталоге нет.

Производительность и решение проблем#

Что замедляет сервер Soulmask, примерно по порядку:

  • Нехватка памяти. Сервер, упёршийся в предел памяти, - самая частая причина подтормаживаний, зависаний и падений. Сначала смотрите на график.
  • Число последователей. Десятки племён со множеством последователей в каждом умножают работу NPC.
  • Большие, раскиданные базы держат активной большую часть мира.
  • Долгий аптайм. Ежедневный перезапуск в тихий час сохраняет стабильными память и производительность - см. расписание перезапусков, которое помогает.

Частые проблемы:

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

Игроки не могут подключиться после обновления. Сервер на старой версии. Обновите его через SteamCMD и перезапустите.

Сервер не запускается после правки GameXishu.json. Невалидный JSON. Восстановите свою копию или проверьте файл валидатором.

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

Все стали GM. Пароль на вход и пароль админа совпадают. Смените -adminpsw и перезапустите.

FAQ#

Сколько RAM нужно серверу Soulmask?

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

Можно ли переключить сервер Soulmask между PvE и PvP?

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

Где лежит сохранение сервера Soulmask?

В WS/Saved/Worlds/Dedicated/Level01_Main/ - это world.db и сопутствующие файлы. Бэкапьте папку, а не один этот файл.

Зачем нужен echo-порт?

Для команд обслуживания работающего сервера, например выключения с обратным отсчётом. Игрокам он никогда не нужен, так что ограничьте доступ к нему своим адресом.

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

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


Комментарии

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

0/2000