Приветствую. Вы попали на страницу руководства по установке, настройке и запуску выделенного сервера (Dedicated Server) для игры Mordhau в операционной системе Linux. Данное руководство поможет вам создать ваш собственный сервер для игры с другими людьми в интернете или по локальной сети. Все действия будут продемонстрированы на операционной системе Debian Linux 9.9 64-bit и на виртуальной машине, созданной в Oracle VM VirtualBox. И так, начнём.
Установка утилиты SteamCMD
Первым делом что вам потребуется сделать, так это скачать официальную утилиту от Valve под названием SteamCMD. Это консольная программа, которая предназначена для скачивания и обновления выделенного сервера для различных мультиплеерных игр.
Вам потребуется создать в домашней директории пользователя папку mordhau_server, а в ней уже подпапку steamcmd:
mkdir mordhau_server
cd mordhau_server
mkdir steamcmd
cd steamcmd
Далее вам нужно скачать архив с утилитой SteamCMD и разархивировать содержимое архива в папку steamcmd:
curl -sqL «https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz» | tar zxvf —
Для того чтобы утилита SteamCMD нормально функционировала в операционной системе Linux вам нужно установить пакет (зависимость):
sudo apt-get install lib32gcc1
Скачивание сервера
Для того чтобы скачать выделенный сервер (dedicated server) для игры Mordhau вам потребуется создать bash-скрипт в папке ~/mordhau_server/:
cd ~/mordhau_server/
nano mordhau_server_install.sh
В bash-скрипте mordhau_server_install.sh вы должны прописать следующее:
#!/bin/sh
cd steamcmd
screen -A -m -d -S mordhau_server_install ./steamcmd.sh +@ShutdownOnFailedCommand 1 +@NoPromptForPassword 1 +login anonymous +force_install_dir ~/mordhau_server/ +app_update 629800 validate +quit
Теперь давайте разъясним себе, что за параметры для SteamCMD написаны выше и зачем они вообще нужны:
steamcmd.sh — bash-скрипт утилиты SteamCMD.
+@ShutdownOnFailedCommand 1 — параметр, который отвечает за то, будет ли SteamCMD завершать свою работу при ошибке.
+@NoPromptForPassword 1 — параметр, который отвечает за отключение запроса пароля при скачивании файлов.
+login anonymous — Вход в анонимный/гостевой аккаунт Steam. Этого аккаунта достаточно для скачивания файлов сервера. Вы можете войти в свой аккаунт Steam, используя +login имя_пользователя пароль.
+force_install_dir ~/mordhau_server/ — параметр, который отвечает за путь установки вашего сервера.
+app_update 629800 validate — параметр, который отвечает за указание для SteamCMD на то, какие файлы сервера он должен скачать. +app_update означает скачивание, 629800 означает id сервера Mordhau в Steam, validate означает, что если файлы сервера уже есть в папке, то нужно их проверить и только обновить.
+quit — параметр, который отвечает за автоматический выход из утилиты SteamCMD после завершения скачивания файлов сервера.
Затем вам потребуется сделать bash-скрипт исполняемым (т.е. чтобы его возможно было запустить):
chmod +x mordhau_server_install.sh
После чего вы можете запустить скачивание вашего сервера:
./mordhau_server_install.sh
Просмотреть запущенный процесс SteamCMD можно командой:
screen -x mordhau_server_install
Дождитесь того момента, когда ваш сервер будет скачен и утилита SteamCMD завершит свою работу.
Свернуть процесс, не выключая его, можно сочетанием клавиш Ctrl + A + D.
Если система будет ругаться на неизвестную команду screen, то установите соотвествующий пакет командой:
sudo apt-get install screen
Установка зависимостей для запуска сервера
Для запуска сервера рекомендуется установить следующие пакеты-зависимости командой:
sudo apt-get install libfontconfig1 libpangocairo-1.0-0 libnss3 libgconf2-4 libxi6 libxcursor1 libxss1 libxcomposite1 libasound2 libxdamage1 libxtst6 libatk1.0-0 libxrandr2
Настройка сервера
Для настройки вашего сервера вам потребуется запустить ваш сервер для автоматического создания нужных для редактирования конфигурационных файлов. Также вам потребуется запустить файл MordhauServer.sh в папке ~/mordhau_server/, после чего нужно завершить запущенный процесс сочетанием клавиш на клавиатуре Ctrl + C.
cd ~/mordhau_server/
./MordhauServer.sh
Далее вам потребуется открыть конфигурационный файл Game.ini, который находится в папке ~/mordhau_server/Mordhau/Saved/Config/LinuxServer/ и теперь вы можете отредактировать его на свой вкус:
cd ~/mordhau_server/Mordhau/Saved/Config/LinuxServer/
nano Game.ini
Пояснения в содержимом файла Game.ini:
[/script/mordhau.mordhaugamemode] PlayerRespawnTime=5.000000 — Время возрождения игрока (в секундах).
BallistaRespawnTime=30.000000 — Время возрождения баллисты (в секундах).
CatapultRespawnTime=30.000000 — Время возрождения катапульты (в секундах).
HorseRespawnTime=30.000000 — Время возрождения лошади (в секундах).
DamageFactor=1.000000 — Процент нанесения урона всем игрокам ( 1.0 = 100% ).
TeamDamageFactor=0.500000 — Процент нанесения урона союзникам в команде ( 0.5 = 50% ).
MapRotation=FFA_ThePit — Список карт, доступных на сервере. Каждая новая карта должна начинаться с новой строки и иметь такой формат: MapRotation=Название_карты. [/script/mordhau.mordhaugamesession] MaxSlots=16 — Максимально допустимое количество игроков на сервере.
ServerName=Server — Название сервера.
ServerPassword=password — Пароль для входа на сервер. Если не требуется, оставьте параметр пустым: ServerPassword=
AdminPassword=password — Пароль для администрирования сервера.
BannedPlayers=(steamID64_игрока) — Список забаненных игроков на сервере. Каждый новый забаненный игрок должен начинаться с новой строки и иметь такой формат: BannedPlayers=(steamID64_игрока).
(опционально) Admins=steamID64_игрока — Список администраторов на сервере. Каждый новый администратор сервера должен начинаться с новой строки и иметь такой формат: Admins=steamID64_игрока.
(опционально) bIsLANServer=True — Возможность сделать сервер только для локальной сети. False — для интернета, True — для локальной сети.Под steamID64_игрока подразумевается уникальный ID игрока в Steam. Узнать его можно на сайте https://steamid.io/ .
Измените значения параметров согласно пояснениям выше и сохраните изменения в файле Game.ini сочетанием клавиш на клавиатуре Ctrl + O. Сервер должен находится в выключенном состоянии перед этим действием.
Запуск сервера
Для окончательного запуска сервера вам потребуется создать bash-скрипт в папке ~/mordhau_server/:
cd ~/mordhau_server/
nano mordhau_server_start.sh
В bash-скрипте mordhau_server_start.sh вы должны прописать следующее:
#!/bin/sh
screen -A -m -d -S mordhau_server ./MordhauServer.sh FFA_ThePit -log -port=7777 -queryport=27015 -beaconport=15000
Пояснения:
MordhauServer.sh — Исполняемый bash-скрипт сервера.
FFA_ThePit — Название карты.
-log — Включение записи логов.
-port=7777 — Основной порт, по которому будет идти подключение игроков.
-queryport=27015 — Порт для связи с серверами Steam для добавления сервера в список серверов игры, чтобы сервер было видно игрокам.
-beaconport=15000 — Порт для резервации слота игрока на сервере. Нужен для того что бы не возникало проблем с соединением игрока после смены карты на сервере.
Затем вам потребуется сделать bash-скрипт исполняемым (т.е. чтобы его возможно было запустить):
chmod +x mordhau_server_start.sh
После чего вы можете запустить ваш сервер командой:
./mordhau_server_start.sh
Просмотреть запущенный процесс сервера можно командой:
screen -x mordhau_server
Свернуть процесс, не выключая его, можно сочетанием клавиш Ctrl + A + D.
Если система будет ругаться на неизвестную команду screen, то установите соотвествующий пакет командой:
sudo apt-get install screen
Подключение к серверу
Для подключения к серверу используйте консольную команду в игре:
open Ваш_IP:Порт_сервера
Пример:
open 192.168.1.35:7777
Заключение
На этом установка и настройка выделенного сервера для игры Mordhau окончена. Задавайте свои вопросы в комментариях. Так же приветствуется конструктивная критика и предложения.
Дополнительно: Список доступных карт (все режимы)
MapRotation=FL_Camp
MapRotation=FL_Grad
MapRotation=FL_MountainPeak
MapRotation=FL_TaigaSkirmish / Last Team Standing:
MapRotation=SKM_Camp
MapRotation=SKM_Camp_64
MapRotation=SKM_Contraband
MapRotation=SKM_Grad
MapRotation=SKM_Grad_64
MapRotation=SKM_MountainPeak
MapRotation=SKM_MountainPeak_64
MapRotation=SKM_Taiga
MapRotation=SKM_Taiga_64
MapRotation=SKM_ThePit
MapRotation=SKM_Tourney
Team Deathmatch:
MapRotation=TDM_Camp
MapRotation=TDM_Camp_64
MapRotation=TDM_Contraband
MapRotation=TDM_Grad
MapRotation=TDM_MountainPeak
MapRotation=TDM_MountainPeak_64
MapRotation=TDM_Taiga
MapRotation=TDM_Taiga_64
MapRotation=TDM_ThePit
MapRotation=TDM_Tourney
Deathmatch / Free For All:
MapRotation=FFA_Camp
MapRotation=FFA_Contraband
MapRotation=FFA_Grad
MapRotation=FFA_MountainPeak
MapRotation=FFA_Taiga
MapRotation=FFA_ThePit
MapRotation=FFA_Tourney
Horde:
MapRotation=HRD_Camp
MapRotation=HRD_Grad
MapRotation=HRD_MountainPeak
MapRotation=HRD_Taiga
Battle Royale:
MapRotation=BR_Grad
MapRotation=BR_Taiga
[wpmfc_cab_si]_64 означает, что карты предназначены для серверов с максимальным числом игроков равным 64.[/wpmfc_cab_si]
Дополнительно: Порты для доступа к серверу из вне
Требуемые порты для открытия на вашем маршрутизаторе и для входа на сервер через интернет — 7777, 27015 и 15000.
Дополнительно: Команды администратора
adminlist — Вывод списка администраторов сервера.
adminadd steamID64_игрока — Добавить игрока в качестве администратора на сервер.
removeadmin steamID64_игрока — Удалить игрока из администраторов сервера.
changelevel Название_карты — Сменить карту на сервере.
restartlevel — Перезапустить текущую карту на сервере.
addbots число — Добавить ботов на сервер.
removebots число — Удалить определенное количество ботов на сервере.
kick ник_игрока / steamID64_игрока — Исключить игрока с сервера.
ban ник_игрока / steamID64_игрока — Забанить игрока на сервере.
unban ник_игрока / steamID64_игрока — Разбанить игрока на сервере.
banlist — Вывод списка забаненных игроков на сервере.
slomo значение — Изменить значение скорости передвижения на сервере.