1. Установка Quake сервера
2. Запуск сервера Quake
3. Модификация скрипта сервер Quake
Поднятие выделенного игрового сервера Quake 3 ещё проще, чем для CS 1.6 (читаем статью как сделать сервер CS). (база: AMD Sempron 2800+ 2GHz, 768Mb, 80Gb, Ubuntu server 9.04)
Установка сервера Quake 3
Заходим в систему как root пользователь (как это сделать читаем в статье Ubuntu server настройка сети) и скачиваем дистрибутив с официального сервера idSoftware (около 29Mb):
Загрузка и установка пакета сервера Quake 3 (3 команды) |
wget ftp://ftp.idsoftware.com/idstuff/quake3/linux/linuxq3apoint-1.32b-3.x86.run |
В зависимости от того, в каком режиме (графическом или консольном) вы работаете, вы увидите различное представление одного и того же инсталлятора. Устанавливая quake 3, убедитесь, что выделена опция "Dedicated server". По умолчанию игра устанавливается в /usr/local/games/quake3. В релизе есть далеко не всё, что нам надо, а надо нам файл "pack0.pk3". Взять его можно с диска с игрой или скопировать из уже установленной игры.
скопируем pack0.pk3 в папку на сервере baseq (1 команда) |
cp /path/pack0.pk3 /path/with/game/baseq/ |
Дальнейшая установка может происходит под обычным пользователем.
Запуск сервера Quake 3
Запуск сервера /usr/local/games/quake3 с нужными нам параметрами (2 команды) |
cd /usr/local/games/quake3 |
в консоли вы увидите полный лог сервера, и после загрузки появится возможность вводить команды. Терминал, из которого был запущен сервер станет обычной консолью, к которой вы уже привыкли. Вам наверняка надоест каждый раз печатать кучу параметров для коммандной строки сервера. Этот процесс можно легко автоматизировать, создав простой скрипт. у пользователя нет прав писать в директорию /usr/local/games/quake3, поэтому создадим скрипт в домашней директории. назовём его q3.sh:
Создаем скрипт (1 командf) |
nano -w /home/path/q3.sh |
В открывшемся документе прописываем команды
#!/bin/bash
cd /usr/local/games/quake3/
./q3ded +set com_hunkmegs 32 +set net_port 27960 +set dedicated 1 +set vm_game 2 +set vm_cgame 2 +set vm_ui 2 +set fs_game osp
+set sv_strictAuth 0 +set sv_punkbuster 0 +set sv_lanForceRate 1 +set sv_maxrate 15000 +exec 1v1.cfg
Даем скрипту права на исполнение (1 команда) |
$ chmod +x q3.sh |
Модификация скрипта сервера Quake 3
1. Запуск сервера в фоновом режиме
2. Разделение консолей при запуске более одного сервера Quake 3
Запуск сервера Quake 3 в фоновом режиме
Запуск в фоновом режиме сводится к предварительному добавлению параметра rconPassword, так как это единственный способ управления сервером. Сервер запускается в фоновом режиме добавлением <&/dev/null & в конце строки с параметрами.
Разделение консолей сервера Quake 3
Логи сервера пишутся в домашнюю директорию пользователя. в Linux версии Quake III есть специальная переменная, которая определяет местоположение домашней директории - это переменная fs_homepath. Мы присвоим ей значение /home/user/.q3a-server1.
кроме того добавим удобный интерфейс для запуска и остановки сервера. Теперь скрипт будет выглядеть так:
#!/bin/bash
cd /usr/local/games/quake3/
case "" in
start)
nice -n 0 ./q3ded +cvar_restart
+set com_hunkmegs 32
+set net_port 27960
+set dedicated 1;
+set vm_game 2
+set vm_cgame 2
+set vm_ui 2
+set fs_game osp
+set fs_homepath /home/quake3/.q3a-server1
+set sv_strictAuth 0
+set sv_punkbuster 0
+set sv_lanForceRate 1
+set sv_maxrate 1500
+exec 1v1.cfg >&/dev/null &
exit
;;
stop
killall q3ded
;;
*)
echo "Usage: "
exit 1
esac
exit 0
Запуск сервера Quake 3: (1 команда) |
$ /home/user/q3.sh start |
Остановка сервера Quake 3: (1 команда) |
$ /home/user/q3.sh stop |