Документация выделенного сервера Tactical Ops под Unix



 


Здравствуйте.

Для многих людей, запускающих сервера для различных игр и использующих при этом платформу
Unix, настройка и запуск сервера – нелегкое занятие, но на самом деле не все так уж и плохо. Знание, как различные операционные системы на основе Unix работают очень важно, и я советую, перед тем, как заниматься наладкой сервера с использованием платформы Unix (будь это Linux, FreeBSD, или еще что) прочитать побольше литературы о прекрасных возможностях Unix.

В вашем случае, мы планируем установить
UT сервер с Tactical Ops и запустить его. Этот документ поможет в инсталляции UT, инсталляции самого мода, и поможет в запуске самого сервера, наладке его качественной и стабильной работы, с некоторым вашим участием, конечно.

В первую очередь вам необходим диск с
UT. Прошу обратить внимание, linux инсталлятор *не* работает с GOTY edition (одна из лицензионных версий CD с UT – прим. –Zlodey-), поэтому не покупайте GOTY edition для вашего сервера. Полная версия игры UT – это все, что нужно. В принципе, это не имеет значения – вы не будете играть в UT сами, а только включать выделенный сервер. Пользователи, использующие GOTY-версию, могут подключаться к не-GOTY серверу без проблем.

После того, как вы достали копию
UT для PC, вы можете идти сюда и скачать патч для Linux UT версии 436:

 

http://www.fileplanet.com/index.asp?file=51925

 

Этот инсталлятор (скачивайте его как двоичный, пожалуйста – иначе могут возникнуть сбои во время инсталляции) должен просканировать вашу файловую систему в вашем /mnt/cdrom устройстве и попытаться сверить этот компакт с UT на предмет работоспособности/подлинности/наличия нужных файлов. Если все ок, программа задаст несколько вопросов – пути инсталляции и настройки игры. По существу, единственная проблема для установки сервера - путь установки, и место, где нужно указать символические связи(ссылки). Если вы захотите указать символические связи(ссылки) к /usr/local/bin, вы будете должны запустить программу инсталляции заново.

 


С другой стороны, если вы (как и я) выбрали для создания вашего
UT сервера ОС FreeBSD в Linux Binary Emulation mode, вы можете более разумно заставить программу инсталляции обнаружить ваш cdrom. В этом случае, вы можете сделать следующее:

 

1. Создайте директорию в другом месте. Место, где вы ее создадите, не важно. Например, я обычно использую ~/ut, это моя home директория.

2. Скопируйте содержимое из /
cdrom filesystem (/cdrom – это где в FreeBSD находится CDrom устройство) в эту директорию. Да, сделайте именно это. Вы просто делаете вторую копию вашего CDrom устройства.

3. После того, как вы это сделали, вы можете указать
UT программе инсталляции использовать дерево другой директории для ее медиа файлов, набрав:

 

export SETUP_CDROM=/path/to/where/you/put/the/files

и запустив программу инсталляции снова. Детали написания пути могут отличаться, в зависимости того, какую программную оболочку вы используете. Это образец, по которому вы можете написать свой путь в своей версии ОС.

4. После того, как программа инсталляции запущена, у вас должна быть свежая версия
UT, проинсталлированная в какой-нибудь другой директории, например /usr/local/ut, или еще где-нибудь, где вы укажете во время инсталляции. После того, как вы проверили установленный UT на работоспособность (это не должно занять больше минуты), вы можете стереть скопированные файлы, они больше не понадобятся. Конечно, если вы захотите, вы можете их оставить, чтобы использовать снова.

 

Технически, вы завершили инсталляцию UT. Если вы хотите посмотреть, как ваш сервер работает, без написания всяких там конфигов, зайдите в вашу System/ директорию ( /usr/local/ut/System/ например), и наберите:

 

./ucc server -nohomedir DM-Liandri

И смотрите, что произойдет. Если все нормально, выдолжны увидеть, как UT загружает .u файлы, затем должна быть пауза, и вы остановитесь в окне консоли. Не закрывая это окно, включите другую копию UT и попробуйте подключиться к игре в режиме DM на этот ip адрес. Если инсталляция прошла гладко, вы должны войти в игру.

После того, как вы проверили ваш
UT сервер на работоспособность, настало время запустить на нем Tactical Ops. На данный момент последняя версия TO - Beta 2, и я настойчиво рекомендую использовать файл с инсталляцией вручную, под названием TOb200ManualInstall.zip. Скачайте фай л на ваш Linux сервер, и киньте его в директорию, куда вы установили UT (/usr/local/ut, например).

Распакуйте этот файл, убедившись в верности пути распаковки. Вы можете сделать это, набрав:

 

unzip TOb200ManualInstall.zip

 

в консоли вашей оболочки.

Будут созданы нсколько директорий, включая одну под названием
TacticalOps. Эта директория новая в Beta 2, вот почему я настойчиво рекомендую не устанавливать новую версию TO поверх старой версии 1.6, из-за этого некоторые старые системные файлы и карты могут конфликтовать с новыми.

Чтобы сконфигурировать наш сервер как следует, мы должны изменить настройки сервера.
Tactical Ops Beta 2 устанавливается с INI файлом, который может быть использован для создания сервера Tactical Ops, он установлен в директории System, находящейся в директории, куда вы установили UT (/usr/local/ut/System, например). Этот файл мы должны редактировать, и мы должны указать этот файл ucc, чтобы он использовался при создании сервера. Откройте этот файл в текстовом редакторе (Wordpad, Блокнот), и посмотрите на следующие строки.

 

Port=7777

 

Эта строка устанавливает, какой порт сервер будет использовать для работы. Если на вашей машине будет работать только один UT сервер, то вы можете не трогать эту настройку. Если вы планируете создавать несколько UT серверов на одной машине, каждый сервер должен иметь свой уникальный номер порта. Я использую диапазон от 7777 до 7787, но и другие должны работать. Не используйте порт 1024 – он используется для других операций.

Большое количество настроек может быть изменено в секции
config, обозначенной [IpDrv.TcpNetDriver], так что найди эту секцию сейчас.

 

AllowDownloads=True

 

Эта опция контролирует, могут люди или нет скачивать файлы (карты, скины, и пр.) с вашего сервера. По умолчанию она включена, но запомните, скачивание файлов понижает пропускную способность сетевого канала вашего сервера, и вам иногда, возможно, потребуется отключить эту возможность, или использовать DownloadManager. Если вы хотите использовать CSHP (client side hack protection – защиту от читеров, AllowDownloads -должно- быть установлено на true, так как клиент в этом случае должен скачать файл).

 

ConnectionTimeout=15.0 InitialConnectTimeout=30.0

 

Эти две строки контролируют, как долго сервер будет пытаться отправить информацию игроку, у кого "Timed Out" или кто долго не отвечает. ConnectionTimeout используется во время смены карты, а InitialConnectTimeout используется, когда игрок первый раз подключается к серверу. Настройки по умолчанию для InitialConnectTimeout 300, это примерно равно 5 минутам. Если у вашего UT сервера пинг сильно увеличивается при сменах карты, это может реально сказаться. Если вы поставите слишком маленькое значение для этой настройки, это может привести к отключению некоторых клиентов, но и слишком большие значения устанавливать не стоит.

 

MaxClientRate=20000

 

Эта опция настраивает максимальную пропускную способность для всех клиентов, в байтах в секунду. Большие значения этой настройки могут привести к значительному увеличению пинга на вашем сервере, если к нему подключится много игроков с высокоскоростной связью. Если вы не располагаете высокоскоростным соединением к инету, не завышайте это значение. Мои сервера настроены на 10000, и люди говорят, это нормально.

 

[Engine.GameReplicationInfo] ServerName=Another UT Server ShortName=UT Server

Измените эти настройки так, как вас больше устроит, название сервера будет показано в списке серверов на Gamespy или в браузере UT серверов. Также вы можете установить AdminName (имя администратора) и указать AdminEmail (e-mail администратора), они не настроены по умолчанию.

UT поддерживает ротацию списка карт, составленного вручную. По умолчанию, все карты TO в списке ротации, но он может быть изменен, если его составлять примерно так:

 

[s_SWAT.s_MapList]
Maps[0]=TO-Blister.unr
Maps[1]=TO-Forge.unr
Maps[2]=TO-Getaway.unr
Maps[3]=TO-IcyBreeze.unr
Maps[4]=TO-Monastery.unr
Maps[5]=TO-Oilrig2.unr
Maps[6]=TO-Province.unr
Maps[7]=TO-Ransom2.unr
Maps[8]=TO-RapidWaters2.unr
Maps[9]=TO-Resurrection.unr
Maps[10]=TO-RMSTitanic.unr
Maps[11]=TO-Scope.unr
Maps[12]=TO-Spynet2.unr
Maps[13]=TO-TrainStation.unr
Maps[14]=TO-Verdon.unr
Maps[15]=
Maps[16]=
Maps[17]=
Maps[18]=
Maps[19]=
Maps[20]=
Maps[21]=
Maps[22]=
Maps[23]=
Maps[24]=
Maps[25]=
Maps[26]=
Maps[27]=
Maps[28]=
Maps[29]=
Maps[30]=
Maps[31]=
MapNum=10

Хочу заметить, вы можете поставить максимум 32 карты в список ротации на UT сервере. Последняя линия обязательна – она сообщает серверу количество карт, играемых на данный момент на сервере, и должна изменяться автоматически.

Здесь есть еще много других опций
config`а, но эта одна из самых интересных, ее стоит изменять.

Ну, теперь все проинсталлировано и настроено. Давайте запустим сервер, и посмотрим, что получится. Выберите
home директорию, куда вы проинсталлировали UT и наберите:

 

./ucc server TO-RapidWaters2.unr?game=s_SWAT.s_SWATGame -nohomedir ini=TacticalOps.ini

Если все в порядке, вы должны увидеть сервер Tactical Ops, работающий через порт, указанный вами в TacticalOps.ini, на данный момент играющий карту TO-RapidWaters2. Опция "-nohomedir" не даст UT загрузить config файлы из home директории персоны, создающей UT сервер (это полезная вещь, если вы хотите использовать один из конфигов из директории /usr/local/ut). Если вы создаете UT сервер на машине, у которой больше одного IP адреса, используемого для работы сетевой картой, то вам нужно указать multihome=ip.который вам нужен, чтобы предотвратить сбои в работе UT.

В общем, об этом все. Я предпочитаю включать мои сервера в экранном окне процесса, поэтому я могу отключиться как юзер (
log out) машины и вернуться к работе с сервером позже. Методы работы отличаются, в зависимости от OS, которую вы используете, но в FreeBSD, окно может быть использовано примерно так:

 

screen -S tacops /path/to/ucc server ......

это должно создать экранное окно под названием "tacops", это запустит мой UT сервер. Затем я могу нажать ctrl-a-d чтобы убрать его, оставить работать в фоновом режиме. Затем я могу отключиться (log out), вернуться (log back in) и ввести:

 

screen -r tacops

 

и я вернусь в режим консоли. Очень удобно.

Вообще, сервера могут «сыпаться», «заваливаться». Это реальный факт. К счастью, можно довольно легко написать скрипт, который должен рестартовать ваш сервер автоматически. Вот
sh скрипт, который именно это и делает:

 

#!/bin/sh

while true
do
rm -f /usr/local/ut/System/*.core > /dev/null
rm -r ${HOME}/.loki/ut/System > /dev/null
/path/to/ucc server TO-RapidWaters2.unr?game=s_SWAT.s_SWATGame -nohomedir ini=TacticalOps.ini
sleep 10
done

Этот файл может быть сохранен как startut.sh, содержать запускаемые (chmod u+x startut.sh), и запущен на экране с командной строки:

 

screen -S tacops ./startut.sh

это должно делать две вещи: не давать серверу стоять в оффлайне из-за сбоев, и держать его статус на экране, чтобы вы могли в любой момент воспользоваться консолью, если вам нужно. В дополнение к этому, сценарий оболочки удалит основные файлы (плохие вещи, которые могли бы обнаруживаться, когда процесс останавливается - вы должны их удалить, они в UT могли бы пытаться загрузить их как файл, который соответствует строке ServerPackage, а это может создать проблемы), также как чистящий .loki директории, который, возможно, был создан в вашей основной директории. Если вы используете -nohomedir, это обычно не проблема.

 


Если есть вопросы или какие-то комментарии, напишите мне.

MalHavoc - malhavoc@stomped.com

 

Перевод - -Zlodey- - zioy_mike@mail.ru

 

Hosted by uCoz