В RimWorld нет никакого мультиплеера, а два мода, которые его добавляют, работают совершенно по-разному. Мод Multiplayer сажает нескольких игроков в одну колонию и заставляет все машины выполнять одну и ту же симуляцию в lockstep; выделенного сервера у него нет и никогда не было, так что сервером служит чья-то игра. RimWorld Together даёт каждому игроку собственную колонию на общей планете и имеет настоящий автономный сервер, именно его продают хостинговые компании. Выбор не того мода - ошибка, на которую уходят выходные, поэтому руководство начинается с него, а затем всерьёз разбирает сервер: установку, файлы конфигурации, списки модов, команды, backup и рассинхроны.
Два способа играть в RimWorld с другими людьми#
| Multiplayer (Zetrith / rwmt) | RimWorld Together | |
|---|---|---|
| Форма | Одна общая колония, одна временная линия | Каждому своя колония, одна планета |
| Симуляция | Детерминированный lockstep на каждой машине | Сервер хранит состояние мира, клиенты играют локально |
| Выделенный сервер | Нет | Да, автономная программа |
| Работает, когда никого нет онлайн | Нет | Да |
| Список модов | Одинаковый, строго проверяется | Сверяется со списком сервера |
| Типичная группа | 2-4 друга, одна сессия за раз | 4-20 человек, приходят и уходят |
Вопрос к вашей группе не в том, какой мод лучше. Он в том, хотите ли вы сесть и три часа играть вместе в одну колонию или вам нужен мир, который никуда не денется во вторник днём, когда зайдёт один человек. Это разные игры, и им нужно разное программное обеспечение.
Если вам нужно первое, мод Multiplayer превосходен, и сервер вам вовсе не нужен. Если второе - а именно это большинство людей имеет в виду, когда ищет хостинг сервера RimWorld, - вам нужен RimWorld Together.
Multiplayer: одна колония, lockstep, без сервера#
Мод Multiplayer, созданный Zetrith и теперь поддерживаемый командой rwmt, никому не передаёт состояние игры. Каждая машина, хост и клиенты одинаково, выполняет одну и ту же симуляцию RimWorld. Хост рассылает команды - приказ призвать, изменение заказа, назначение - с номером тика, и все применяют их на одном тике и приходят к одному и тому же миру.
У такой конструкции три следствия, и знать их стоит до начала.
Выделенного сервера нет. Ответ самого проекта на вопрос, поддерживается ли он, - категорическое нет. Хостинг делается изнутри игры: главное меню, Multiplayer, создать новую игру или открыть существующее сохранение. Авторитетна копия RimWorld хоста. Когда он закрывает игру, сессия заканчивается, и ничего не движется, пока он не откроет её снова.
У всех игроков должна быть одинаковая конфигурация. Одна и та же версия RimWorld, те же DLC, где они нужны модам, те же моды тех же версий, включённые в том же порядке, с теми же настройками модов. Всё, что отличается, - это машина, которая посчитает другой результат. Последние версии мода при подключении синхронизируют большую часть этого за вас, но базовое требование не изменилось.
Рассинхроны - основной вид отказа. Когда симуляция на одной машине расходится, мод замечает это и сообщает вам. Частые причины: несовпадающие файлы или настройки модов, мод, использующий случайность, которую мод не может перехватить, конфигурация, изменённая посреди игры, и - о чём часто забывают - собственная машина хоста, которая не справляется: если частота кадров хоста падает ниже частоты тиков сессии, вся игра сбивается с такта. Мод автоматически пишет отчёт о рассинхроне в папку MpDesyncs, и именно этот файл нужен автору мода, чтобы исправить причину.
Для прямых подключений мод слушает UDP 30502. Хостинг через Steam идёт через сетевую часть Steam и не требует открытия портов вообще, поэтому большинство небольших групп никогда не заглядывают в роутер.
Можно ли разместить Multiplayer на сервере?#
Не так, как размещают сервер Minecraft. Нет ни headless-сборки, ни консоли, ни файла конфигурации, ни RCON. RimWorld - игра на Unity с пользовательским интерфейсом, а режим хоста мода Multiplayer - это меню, по которому нужно кликать.
Есть два обходных пути, и оба хуже, чем кажутся. Можно поставить полную копию RimWorld на VDS под виртуальным фреймбуфером и считать эту машину постоянным хостом: это работает, но требует, чтобы на этой машине бездействовала лицензия на игру, нужна машина размером с десктоп, потому что хост запускает полную игру с отрисовкой, и каждый перезапуск делается вручную кликом. Либо признать, что хостом служит один человек и все играют, когда он в сети, - так делают почти все. Честная версия этого компромисса - в статье выбор между VDS и игровой панелью; в этом конкретном случае панель помочь не может, потому что запускать нечего: ничего серверного здесь нет.
Мод также поставляется с арбитром: вторым, почти headless экземпляром игры, запускаемым рядом с хостом только для того, чтобы перепроверять симуляцию и выяснять, кто рассинхронизировался. Это средство отладки, а не сервер. Он расходует у машины хоста реальный CPU и память и не поддерживает колонию, когда хост выходит.
RimWorld Together: отдельные колонии и настоящий сервер#
RimWorld Together идёт противоположным путём. Сервер вообще не симулирует RimWorld. Это небольшая консольная программа на .NET, которая хранит планету, поселения всех игроков, их сохранения, рынок и очередь событий и передаёт действия между игроками. Каждый игрок ведёт свою колонию в своём темпе на своей машине, а общий слой - это карта мира: караваны, набеги друг на друга, торговля, подарки, гильдии и площадки.
Поскольку сервер не запускает игру, он чрезвычайно лёгкий. Сам проект описывает требования к железу так: справится и современный e-toaster, и это близко к правде: важнее пропускная способность и диск, чем CPU.
Более старый мод под названием Open World делал то же самое и больше не поддерживается, поэтому это имя вы всё ещё встретите на хостинговых панелях и в старых руководствах. Если вы запускаете мир сейчас, запускайте его на поддерживаемом проекте и проверьте, на какую версию RimWorld рассчитан релиз сервера: мод следует за текущей основной версией RimWorld, и несоответствие тут - первое, что нужно исключить, когда клиенты не могут подключиться.
Установка и запуск сервера#
Скачайте файлы сервера из релизов проекта и распакуйте их туда, где операционная система не будет спорить с вами из-за прав. Затем запустите исполняемый файл. Установщика и этапа сборки нет.
$ mkdir -p /opt/rwt && cd /opt/rwt$ unzip ~/Downloads/rimworld-together-server.zip$ ./RimworldTogetherЕсть и официальный образ контейнера, это более аккуратный способ запуска на собственной машине с Linux:
$ mkdir -p RWTData$ docker run -it --rm -v './RWTData:/Data' -p 25555:25555 \ ghcr.io/rimworld-together/rimworld-together:latestПри первом запуске сервер записывает всю структуру каталогов и каждый файл конфигурации со значениями по умолчанию, после чего останавливается в ожидании ввода в консоли. Именно на этом первом запуске стоит его остановить, отредактировать конфигурацию и запустить снова.
/opt/rwt/ Configs/ ServerConfig.json and the rest Configs/Actions/ per-action tuning, one file each Assets/ Maps, Users, Saves, Settlements, Sites, Guilds, WorldObjects Backups/ Servers and Users Logs/ System and Chat| Порт | Протокол | Назначение |
|---|---|---|
25555 | TCP | Единственный порт. Клиенты подключаются прямо к нему |
Один порт, и он один и тот же в конфигурации, в сопоставлении контейнера и в диалоге подключения клиента. Если игроки получают отказ в соединении, проверяйте по порядку: запущен ли процесс, выделен ли порт, на тот ли адрес указывает клиент. В статье порты игрового сервера объясняется, почему «сервер работает» и «порт доступен» - это два разных утверждения.
Линейка RimWorld на RE:NODE - это сервер именно такого вида: постоянная мультиплеерная колония с включёнными модами, и каждый тариф идёт с одним выделенным портом, а больше и не нужно. Конфигурации и список модов правятся в файловом менеджере в браузере или по SFTP; данные для подключения - в статье SFTP и файловый менеджер.
ServerConfig.json и папка Configs#
Главный файл - Configs/ServerConfig.json. Вот значения по умолчанию, которые записывает сервер:
{ "Name": "RimWorld Together Server", "Description": "", "DiscordURL": "", "SteamWorkshopURL": "", "IP": "0.0.0.0", "Port": 25555, "MaxPlayers": 100, "Verbosity": 0, "DisplayChatInConsole": false, "UseUPnP": false, "UseClientSave": true, "EnableServerBrowser": true, "EnableServerTelemetry": true}| Ключ | По умолчанию | Что делает |
|---|---|---|
Name | RimWorld Together Server | Показывается в браузере и при подключении |
IP | 0.0.0.0 | Адрес прослушивания. Не трогайте, если не знаете зачем |
Port | 25555 | Должен совпадать с тем, куда подключаются клиенты |
MaxPlayers | 100 | С запасом. Реальный предел - ваша пропускная способность |
Verbosity | 0 | Повышайте при отладке, а не в обычной работе |
DisplayChatInConsole | false | Полезно в консоли панели, за которой вы и так следите |
UseUPnP | false | Для домашнего роутера. Бессмысленно на арендованном сервере |
UseClientSave | true | Является ли сохранение клиента авторитетным |
EnableServerBrowser | true | Публиковать в игровом списке серверов |
Остальная часть папки делится по назначению, и каждый файл записывается со значениями по умолчанию, так что вы можете прочесть структуру, прежде чем что-то менять: ModConfig.json для списка модов, DifficultyConfig.json, StorytellerConfig.json и ScenarioConfig.json для того, с чего начинается новая колония, ChatConfig.json, PasswordConfig.json, WhitelistConfig.json, BackupConfig.json, а также каталог Configs/Actions с одним файлом на каждое взаимодействие - набеги, караваны, торговлю, площадки, события, рынок, гильдии, - чтобы можно было назначить цену каждому или отключить его по отдельности.
У backup свой файл и разумные значения по умолчанию:
{ "AutomaticBackups": true, "IntervalHours": 1, "AutomaticDeletion": true, "Amount": 6}Каждый час, шесть штук хранится, старейшие удаляются. Это хорошая ротация, и всё же это не backup, потому что она лежит на том же диске, что и защищаемое. Копируйте весь каталог сервера в другое место ещё и по расписанию; аргументы - в статье бэкапы, которые действительно восстанавливаются, а на RE:NODE слоты backup, входящие в каждый тариф, хранятся вне машины и восстанавливаются нажатием кнопки.
Моды: список, общий для всех#
Configs/ModConfig.json - место, где сервер задаёт политику модов, в трёх списках: обязательные моды, необязательные и запрещённые. Подключающийся клиент сверяется с ними. Обязательные моды должны присутствовать, запрещённые закрывают подключение, а необязательные допускаются в любом случае - и в этом важное отличие от мода Multiplayer, где необязательных модов не существует.
Практические правила для общего списка модов, для любого из двух модов:
- Договоритесь о списке до первого дня. Добавление контентного мода в мир, где уже есть колонии, означает, что каждый игрок пересинхронизируется, а кто-то что-то теряет. Удаление хуже.
- Используйте коллекцию Steam. Опубликуйте одну коллекцию, поместите её ссылку в
SteamWorkshopURLи скажите людям подписываться на неё и ни на что больше. Коллекция - единственный список модов, который сам поддерживает единство. - Зафиксируйте порядок загрузки. RimWorld исключительно чувствителен к порядку. Экспортируйте рабочий список модов из игры и отправляйте файл, а не скриншот.
- Избегайте модов, которые иначе генерируют мир, если они не у всех, и считайте моды производительности частью списка, а не личным выбором.
- Не обновляйте посреди недели. Мод из workshop, обновившийся у одного игрока и не обновившийся у другого, - самая частая причина вечера понедельника, потраченного на отладку. Порядок действий по восстановлению - в статье что делать, когда обновление мода всё ломает.
Команды сервера, администраторы и backup#
Сервер читает команды из своей консоли, а на панели это окно консоли. Отдельного удалённого протокола нет: консоль и есть интерфейс администратора.
| Команда | Что делает |
|---|---|
op <username> | Выдаёт права администратора |
deop <username> | Отбирает их |
list | Подключённые игроки |
deeplist | Все игроки, о которых знает сервер |
kick <username> | Отключает игрока |
ban <username> | Банит его |
pardon <username> | Снимает бан |
banlist | Выводит баны |
broadcast <text> | Отправляет всем сообщение в виде письма |
chat <text> | Отправляет сообщение в чат |
backup | Делает backup сервера сейчас |
backupuser <username> | Делает backup одного игрока |
forcesave <username> | Принудительно сохраняет подключённого игрока |
modlist | Выводит список модов сервера |
setpassword <text> | Задаёт пароль для входа |
clearpassword | Убирает его |
resetplayer <username> | Стирает данные одного игрока |
resetserver | Стирает мир |
event <username> <event> | Запускает событие для одного игрока |
eventall <event> | Запускает его для всех |
eventlist | Перечисляет события, которые можно запустить |
getversion | Версия сервера |
verbosity <level> | Меняет подробность лога на ходу |
Раз интерфейс администратора - это консоль, то вопрос о том, у кого есть доступ к консоли, - настоящий вопрос безопасности, а не формальность. На RE:NODE для этого служат субпользователи и роли: роль может давать только консоль или только файлы, без биллинга, а каждое действие записывается в журнал активности сервера. Как разумно всё это распределить, рассказано в статье субпользователи и принцип наименьших привилегий.
Требования и устранение неполадок#
| Конфигурация | RAM | CPU | Примечания |
|---|---|---|---|
| RimWorld Together, до 8 игроков | 1 GB | 0.75 ядра | Сервер не запускает игру |
| 8-20 игроков, долгоживущий мир | 2 GB | 1 ядро | Диск растёт вместе с сохранениями и backup |
| Машина-хост мода Multiplayer | 8 GB+ | Игровой CPU | Это десктоп, а не тариф сервера |
Обратите внимание на третью строку. Если кто-то называет вам цену на «выделенный сервер RimWorld Multiplayer» с модом Zetrith, спросите, что именно там запущено, потому что машина, способная вести такую сессию, - это компьютер десктопного класса с графической средой, а не игровой тариф за $5.
Клиенты не могут подключиться. Сверьте версию мода с версией сервера: они выходят вместе, и несоответствия отклоняются. Затем проверьте порт, потом пароль.
Игрок заходит и сразу отключается. Обычно виновата проверка модов: чего-то обязательного нет или установлено что-то запрещённое. В логе сервера это названо.
Рассинхроны в моде Multiplayer. Сравните версии модов, настройки и порядок загрузки у всех, убедитесь, что сборка RimWorld совпадает, и посмотрите на производительность хоста. Отправьте файл из папки MpDesyncs разработчикам мода, а не гадайте.
Мир занимает огромное место на диске. Накапливаются сохранения игроков и почасовые backup. Уменьшите Amount в BackupConfig.json или вынесите старые backup с сервера.
Сервер останавливается, когда закрываешь терминал. Запустите его как службу или на панели, где контроль процесса - чья-то чужая забота. Цикл сбоев, который на самом деле объясняется лимитом памяти, а не ошибкой конфигурации, разобран в статье почему ваш игровой сервер постоянно перезапускается.
FAQ#
Есть ли в RimWorld официальный мультиплеер?
Нет. Ludeon никогда не выпускала мультиплеер, и оба варианта - это моды сообщества с разной конструкцией. Всё, что рекламируется как официальный мультиплеер RimWorld, описывает один из этих модов.
Можно ли запустить мод Multiplayer на хостинговом тарифе?
Нет. У него нет сборки для выделенного сервера, нет headless-режима и нет консоли; хостинг - это кнопка внутри игры. Единственный способ держать его запущенным без присмотра - полная копия RimWorld на машине, которую вы контролируете, с графической средой, а это совсем другая покупка.
Сколько человек могут играть на одном сервере RimWorld Together?
MaxPlayers по умолчанию равен 100, а сервер достаточно лёгкий, чтобы это число редко было пределом. Двадцать активных игроков на общей планете - это оживлённый мир. Практические ограничения - сколько модерации вы готовы вести и сколько места занимают сохранения.
Нужны ли всем игрокам одинаковые моды?
В моде Multiplayer - да, в точности, включая настройки и порядок загрузки. В RimWorld Together сервер задаёт обязательные, необязательные и запрещённые моды, поэтому необязательные могут различаться у игроков, и это главная причина, по которой большие группы оказываются именно там.
Почему у нас рассинхрон каждый раз, когда происходит набег?
В бою больше всего случайности, поэтому расхождение проявляется именно там, а не начинается там. Причина почти всегда в разнице модов или в том, что машина хоста отстаёт. Сначала сравните списки, потом понаблюдайте за частотой кадров хоста в следующем бою.
Можно ли перенести одиночную колонию на сервер?
Напрямую в моде Multiplayer - нет: он начинает с сохранения, которое хост загружает, а все присоединяются. В RimWorld Together каждый игрок приносит в общий мир свою колонию, так что личное сохранение можно перенести, если его моды удовлетворяют списку сервера.




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