Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Установка Quake 3 сервера на Ubuntu Server  (Прочитано 12457 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн RAmer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
  • механик
    • Просмотр профиля
Установка Quake 3 сервера на Ubuntu Server
« : 21 Сентября 2009, 17:15:55 »
поднятие выделеного игрового сервера Quake 3 ещё проще, чем для CS 1.6.

(база: AMD Sempron 2800+ 2GHz, 768Mb, 80Gb, Ubuntu server 9.04)


1. заходим в систему под рутом и скачиваем дистрибутив с официального сервера idSoftware (29Mb):
# wget ftp://ftp.idsoftware.com/idstuff/quake3/linux/linuxq3apoint-1.32b-3.x86.run
2. даём права скачанному файлу на запуск:
# chmod +x linuxq3apoint-1.32b-3.x86.run
3. запускаем его:
# ./linuxq3apoint-1.32b-3.x86.runв зависимости от того, в каком режиме (графическом или консольном) вы работаете, вы увидите различное представление одного и того же инсталлятора.

и да. устанавливая quake 3, убедитесь, что выделена опция "Dedicated server".

по умолчанию игра устанавливается в /usr/local/games/quake3.

в релизе есть далеко не всё, что нам надо.
а надо нам файл pack0.pk3. взять его можно с диска с игрой или скопировать из уже установленной игры.

4. скопировать pack0.pk3 в папку на сервере baseq:
# cp /path/pack0.pk3 /path/with/game/baseq/
дальнейшие действия проводим из-под аккаунта обычного пользователя. хотя мы и полностью уверены, что quake3 не нанесёт никакого вреда системе, будучи запущенным от суперпользователя, но всегда, когда расширенные права не нужны, лучше ими не пользоваться.

5. заходим в /usr/local/games/quake3, и запускаем сервер с нужными нам параметрами:
$ cd /usr/local/games/quake3
$ ./q3ded +set fs_game osp +set sv_strictauth 0 +set sv_pure 0 +map q3dm6

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

6. вам наверняка надоест каждый раз печатать кучу параметров для коммандной строки сервера. этот процесс можно легко автоматизировать, создав простой скрипт. у пользователя нет прав писать в директорию /usr/local/games/quake3, поэтому создадим скрипт в домашней директории. назовём его q3.sh:

$ 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

7. даём скрипту права на исполнение:
$ chmod +x q3.sh
8. чего не хватает в простом скрипте? во-первых, при закрытии консоли, в которой скрипт был запущен, закроется и сервер. это неудобно, если вы хотите, чтобы ваш сервер работал 24/7. во-вторых, если таким скриптом мы запустим два сервера, то их логи будут писаться в один и тот же файл. впоследствии их будет невозможно разобрать.

первая проблема решается очень просто. мы будем запускать сервер в фоновом режиме. предварительно надо убедиться, что в конфигах и параметрах командной строки есть всё, что нам нужно. в конфиге необходимо прописать rconPassword, потому что это будет единственный способ управления сервером. сервер запускается в фоновом режиме добавлением "<&/dev/null &" в конце строки с параметрами.

решение второй проблемы тоже простое, но оно может показаться нетривиальным. логи сервера пишутся в домашнюю директорию пользователя. в 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 15000
  +exec 1v1.cfg  >&/dev/null &
 exit
;;
stop)
 killall q3ded
;;
*)
 echo "Usage: "
 exit 1
esac
exit 0

теперь сервер запускается и останавливается командами:
$  /home/user/q3.sh start
$  /home/user/q3.sh stop



на этом всё. благодарю за внимание. по вопросам допиливания статьи пишите мне в жаббер.

-= статья про выделенный сервер CS: Source (https://forum.ubuntu.ru/index.php?topic=68335.0)=-
« Последнее редактирование: 01 Октября 2009, 08:22:43 от RAmer »
делай добро и бросай его в воду!

 

Страница сгенерирована за 0.031 секунд. Запросов: 25.