Что вам понадобится
- Операционная система: руководство разработчиков написано для Windows: сервер это
MoriaServer.exe. Мы запускаем ту же Windows-сборку сервера на Linux под Wine, но разработчики этот путь не описывают.
- Железо: разработчики не публикуют требования к серверу. Они пишут, что серверу не нужна видеокарта, и советуют запускать его на другой машине, не на той, где вы играете, потому что одновременный запуск может нагрузить память и процессор.
- Сеть: порт 7777 используется по умолчанию и должен быть доступен из интернета. В руководстве не сказано, TCP это или UDP, и нет шагов для брандмауэра, поэтому проверьте подключение снаружи вашей сети.
- Аккаунт Steam: не нужен. SteamCMD работает без аккаунта, а инструмент выделенного сервера бесплатный.
- Игра: у каждого игрока должна быть Return to Moria. По руководству разработчиков, к серверу могут подключаться игроки на Steam, Epic, PS5 и Xbox Series X|S.
Программа сервера бесплатная. Вы платите за машину, электричество и трафик, а не за программу.
Вариант 1: запустить самому
Это работает на запасном компьютере с Windows, домашнем сервере или облачной машине.
Windows
- Установите сервер. Установите "The Lord of the Rings: Return to Moria Dedicated Server" из раздела Инструменты в вашей библиотеке Steam или скачайте SteamCMD с
https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip, распакуйте его в папку вроде C:\steamcmd (не в корень диска) и выполните:
cd C:\steamcmd
steamcmd +force_install_dir C:\MoriaServer +login anonymous +app_update 3349480 validate +quit
3349480 это идентификатор приложения выделенного сервера в руководстве разработчиков по SteamCMD. Загрузка занимает около 3,5 ГБ. Если сервер не запускается на свежей Windows, разработчики советуют установить среду DirectX и Microsoft Visual C++ Redistributable.
- Запустите его один раз. Запустите
MoriaServer.exe. Откроется окно консоли с сообщением, что создан файл конфигурации. Закройте его. (Через Steam: щёлкните сервер правой кнопкой, Manage, Browse Local Files.)
- Редактируйте
MoriaServerConfig.ini, пока сервер остановлен. Изменения, сохранённые во время работы, вступят в силу только после выхода и повторного запуска, а некоторые команды консоли переписывают файл на ходу. Настройки, которые меняют чаще всего:
- Раздел
Main, OptionalPassword: если он не пуст, игроки должны ввести его, чтобы зайти.
- Раздел
World, Name: мир для загрузки. Если мира с таким названием нет, создаётся новый, и именно это название игроки видят в поиске. Регистр в названии не важен.
- Раздел
World.Create: сид, сложность и режим Campaign или Sandbox. Применяется только к только что созданному миру. Чтобы позже изменить сложность, разработчики указывают команду консоли setdifficulty.
- Раздел
Host: порт вручную, IP-адрес и другие сетевые настройки.
- Необязательные файлы.
MoriaServerPermissions.txt блокирует игроков или ограничивает, что они могут строить и трогать, а MoriaServerRules.txt содержит сообщение для заходящих игроков (не больше 1024 символов).
- Откройте порт. Разрешите порт 7777 в брандмауэре Windows и пробросьте его на роутере на эту машину. Разработчики не дают шагов для роутера, поэтому смотрите инструкцию к роутеру или спросите у провайдера.
- Запустите сервер снова. Когда сессия начнётся, консоль выведет код для входа. Зайти может любой, у кого он есть.
Linux
Разработчики Linux не описывают. Сервер это программа для Windows. Наши серверы запускают его на Linux под Wine с виртуальным экраном, но это наша конфигурация, а не путь, который поддерживают разработчики, поэтому в этом руководстве нет команд для Linux.
Как заходят игроки
- Код приглашения: введите его в строке поиска на экране Join World.
- Прямое подключение: в Advanced Join Options введите IP-адрес (или доменное имя) и порт сервера в разделе Direct Join.
- Та же машина: если вы запускаете сервер и играете на одном компьютере, используйте Join Locally Hosted Server в Advanced Join Options и введите свой порт.
Настройки производительности
- Раздел
Performance, ServerFPS: разработчики советуют 60 и пишут, что более высокие значения вряд ли помогут. Попробуйте 30, если сервер слишком нагружает процессор.
LoadedAreaLimit: от 4 до 32, по умолчанию 12. Разработчики пишут, что 12 обычно хорошо тянет сессии на восемь игроков, а увеличение значения заметно повышает расход памяти, процессора и трафика.
Сохранения и остановка
- Выделенные миры сохраняются в
Moria\Saved\SaveGamesDedicated. Переименовывать файлы миров нельзя.
- Вы можете скопировать мир со своего компьютера в эту папку. Сохранениями миров считаются только файлы, начинающиеся с
MW_. Дальше ничего не синхронизируется, поэтому каждая копия отдельная. Чтобы выбрать один файл сохранения, когда у двух миров одинаковое название, впишите имя его файла в OptionalWorldFilename.
- Если завершить сервер через Снять задачу в диспетчере задач, он закроется без сохранения. Команда консоли
exit сохраняет игру и останавливает сервер, а отправка SIGINT (Ctrl+C) тоже сначала сохраняет, а затем завершает работу.
- Если консоль отключена в конфигурации,
Moria/Saved/Config/Status.json показывает, работает ли сервер.
- Разработчики называют одну известную проблему: сервер может зависнуть при загрузке мира, и, как сообщается, помогает переключиться на консоль и нажать любую клавишу.
Вариант 2: запустить на PlayNHost
Аренда избавляет от возни с роутером и брандмауэром, а новые сборки устанавливаются при запуске сервера. Порт, пароль, название мира и сложность настроены за вас.
- Выберите план. Откройте страницу хостинга сервера Return to Moria. На момент написания есть план DURIN на 8 игроков, это максимум, сколько игра позволяет подключить одновременно. Нажмите Настроить план у DURIN и оформите заказ. Цены меняются, поэтому проверяйте их на этой странице.
- Дождитесь установки. Вам придёт письмо, что сервер готов, с адресом для входа, а сервер появится на panel.playnhost.com. Если в письме сказано, что сервер создан, но не запущен, нажмите Запустить. На вкладке Консоль панель считает сервер работающим, когда он выводит
LogOnline: Warning: OSS: Unable to AutoLogin user. Эта строка является предупреждением в журнале, а не сбоем: именно её мы и ждём.
- Откройте Настройки, затем Настройки игры. Первые три поля записываются в
MoriaServerConfig.ini при каждом запуске сервера:
- Название мира: мир, который нужно загрузить или создать. Если его изменить, начнётся новый мир, а старый останется на диске, поэтому меняйте название, только если хотите начать заново.
- Пароль сервера: пароль для входа. Оставьте пустым, если пароль не нужен.
- Сложность: story, solo, normal, hard или custom. Она применяется при первом создании мира и не меняет уже существующий мир.
- Автообновление: в разделе Показать расширенные параметры. По умолчанию включено, при каждом запуске сервера проверяет в Steam наличие новой сборки.
- Нажмите Перезапустить для сервера и снова дождитесь строки о готовности.
- Зайдите. В Return to Moria откройте Advanced Join Options и используйте Direct Join с адресом и портом вашего сервера (адрес для входа из письма или панели). Введите пароль, если вы его задали.
Что наша настройка делает за вас
- Ключи, которые панель записывает при каждом запуске.
OptionalPassword, ListenPort (игровой порт вашего сервера), Name и Difficulty.Preset переписываются из панели, а AdvertiseAddress получает значение auto, AdvertisePort получает -1. Ручная правка любого из них в файле будет заменена при следующем запуске, поэтому меняйте их в Настройки игры. Другие ключи, такие как ServerFPS, не затрагиваются: правьте их в разделе Файлы при остановленном сервере.
- Папка для модов существует. На наших серверах есть папка
Moria/Content/Paks/~mods для файлов модов, и команда запуска создаёт её каждый раз, потому что обновление SteamCMD может удалить пустую папку. В нашем собственном тесте мод, положенный туда, был подключён сервером. Мод для этой игры обычно состоит из трёх файлов с одним именем и окончаниями .pak, .ucas и .utoc, и класть нужно все три вместе. У этой игры нет Steam Workshop. Нужен ли мод и игрокам, зависит от самого мода, поэтому смотрите его страницу.
- Повторы установки. В наших собственных установках загрузка SteamCMD иногда завершалась сбоем, хотя сообщала об успехе. Наш скрипт установки проверяет, что манифест приложения существует, и повторяет попытку до трёх раз, вместо того чтобы оставить пустой сервер.
- Резервные копии. Если в вашем плане есть резервные копии, сделайте одну в разделе Резервные копии перед ручным редактированием конфигурации или сменой модов.
Руководства на после настройки: Как подключиться к серверу Return to Moria, Как изменить настройки сервера Return to Moria и Как сделать бэкап мира Return to Moria и восстановить его.
Запустить самому или арендовать: честное сравнение
- Стоимость. Свой сервер: программа бесплатная, вы платите за железо, электричество и трафик. Аренда: ежемесячная плата по плану. Смотрите текущий план.
- Доступность. Свой сервер: надёжен настолько, насколько надёжны ваша машина и домашний интернет, и он должен работать, пока играют друзья. Аренда: работает на оборудовании хостера, а не на вашем компьютере.
- Сетевая открытость. Свой сервер: игроки подключаются к вашему публичному IP, а роутером и брандмауэром занимаетесь вы. Аренда: ваш домашний IP не задействован.
- Нужные навыки. Свой сервер: SteamCMD, INI-файл и проброс портов, а руководство разработчиков охватывает только Windows. Аренда: веб-панель с полями формы.
- Обновления. Свой сервер: после каждого патча снова выполните команду SteamCMD и перезапустите, чтобы версия сервера совпадала с версией игроков. Аренда: Автообновление устанавливает новую сборку при запуске сервера, поэтому после патча перезапустите его.
Свой сервер подойдёт, если Windows-компьютер и так работает целый день и вы уверенно обращаетесь с сетями. Аренда подойдёт, если вы не хотите заниматься железом.
Частые проблемы и решения
Друзья не могут подключиться
Причина: порт 7777 (или порт из вашего раздела Host) недоступен из интернета.
Решение: разрешите его в брандмауэре и пробросьте на роутере, затем попросите кого-нибудь вне вашей сети попробовать Direct Join. На той же машине используйте Join Locally Hosted Server.
Ваши правки конфигурации игнорируются
Причина: сервер работал, когда вы сохраняли файл. Изменения применяются только при следующем запуске, а некоторые команды консоли переписывают файл, пока сервер работает.
Решение: остановите сервер, отредактируйте MoriaServerConfig.ini, затем запустите его. На PlayNHost ключи из Настроек игры тоже переписываются при каждом запуске, поэтому меняйте их там.
Вместо старого мира появился новый
Причина: название мира не совпало ни с одним существующим сохранением, поэтому сервер создал новый мир.
Решение: укажите точное название существующего мира или впишите имя его файла .sav в OptionalWorldFilename.
Сервер зависает при загрузке мира
Причина: известная проблема, о которой пишут разработчики.
Решение: переключитесь на консоль сервера и нажмите любую клавишу, как сказано в руководстве разработчиков.
Мод ничего не делает (PlayNHost)
Причина: сначала проверьте, что файлы .ucas и .utoc, которые шли вместе с .pak, тоже загружены, и в нужную папку.
Решение: загрузите .pak, .ucas и .utoc вместе в Moria/Content/Paks/~mods и перезапустите сервер.
FAQ
Можно ли бесплатно создать сервер Return to Moria?
Да. Выделенный сервер это бесплатный инструмент, а SteamCMD не требует аккаунта Steam. Но вы всё равно платите за машину, электричество и интернет, и сервер должен работать, пока люди играют.
Сколько игроков может зайти?
По словам разработчиков, одновременно могут быть подключены восемь. Ограничения на число разных игроков, которые пользуются сервером со временем, нет. Наш план рассчитан на 8 игроков.
Какой порт использует сервер Return to Moria?
По умолчанию 7777, его можно изменить в разделе Host файла MoriaServerConfig.ini.
Могут ли зайти игроки с консолей?
Да. Разработчики пишут, что к выделенному серверу могут подключаться игроки на Steam, Epic, PS5 и Xbox Series X|S. После патча они просят всех полностью обновиться, чтобы избежать проблем с мультиплеером и кроссплеем, поэтому обновляйте и сервер.
Можно ли перенести мой существующий мир на сервер?
Да. Скопируйте файл MW_ .sav из папки сохранений вашего компьютера (SaveGamesSteam или SaveGamesEpic в AppData\Local\Moria\Saved) в папку сохранений сервера. На PlayNHost загрузите его в разделе Файлы при остановленном сервере, затем задайте в Настройки игры поле Название мира с названием этого мира, потому что панель переписывает Name при каждом запуске.