суббота, 22 июля 2006 г.

UT2004 dedicated server

В даной заметке будет рассмотрена установка сервера UT2004 в локальную сеть со статистикой. Что нам требуется?
А вот что:
1. Собственно сам сервер.
2. PHP и MySQL выше версий 4.2 и 3 соответственно. Ну и web сервер. :)
3. Статистика.
4. Изображения карт к статистике(не обязательно)
Где это все можно взять?
1. Сервер: патч и сервер.
Пользователи Gentoo Linux могут просто набрать:
emerge ut2004-ded

Он установиться в /opt/ut2004-ded. Меня это не устраивало и я подправил эбилд и установил его в /home/games/ut2004-ded.
Если вы хотите сделать тоже, то в эбилде нужно сменить:
dir=${GAMES_PREFIX_OPT}/${PN}
на:
dir=/home/games/${PN}

2. У меня mysql версии 4.1.14, PHP версии 5.1.2 ну и apache версии 2.0.54. О настройке apache, mysql и php тут рассказываться не будет. Все это можно с легкостью найти в гугле.
Единственное, что статистика просит в php.ini сменить:
memory_limit = 8M
на:
memory_limit = 32M

пункты 3 и 4 взять можно тут: http://sourceforge.net/project/showfiles.php?group_id=65753
Нам собственно понадобиться только utstatsdb и mapimages-r1
Установка:
Установка рассматриваеться на примере Gentoo Linux, по-этому установка для меня свелась к набору одной команды:
emerge ut2004-ded
Для дех кто устанавливал моим способом нужно подправить /etc/init.d/ut2004-ded. Заменить в файле:
UCCDIR="/opt/ut2004-ded/System"
на:
UCCDIR="/home/games/ut2004-ded/System"
и строку:
OPTIONS="server ONS-Torlan?game=Onslaught.ONSOnslaughtGame ini=Default.ini log=server.log -nohomedir"
сменить на:
OPTIONS="server ONS-Torlan?game=Onslaught.ONSOnslaughtGame?GameStats=True ini=UT2004.ini log=server.log -nohomedir"
Последнее нужно для статистики.
Собственно сервер установлен. О настройке чуть позже, сейчас поставим статистику. Распакуем статистику туда, где она уже будет находиться на веб сервере. У меня это /var/www/localhost/htdocs/utstats. В файле /var/www/localhost/htdocs/utstats/includes/statsdb.inc.php нужно вписать имя вашей БД и прочие данные там все интуитивно понятно + все описано в коментариях. Базу данных естественно нужно было создать. ;) Далее через браузер конектимся на веб сервер, примерно на такой урл: http://yourwebserver.com/utstats/admin.php. Пароль админа по умолчанию - admin. И еще вас попросят ввести пароль инициализации. Вы его прописывали в файле statsdb.inc.php
$InitPass = "yourpassword"
После инициализации скрипт создаст таблицы в вашей БД. Далее в админке будет пункт LogsConfig. Log Path я сделал /var/www/localhost/htdocs/utstats/logs. Теперь немного поднастроим наш сервер. Открываем файл /home/games/ut2004-ded/System/UT2004.ini.
Перед
[Engine.GameEngine]
добавляем следующее:
[Engine.GameStats]
bLocalLog=True
Далее ищем:
GameStatsClass=IpDrv.MasterServerGameStats
меняем на:
GameStatsClass=Engine.GameStats

И наконец, чтобы наш сервер не лез в интернет линковаться с остальными серверами находим секцию:
[IpDrv.MasterServerUplink]
и делаем вот так:
[IpDrv.MasterServerUplink]
DoUplink=False
UplinkToGamespy=False
SendStats=False
ServerBehindNAT=False

Да, в секции:
[Engine.GameReplicationInfo]
можно выставить название вашего сервера, админа и прочую информацию.
Теперь можно запустить сервер.
/etc/init.d/ut2004-ded start

Логи складываются в директорию /home/games/ut2004-ded/UserLogs/, а мы указали /var/www/localhost/htdocs/utstats/logs. Теперь в /etc/crontab довавляем строку:
0 * * * * root cp /home/games/ut2004-ded/UserLogs/Stats_* /var/www/localhost/htdocs/utstats/logs/; php /var/www/localhost/htdocs/utstats/logs.php pass=adminpass
Статистика будет обрабатываться раз в час. Тоесть будут забираться логи из UserLogs, затем обрабатываться и удаляться. Так что не пугайтесь, если директория logs все время будет пустая.
И последнее - картинки карт :) Распаковываем архив mapimages-r1.tar.bz2 в /var/www/localhost/htdocs/utstats/ и в статистике теперь у каждой карты есть картинка. :)
А пока можете часок поиграть на сервере :) Через час увидите как хорошо/плохо вы играете.

P.S. Настройка статистики написана по материалам из README.txt и docs/SETUP_GUIDE.txt, входящих в архив utstatsdb-3.00.tar.bz2. Отключения линковки и остальные детали были выяснены методом научного тыка, ибо описание настроек самого сервера, я не нашел, да и искать как-то особо не хотелось :)