Выделенный сервер 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; серверы, которым не хватает памяти, могут не зарегистрироваться в браузере или останавливаться под нагрузкой.
| Сервер | RAM | CPU | Примечания |
|---|---|---|---|
| 2-6 игроков, небольшие племена | 12-14 GB | 3-4 ядра | Минимальный практичный размер |
| 6-15 игроков | 14-16 GB | 4 ядра | Последователи и базы накапливаются |
| 15-30 игроков | 16-24 GB | 4+ быстрых ядра | Большой публичный сервер |
| 30+ игроков, много племён | 24 GB+ | 6+ ядер | Планируйте по измерениям |
- CPU: симуляция NPC, поиск пути и физика. В отличие от старых игр на выживание, больше ядер здесь действительно помогает, но насколько плавным ощущается бой, всё равно определяет тактовая частота.
- Диск: сервер большой - закладывайте 30-40 GB на установку плюс сохранения и backup. База данных мира растёт по мере расползания баз.
- Последователи важнее игроков. Стоимость сервера следует за числом активных членов племён. Некоторые сообщества ограничивают размер племени отчасти и по этой причине.
Эти цифры взяты с типичных серверов сообщества, а не из официальной таблицы. Прежде чем выбирать размер, понаблюдайте за графиком памяти неделю реальной игры - в статье CPU или RAM для игровых серверов объясняется, как понять, что из них настоящее ограничение.
Установка и запуск сервера#
В Linux через SteamCMD (для установок на Linux используется app 3017300):
$ 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=900StartServer.sh оборачивает настоящий бинарник, WSServer.sh, который первым аргументом принимает имя карты (Level01_Main для базовой карты), а за ним - параметры. В Windows аналог - StartServer.bat вокруг WSServer.exe. Как поддерживать установку в актуальном состоянии, описано в статье Что такое SteamCMD.
Первый запуск занимает время: мир генерируется и записывается в world.db. Дождитесь, пока лог покажет, что сервер зарегистрирован и слушает порт, прежде чем пытаться подключиться, и в тот же момент посмотрите на график памяти - он сразу скажет, достаточно ли велик тариф.
Параметры запуска#
| Параметр | По умолчанию | Что делает |
|---|---|---|
-SteamServerName | - | Имя в браузере серверов |
-MaxPlayers | 20 | Слоты для игроков, до 50 |
-PSW | нет | Пароль на вход; не указывайте для открытого сервера |
-adminpsw | нет | Пароль GM (админа) |
-pve / -pvp | - | Режим игры для мира |
-Port | 8777 | Игровой порт, UDP |
-QueryPort | 27015 | Порт Steam query, UDP |
-EchoPort | 18888 | Консоль обслуживания, TCP |
-saving | 600 | Секунды между сохранениями мира |
-backup | 900 | Секунды между записью 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-консоль#
| Порт | Протокол | Назначение |
|---|---|---|
8777 | UDP | Игровой трафик |
27015 | UDP | Steam query - браузер серверов |
18888 | TCP | Echo-порт - консоль обслуживания |
Два UDP-порта должны быть открыты для игроков. Echo-порт - это консоль в стиле telnet для обслуживания: она принимает команды вроде отложенного выключения (quit 180 даёт игрокам трёхминутное предупреждение). Это интерфейс управления, поэтому доступ к нему должен быть только у вас: ограничьте его через firewall, а не открывайте в интернет. В статье Порты игровых серверов объясняется, почему порты query и игры разделены, а Как безопасно использовать RCON в равной мере относится и к echo-консоли.
Игроки находят сервер во внутриигровом браузере по имени. Новый сервер может появиться там лишь через несколько минут; поиск по необычному слову из имени быстрее, чем прокрутка. Если сервер закрыт паролем, игроки вводят -PSW при входе.
Админы (GM) и модерация#
Система админов в Soulmask - это пароль. Игрок, знающий значение -adminpsw, открывает внутриигровую консоль и вводит команду GM-ключа с этим паролем, чтобы разблокировать GM-команды на свою сессию. GM-команды охватывают модерацию (кик, бан), телепортацию, выдачу предметов и инструменты мира; полный список длинный и растёт с обновлениями, а эталон - собственная справка игры в вашей версии.
Поскольку GM - это всё или ничего, давайте пароль как можно меньшему числу людей и меняйте его, когда уходит модератор, - достаточно поменять параметр запуска и перезапустить сервер. На публичном сервере запишите, что GM будут делать и чего не будут. Выдать предметы взамен потерянных из-за бага - разумно; выдавать предметы друзьям - значит распугать с сервера всех, кто это заметит. Схема описана в статье Правила сервера, модерация и команда.
Сохранения, backup и перенос мира#
Мир - это одна база данных:
WS/Saved/Worlds/Dedicated/Level01_Main/world.dbВсё - изменения рельефа, постройки, последователи, хранилища - живёт в этом файле и в соседних. Бэкапьте всю папку Level01_Main, а не только world.db, потому что рядом с файлами баз данных часто лежат файлы журнала упреждающей записи, в которых хранятся последние изменения.
Правила:
- Останавливайте сервер, прежде чем копировать мир. Копия работающей базы данных может оказаться файлом, который не открывается.
- Делайте backup перед каждым обновлением. Обновления раннего доступа могут менять формат сохранения, и копия до обновления - единственный путь назад.
- Храните копии вне машины. Собственные резервные копии игры лежат рядом с миром на том же диске. Почему этого недостаточно, объясняется в статье Backup, которые действительно восстанавливаются.
- Время от времени проверяйте восстановление. Разверните 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. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.