Установка Quake 3 сервера на Linux

Требования для сервера Quake 3

Для поднятия сервера по Quake 3 нам понадобится:

  1. Оригинальные файлы игры. Взять их можно с диска с игрой, с любого сервиса цифровой дистрибуции (Steam, GOG), или еще где.
  2. Рекомендуется не использовать оригинальные исполняемые файлы игры для поднятия сервера, а взять какие-нибудь модифицированные — например cnq3, ioquake 3, quake3e или еще какой. В данной статье в качестве примера будет использоваться quake3e (неофициальная пользовательская модификация оригинального кода). Скачать его можно по этой ссылке.

Настройка операционной системы

В качестве примера использовалась операционная система Debian 7 версии.

Если операционная система, где нужно поднять сервер по Quake 3, является 64 разрядной, а вы планируете запускать сервер для 32 разрядной системы, то необходимо выполнить следующую команду:

dpkg --add-architecture i386

Которая добавит в систему поддержку исполняемых файлов архитектуры i386 (32 битной).

Далее выполняем обновление базы доступных пакетов:

aptitude update

Теперь устанавливаем необходимые библиотеки:

aptitude install ia32-libs-i386

Устанавливаем программу screen для более приятного и удобного администрирования сервером:

aptitude install screen

Установка и настройка сервера

Создаем папку под сервер — например по пути /usr/local/games/quake3.

Далее:

  • Копируем папку baseq3, где должны быть следующие файлы:
    • pak0.pk3
    • pak1.pk3
    • pak2.pk3
    • pak3.pk3
    • pak4.pk3
    • pak5.pk3
    • pak6.pk3
    • pak7.pk3
    • pak8.pk3
  • В корневой директории нужен только исполняемый файл выделенного сервера — quake3e.ded (или quake3e.ded.x64).

Кроме того, если стоит задача поднять сервер по какому-либо моду — например CPMA (Challenge Promode Arena — мод, на котором проходили все турниры последних лет, является заменой OSP), то необходимо:

  • Скачать дистрибутив cpma (ссылка) и его официальный маппак, который необходим для работы — ссылка;
  • Копируем содержимое архива в папку с сервером — папки baseq3 и cpma.

Теперь можно запустить сервер:

screen -d -m -A -S quake3_27960 /usr/local/games/quake3/quake3e.ded +set dedicated 2 +set net_ip ваш_ип +set net_port 27960 +set fs_basepath /usr/local/games/quake3 +set fs_homepath /usr/local/games/quake3/27960 +set fs_cdpath /usr/local/games/quake3 +set fs_game cpma +set vm_game 2 +set sv_maxclients 16 +exec server.cfg +map cpm22

Краткое описание того, что понаписано в параметрах запуска выше:

screen -m -A -S quake3_27960 — запускаем screen сессию, с именем quake3_27960. Теперь при рабочем сервере мы всегда можем на неё зайти, и посмотреть, что там происходит.
Делается это следующей командой

screen -x quake3_27960

Выйти из сессии screen без её закрытия можно клавишами ctrl + A + D.

set dedicated 2 — запускает сервер в выделенном режиме;
net_ip — задает ip адрес, который будет использоваться для работы сервера;
net_port — задает используемый сервером порт;
fs_basepath — указывает папку в которой лежат файлы игры;
fs_homepath — указывает директорию, которая будет использоваться запущенным сервером для хранения логов или конфигов — очень удобно, если планируется запускать несколько серверов с одного исполняемого файла;
fs_cdpath — аналогична fs_basepath;
fs_game — указывает папку с используемым модом (если не планируется использование мода, то данная команда не нужна);
vm_game 2 — команда, которая необходима для корректной работы сервера cpma;
sv_maxclients 16 — максимальное количество клиентов на сервере;
map cpm22 — запускаемая карта по умолчанию, можно изменить на любую другую.

Если нужно запустить два сервера, то строка запуска должна выглядеть следующим образом:

screen -d -m -A -S quake3_27961 /usr/local/games/quake3/quake3e.ded +set dedicated 2 +set net_ip 46.38.51.104 +set net_port 27961 +set fs_basepath /usr/local/games/quake3 +set fs_homepath /usr/local/games/quake3/27961 +set fs_cdpath /usr/local/games/quake3 +set fs_game cpma +set vm_game 2 +set sv_maxclients 16 +exec server.cfg +map cpm22

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *