RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Представляю установку всеми любимого игро-мясо-экшена 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".
====================================================================
.2) Из прочтенного Ищем любой дистрибутив Quake 3 и копируем pak0.pk3 в
# /usr/local/libexec/linux-quake3/baseq3
.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) Настройки могут очень сильно лаврироватся я приведу свой конфиг q3dead.conf
g_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
#Bots set bot_enable 1 # Включаем ботов addbot uriel 3100 # Добавляем бота + его хар-ки addbot slash 2100 addbot anarki 3100 addbot bones 2100 addbot klesk 3100 addbot orbb 2100 addbot sorlag 3100 addbot doom 2100 addbot xaero 3100 addbot xaero 3100 bot_minplayers 10 # Заменяет бота клиентом когда тот подключится # Сдесь потдерживатся 9 ботов автоматом. При двойке кол-во ботов # будет уменьшатся (кикатся) до 1го.
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.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)
6.3) При необходимости делаем скрипты запуска как было описано выше по Linux-quake3 в пп 2.3
Я сделаю сразу для 3х кваковских сервера с последующей автозагрузкой.
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)