Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> Games Servers —> Quake III Arena

Quake III Arena

Автор: Raven2000.


Представляю установку всеми любимого игро-мясо-экшена 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.1) Далее копируем паки.
# cp -r /usr/local/share/quake3/baseq3 /usr/local/libexec/linux-quake3

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.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 3 100			# Добавляем бота + его хар-ки
addbot slash 2 100
addbot anarki 3 100
addbot bones 2 100
addbot klesk 3 100
addbot orbb 2 100
addbot sorlag 3 100
addbot doom 2 100
addbot xaero 3 100
addbot xaero 3 100
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					# отредактируем

Добавляем в скрипт.
#!/bin/sh
killall q3ded
cd /usr/local/libexec/linux-quake3
./q3ded +set com_hunkmegs 35 +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_pure 0 +set sv_strictAuth 0 +set sv_punkbuster 0 \
+set sv_lanForceRate 1 +set sv_maxrate 15000 \
+exec q3dead.conf >/dev/null 2>&1 &

Смотрим строчки.
killall q3ded - убиваем запущенные сервера q3
+exec q3dead.conf - какой конфиг берем
>/dev/null 2>&1 - говорит чтобы все выводы фтопку т.е. запуск в бекграунде

2.4) Запускаем Q3 сервер.
#sh startq3.sh

или так
#/usr/local/libexec/linux-quake3/startq3.sh

Проверяем стартанул ли
# ps ax |grep q3
 5687  p0  S      0:14.71 [q3ded]
 5694  p0  S+     0:00.01 grep q3

# sockstat |grep q3ded
root     q3ded      5687  12 udp4   *:27960               *:*

Все теперь можно забить на работу и играть :)

2.3)В ручную "стопарнуть" все серверы Q3 можно так.
# killall q3ded

Или запустив наш скрипт, он убьет предыдущие все серверы, и запустить свои.

3) Теперь о запуске 2-3-10 серверов на 1 машине
Тоже самое, что и 1 сервер + добавляем еще одну (сколько нужно) строчку возьмем, например,
сделаем скрипт для 2х кваковских сервера.
Если необходимо делаем второй конфиг и дополнительный стартовый скрипт.
# touch startq32X.sh				# создадим скрипт
# chmod +x startq32X.sh			        # дадим права запуска
# ee startq32X.sh				# отредактируем

В нем нужно указать собственно запуск 2 серверов
#!/bin/sh
killall q3ded
cd /usr/local/libexec/linux-quake3
./q3ded +set com_hunkmegs 35 +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_pure 0 +set sv_strictAuth 0 +set sv_punkbuster 0 \
+set sv_lanForceRate 1 +set sv_maxrate 15000 \
+exec q3dead.conf >/dev/null 2>&1 & \
./q3ded +set com_hunkmegs 35 +set net_port 27961 +set dedicated 1 \
+set vm_game 2 +set vm_cgame 2 +set vm_ui 2 +set fs_game osp \
+set sv_pure 0 +set sv_strictAuth 0 +set sv_punkbuster 0 \
+set sv_lanForceRate 1 +set sv_maxrate 15000 \
+exec 1v1.conf >/dev/null 2>&1 &

Да и главное порты в 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.2) Запускаем сервер
q3ded +set com_hunkmegs 35 +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_pure 0 +set sv_strictAuth 0 +set sv_punkbuster 0 \
+set sv_lanForceRate 1 +set sv_maxrate 15000 \
+exec q3dead.conf >/dev/null 2>&1 &

6.3) При необходимости делаем скрипты запуска как было описано выше по Linux-quake3 в пп 2.3
Я сделаю сразу для 3х кваковских сервера с последующей автозагрузкой.
#touch /etc/rc.d/startq33X.sh
#ee /etc/rc.d/startq33X.sh

Вписываем
#!/bin/sh
/usr/local/bin/q3ded +set com_hunkmegs 35 +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_pure 0 +set sv_strictAuth 0 +set sv_punkbuster 0 \
+set sv_lanForceRate 1 +set sv_maxrate 15000 \
+exec q3dead.conf >/dev/null 2>&1 & \
/usr/local/bin/q3ded +set com_hunkmegs 35 +set net_port 27961 +set dedicated 1 \
+set vm_game 2 +set vm_cgame 2 +set vm_ui 2 +set fs_game osp \
+set sv_pure 0 +set sv_strictAuth 0 +set sv_punkbuster 0 \
+set sv_lanForceRate 1 +set sv_maxrate 15000 \
+exec q3team.conf >/dev/null 2>&1 & \
/usr/local/bin/q3ded +set com_hunkmegs 35 +set net_port 27962 +set dedicated 1 \
+set vm_game 2 +set vm_cgame 2 +set vm_ui 2 +set fs_game osp \
+set sv_pure 0 +set sv_strictAuth 0 +set sv_punkbuster 0 \
+set sv_lanForceRate 1 +set sv_maxrate 15000 \
+exec 1v1.conf >/dev/null 2>&1 &

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)

И так Kill'em All!!



размещено: 2007-04-11,
последнее обновление: 2009-05-27,
автор: Raven2000


Dead, 2007-04-11 в 22:10:06

Круто. Спасибо, пригодится. Давай дальше контру 1.6 =)
И както не верится что фря настолько производительнее виндов, т.к. на ip4/2.4/1024M - на 10 человек лагает ужасно (при 100мб)

Maximka, 2007-04-15 в 17:22:23

Вы чё, мужики? Какой линуксовый порт? Квака 3 есть родная фряшная без эмуляции! Внимательней в порты посмотрите!
Зачем эмуляция? То ж целое событие было, когда вышла родная фряшная квака! За статью спасибо.

kae_wituS, 2007-04-26 в 14:07:51

Тут лучше бы привели побольше конфигов для кваки 3!!!
Пример: МОД OSP 1.03a 1vs1 по запуску ready,
OSP 1.03a Free For All - причём если 1 человек бегает то 2 подключившийся без ready начал с ним сразу играть и все последующие подключившиеся игроки сразу входили в игру, а не на следущей карте...
и тоже самое для МОДА CPMA...
как Сказал Maximka почему тут используют порт Линуксовый??? блин я ж подымал сервак и без Линукса и всё прекрасное работает...
Мой пожелание переписать статейку под FreeBSD-ный порт...

lissyara, 2007-04-26 в 14:23:45

Я конечно не автор статьи, но пока его нет - отвечу за него - сами не хотите написать, а не другим советовать?

Raven2000, 2007-04-26 в 20:48:16

Спешел фо kae_wituS,
>Мой пожелание переписать статейку под FreeBSD-ный порт...
Вообще то если ты пытался читать статью то в конце ее есть по FreeBSD-ный порт... Здесь 2 варианта установки и они очень похожи каждый выбирает для себя. Читай лучше..
>Тут лучше бы привели побольше конфигов для кваки 3!!!
Знаешь сколько конфигов для нее? Офуеть каждый сам под себя делает под мод и т.д. т.п. Если сделаешь универсальный напиши сюда:)

creativ, 2007-04-29 в 0:46:47

Я таки и не понял зачем описывается линуксовый квейк? может действительно переписать?

RomC, 2007-04-30 в 12:48:30

При установке кваки с портов тоже ставится эмуль линукса так что можно ставить как угодно всеравно пашет под эмулем...
p.s. после долгих настроек уваки и контры на BSD всетаки пришлось ставить отдельную машинку для игр под линуксом так как эмуляция ужасно тормозит.

Raven2000, 2007-05-08 в 9:22:04

Для creativ,
см 6)Установка Quake3

RomC на счет эмуля ты неправ чистая квака из 6) параграфа его НЕ ТРЕБУЕТ! Я описал в двух вариантах линуксовую и чистую. Чистая без эмуля работает и меж прочим жрет проц меньше. Да и правильно на отдельную машину поставил :)

risk94, 2007-06-18 в 17:40:03

Подскажите пжалста, какие пакаджи нужны для установки. Тянуть не могу - нет инета в локалке. Пакаджи выкачаю на работе. ОС - 6.0 Спасибо

Neteru, 2007-06-21 в 13:55:50

СУПЕР! Проверенно работает =) На 6.2 из портов. Кстати, что касается OSP там есть такая приблюда для настройки сервера "OSP Config Generator.exe" идет в комплекте... Так там очень все удобно настраиваешь и потом заливаешь файлик на Фрю и все Ок!

TORPEDANOSEC, 2007-06-25 в 16:19:46

Здрасти!
Поставил кваку на FreeBSD...
Взял Ваш конфиг, вставил его...
Сервак работал ровно сутки... потом этот конфиг на отказ перестал запускаться... и все другие после него...
где капать???

Maximka, 2007-06-27 в 21:48:16

Внимание! Порт Quake III Arena под FreeBSD для AMD64 называется ioquake. Сам наткнулся на такое. Всё работает ОК.

kae_wituS, 2007-08-16 в 16:51:27

Привет ВСЕМ!!!
Кто нибуть ставил статистику для Quake III Arena?
во FreeBSD есть порт /usr/ports/games/phpua-q3/
Это есть php движок для отображения статистики, но что то ругается при установки и не работает (Ругается на тайм зону, хоть и прописали её, всю голову сломали)...
Было бы хорошо если кто то уже ставил и настроил его... и всё это описал... Буду При много благодарен...

Alex, 2007-09-29 в 3:50:09

Было бы супер если бы уважаемый lissyara написал бы похожее как сделать под COD2)))

Maximka, 2007-09-29 в 11:41:53

Наши настроили cod15. Под фрёй работает. Есть клиент 2Гб. cod.rovno.ua
Можем поделиться...

smilealex, 2007-11-02 в 16:37:18

Ойеее!!! квака!!! ПАШЕТ!!! прусь))

Raven2000, 2007-11-12 в 12:46:33

Ну что Лис напишесь статью по COD2 как эту написал (Бугааа)
Не фотки нужно делать и отпечаток зрачков :)
>Наши настроили cod15. Под фрёй работает. Есть клиент 2Гб. cod.rovno.ua
ссылку плз

BergeR, 2007-11-23 в 8:10:12

Привет!!!
А может кто нить написать как установить на FreeBSD сервер Lineage II?

Green, 2008-02-03 в 18:12:53

Напишите про COD2 =)
зы пожелаю всем коллегам пива побольше =)

Pez, 2008-03-23 в 14:42:10

Здравствуйте, если все еще нужна статья по установке кода 2 под фрю с удовольствием напишу

Raven2000, 2008-03-25 в 9:45:05

To Pez,
Конечно пиши! =)

dialup, 2008-05-03 в 13:11:49

kae_wituS, 2007-08-16 в 16:51:27

Привет ВСЕМ!!!
Кто нибуть ставил статистику для Quake III Arena?
во FreeBSD есть порт /usr/ports/games/phpua-q3/

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

desc_, 2008-06-10 в 23:50:36

У меня всё запустилось
server# ps -ax|grep q3
35604  p4  R      8:31.97 [q3ded]
35605  p4  R      8:42.28 [q3ded]
35606  p4  R      8:43.65 [q3ded]
37966  p4  DL+    0:00.00 grep q3
но к серваку не подключает, просто waiting и всё, в чём может быть причина?

Desc__, 2008-06-11 в 0:39:14

Всё разобрался, вё работает

LiNer, 2008-08-11 в 12:26:34

Desc_
У меня та же проблема, не подскажешь в чем грабли?

san4es, 2008-09-08 в 16:11:46

Вот здесь [url=http://www.bsdportal.ru/viewtopic.php?t=14809&view=next&sid=bb32f67bff139a8535e5b7abed1e0b96]по поводу Time зоны для phpua написано. Я вставил в index.php в самом начале вот это
   date_default_timezone_set("Europe/Moscow");
и все заработало
вот кусок начала файла
// $Id: index.php,v 1.14 2004/03/10 10:45:44 mad-x Exp $^
   // Created by Kris Splittgerber (kris@phpua.com)^
   ^
   date_default_timezone_set("Europe/Moscow");
   $phpUA["ENGINE"]["TIME"] = time();^
   if (version_compare(phpversion(), "4.1.0", "<")) die("phpUA requires PHP version 4.1.0 or greater. You are running version "  . phpversion() . ".");^
   ^
   // PHP Settings^

GRooVE, 2008-12-04 в 18:00:52

Сервак постоянно стартует на локальном интерфейсе. Как его запустить на внешнем? Гуглил - не нашел :(

QQQAngelQQQ, 2008-12-29 в 10:55:40

Респект за Q-3

fReeK, 2009-01-02 в 22:11:23

напиши плиз как Lineage II поставить под 7.0

Raven2k, 2009-01-07 в 21:10:19

to fReeK
у меня нету ни клиента ни сервера (не с чего ставить), но думаю там ничего сложного нет и любой справится.

stark, 2009-02-02 в 14:48:07

Privet, vsem
stolknulsya s tem, chto pak0.pk3 netu nigde !
stavil versiyu FreeBSD - netu, linux versii - tozhe netu ! kuda pak0.pk3 mog detsya ?

Raven2000, 2009-02-02 в 15:01:41

Возьми диск с квакой у любого друга оттуда и возьмешь pak0.pk3 (см п 1.2)

stark, 2009-02-02 в 16:41:00

to Raven2000,
v tom to i delo, chto est vse drugie pak*.pk3, no tolko ne pak0.pk3 , delal find / -name pak0.pk3 - pusto

Pez!, 2009-02-02 в 17:57:24

тебе надо найти диск с игрой или саму игру и взять ИЗ НЕЁ этот файл.

stark, 2009-02-03 в 9:40:47

Spasibo , zavelos vse ;]

Raven2000, 2009-05-27 в 22:54:16

Добавил ветку обсуждения все вопросы туда.

Archer, 2009-06-13 в 22:27:38


из rc.d не стартует q3
freebsd 7.2

elition, 2010-05-18 в 9:37:43

Для запуска сервера на определенном ip
+set net_ip 10.11.12.13

maxijon_tj, 2010-10-08 в 18:10:57

привет всем народ!!! я все сделал все работает подскажите как менять карту на консоли ато запускается и играю на одном.



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0423 секунд
Из них PHP: 40%; SQL: 60%; Число SQL-запросов: 77 шт.
У Вас отключено GZIP-сжатие в браузере. Размер страницы 63883