Представляю установку всеми любимого игро-мясо-экшена Quake III Arena именно так и никак не иначе! Будет чем заняться Васе и Пете (и всему отделу) во время работы, т.е. вместо нее :)Как вы догадались, будем ставить на UNIX + требование к оси и железу снижаются ведь сервер обсчитывает только моделированием и взаимодействием клиентов меж собой. А обсчитывание графики и т.д. дело клиентов :) Да и постабильней *BSD будет в отличие от Windows (не всегда конечно все можно сломать но...) (По железу читаем ниже.) По просьбам трудящихся здесь будет описано два вида сервера Q3 linux-quake3 и *BSD quake3 принципиально различий по установки их на *BSD нет, но в последнем как уже понятно не надо никаких линукс совместимостей и прочей лабуды в виду этого выигрышь в производительности. Первым рассматриваем Linux-quake3 соответственно вторым "родной" quake3 со ссылкой на все конфиги и настройки первого. Устанавливая quake3 выделяем "Dedicated server". У кого двухголовый проц. то прошу SMP.
Установка linux-quake3 Он сказал, поехали...
1) Ставим из портов
#cd /usr/ports/games/linux-quake3/ && make install clean
linux-quake3-1.32c ~ 2.8Mb (Требует linux_base-fc-4_9 ~ 30Mb, quake3-data-1.32.b.3_1 ~ 26Mb) (я себе сначала все, что нужно скачал (чтобы в будущем не качать) потом #pkg_add) В конце установки нам показывают (если все нормально)==================================================================== To complete the installation of this port you need to copy the file "baseq3/pak0.pk3" from the original Quake III Arena distribution to "/usr/local/share/quake3/baseq3".
If you have the expansion pack then you have to copy the file "missionpack/pak0.pk3" from the original Quake III Team Arena distribution to "/usr/local/share/quake3/missionpack". ====================================================================
1.2) Из прочтенного Ищем любой дистрибутив Quake 3 и копируем pak0.pk3 в
# /usr/local/libexec/linux-quake3/baseq3
1.3) Теперь надо сделать совместимость с Linux приложениями. В /etc/rc.conf добавляем linux_enable="YES"
2) Теперь пробуем запустить сервак кваки. Создадим конфиг игры + скрипт по запуску в фоне (чтобы консоль не занята, и ненужно километры команд вбивать)
2.1) Конфигов можно делать несколько
# cd /usr/local/libexec/linux-quake3/baseq3 #перейдем
# touch q3dead.conf # создадим конфиг с нужным именем # ee q3dead.conf # отредактируем конф.
2.2) Настройки могут очень сильно лаврироватся я приведу свой конфиг q3dead.confg_gametype 0 # 0-deadmatch 1-1v1 3-teamplay и т.д. fraglimit 100 # кол-во фрагов timelimit 50 # лимит времени sv_maxclients 10 # на сколько клиентов server zombie-q3 sv_hostname "Kill'em All by RaVen" # название игры (сессии) g_motd ">Facking Life<" # стартовое приветствие sv_privateClients 0 sv_privatePassword "" # пароль для закрытых серверов rconpassword "911alex" # админский пас на консоль (rcon) # это для управления сервером проги- # Server Watch, The-All-Seeing Eye. sv_maxRate 10000
#Admin set "Administrator" "Vasa" set "Email" "Pipkin@mail.ru" set "URL" "http://192.168.0.1" set "Location" "HomeNet Game Servers" set "CPU" "QUAKE3 Rules"
#Map Смена карт (сами выбираете карты и последовательность запуска) set d1 "map q3dm6 ; set nextmap vstr d2" set d2 "map q3dm3 ; set nextmap vstr d3" set d3 "map q3dm4 ; set nextmap vstr d4" set d4 "map q3dm5 ; set nextmap vstr d5" set d5 "map q3dm2 ; set nextmap vstr d6" set d6 "map q3dm7 ; set nextmap vstr d7" set d7 "map q3dm8 ; set nextmap vstr d8" set d8 "map q3dm9 ; set nextmap vstr d9" set d9 "map q3dm10 ; set nextmap vstr d10" set d10 "map q3dm11 ; set nextmap vstr d1" vstr d1
g_allowvote 1 g_quadfactor 3 g_syncronousClients 1 g_weaponrespawn 20 g_log q3dead.log # у меня логируется в /usr/compat/linux/root/.q3a/baseq3 или osp # смотря, что пускаете и от кого. Если что # find / -name q3.log :)
Тут представлено лишь очень малая часть конфига этого мне хватает, если понадобится доп. настройки или конфиг, то это легко найти в инете.
2.3) Теперь создадим скрипт запуска можете сразу в консоль вбивать %)# cd /usr/local/libexec/linux-quake3/ # переходим # touch startq3.sh # создадим скрипт # chmod +x startq3.sh # дадим возможность исполнения # ee startq3.sh # отредактируем
Смотрим строчки. killall q3ded - убиваем запущенные сервера q3 +exec q3dead.conf - какой конфиг берем >/dev/null 2>&1 - говорит чтобы все выводы фтопку т.е. запуск в бекграунде
2.4) Запускаем Q3 сервер.#sh startq3.sh
или так#/usr/local/libexec/linux-quake3/startq3.sh
2.3)В ручную "стопарнуть" все серверы Q3 можно так.# killall q3ded
Или запустив наш скрипт, он убьет предыдущие все серверы, и запустить свои.
3) Теперь о запуске 2-3-10 серверов на 1 машине Тоже самое, что и 1 сервер + добавляем еще одну (сколько нужно) строчку возьмем, например, сделаем скрипт для 2х кваковских сервера. Если необходимо делаем второй конфиг и дополнительный стартовый скрипт.# touch startq32X.sh # создадим скрипт # chmod +x startq32X.sh # дадим права запуска # ee startq32X.sh # отредактируем
Да и главное порты в net_port недолжен совпадать! иначе фак. Можно конфиги разные указывать т.е. один сервак для деадматча, а второй для дуэли.
4) Автозапуск при загрузке FreeBSD Собственно копируем скрипт в /etc/rc.d и все :) Теперь q3 сервер при загрузке системы стартанет. Да и в скрипте killall q3ded можно для "чистоты" удалить.
5) Безопастность Создайте директорию /games на сервере, куда и будете устанавливать все игры. И на будущее ОБЯЗАТЕЛЬНО создать пользователя и группу (например, gamesman), чтобы устанавливать и запускать игры не под root-пользователем. Соответственно, директорию /games делаем домашней для этого пользователя. Можно конечно ставить и «по умолчанию», но это не гуд, и нарушает безопасность системы в целом.
6)Установка Quake3 Теперь займемся "чистым Q3" установка и настройка все одинаково только папка установки поменялась и все. 6.1) Установим Q3# cd /usr/ports/games/quake3/ && make install clean
Далее скопируем паки и pak0.pk3 с любого дистрибутива в (подобное см пп 1.1 и 1.2 linux-q3)# /usr/local/share/quake3/baseq3/
6.3) При необходимости делаем скрипты запуска как было описано выше по Linux-quake3 в пп 2.3 Я сделаю сразу для 3х кваковских сервера с последующей автозагрузкой.#touch /etc/rc.d/startq33X.sh #ee /etc/rc.d/startq33X.sh
6.4) Смотрим если все ли стартануло.ps ax | grep q3 610 con- R 2:12.72 [q3ded] 611 con- R 1:45.19 [q3ded] 612 con- R 9:56.28 [q3ded]
FAQ) А теперь вопросы/проблемы (решаются по мере поступления) В) Какое железо понадобится для игрового сервера О) Смотря пропорционально нагрузки на сервер (эх как сказал, а инфы нифига :)) Я у знакомого видел на ПК 300МГц 128RAM+*BSD+CounterStrike= сносно шло с 5-6 игроками. Если игроков будет больше и серверов тоже желательно от 800-1000МГц(AMD XP) + 256RAM(DDR) т.е. чем больше, тем лучше. У меня на тестовом серваке, где апатчь, фтп, джаббер, прокси + парсеры разные ПК 900МГц 256RAM+*BSD+Quake3 = 3 кваковских сервера, где постоянное мясо и нагрузка на проц ~35% своп занят на 18% так что еще контру туда поставлю :)
В)При подключение клиента не находит сервер, если принудительно указать и подключится к серверу пишет SERVER USES PROTOCOL VERSION 68 О)Старая версия игры в новой версии протокол изменился. Качаем патчь для кваковского клиента и все пучком (q3a_v1.32)