Настройка игрового сервера под UNIX-системой (3D-Action Games)

Документ представляет собой подборку материалов для настройки игрового сервера Unreal Tournament, Return to Castle Wolfenstein, QuakeIII: Arena, Star Wars Jedi Knight II и Counter Strike под Linux.

[Perezz (pm@h20.ru), Tavik, Pontiy_Pilat]

Настройка игрового сервера под UNIX-системой (3D-Action Games)

Оригинал: http://www.hub.ru/modules.php?name=Sections&sop=viewarticle&artid=33

  1. Установка сервера Unreal Tournament
  2. Установка сервера Return to Castle Wolfenstein
  3. Установка сервера QuakeIII: Arena
  4. Установка сервера Star Wars Jedi Knight II
  5. Установка сервера Counter Strike

Решили сделать подборку материалов для настройки игрового сервера и поделится личным опытом. Цель одна - облегчить жизнь последователям. Чем больше документации, тем лучше! На полноту описания не претендуем, но думаем, что следуя рекомендациям у вас все получится.

Установка сервера Unreal Tournament

  1. Качаем файлы
    Настраиваем dedicated server Unreal Tournament. Для этого нам необходимо 2 пакета: Первый пакет - собственно сам сервер, а второй - это библиотека, необходимая для запуска демона и не входящая в стандартную поставку Linux.
  2. Устанавливаем библиотеку
       rpm -ivh SDL-1.2.5-1.i386.rpm
       
  3. Устанавливаем сервер
    Копируем архив в папку /usr/src
       tar xvfz ut-server-436.tar.gz //распаковываем
       cd ut-server // переходим в директорию куда все распаковалось.
       
  4. Создаем файл запуска: run
    Содержание его должно быть таким:
       cd /usr/src/ut-server/
       ./ucc server dm-Hyperblast?game=BotPack.TeamGamePlus?mutator= &
       chmod +x cd /usr/src/ut-server/run //делаем файл исполняемым
       /usr/src/ut-server/run //запускаем
    
    При этом вывод на терминал после запуска должен быть примерно такой:
       Executing Class Engine.ServerCommandlet
       Unreal engine initialized
       Browse:
       dm-Hyperblast?Name=Player?Class=Botpack.TMale2?team=0?skin=SoldierSkin
       s.blkt?Face=SoldierSkins.Othello?game=BotPack.TeamGamePlus?mutator=
       LoadMap:
       dm-Hyperblast?Name=Player?Class=Botpack.TMale2?team=0?skin=SoldierSkin
       s.blkt?Face=SoldierSkins.Othello?game=BotPack.TeamGamePlus?mutator=
       Case-insensitive search: dm-Hyperblast -> ../Maps/DM-HyperBlast.unr
       Bound to Fire.so
       Case-insensitive search: Botpack -> ../System/BotPack.u
       Bound to IpDrv.so
       Case-insensitive search: genfluid -> ../Textures/GenFluid.utx
       Case-insensitive search: dm-Hyperblast -> ../Maps/DM-HyperBlast.unr
       Collecting garbage
       Purging garbage
       Garbage: objects: 16159->16158; refs: 235310
       Game class is 'TeamGamePlus'
       Sockets: Socket queue 131070 / 131070
       Sockets: I am localhost.localdomain (127.0.0.1)
       TcpNetDriver on port 7777
       Server Package: SoldierSkins
       Case-insensitive search: SoldierSkins -> ../Textures/Soldierskins.utx
       Server Package: CommandoSkins
       Server Package: FCommandoSkins
       Server Package: SGirlSkins
       Server Package: BossSkins
       Server Package: Botpack
       Case-insensitive search: Botpack -> ../System/BotPack.u
       Spawning: IpDrv.UdpBeacon
       Spawning: IpServer.UdpServerQuery
       Spawning: IpServer.UdpServerUplink
       Spawning: IpServer.UdpServerUplink
       Spawning: IpServer.UdpServerUplink
       Spawning: UWeb.WebServer
       Bound to UWeb.so
       Level is Level dm-Hyperblast.MyLevel
       Bringing Level dm-Hyperblast.MyLevel up for play (20)...
       InitGame:
       ?Name=Player?Class=Botpack.TMale2?team=0?skin=SoldierSkins.blkt?Face=S
       oldierSkins.Othello?game=BotPack.TeamGamePlus?mutator=
       Base Mutator is dm-Hyperblast.DMMutator0
       UdpServerQuery(crt): Port 7778 successfully bound.
       DoUplink is not set. Not connecting to Master Server.
       DoUplink is not set. Not connecting to Master Server.
       DoUplink is not set. Not connecting to Master Server.
       Webserver is not enabled. Set bEnabled to True in Advanced Options.
       Initiating local logging...
       Initiating world logging...
       Game engine initialized
    
Все! Сервер успешно заработал, можно наслаждаться игрой!

Установка сервера Return to Castle Wolfenstein

  1. Качаем файлы Состояние на 24.03.2003
  2. Установка сервера Создаем директорию /games на сервере, куда и будем устанавливать игру. Желательно, создать пользователя и группу games, чтобы устанавливать и запускать игры не под root-пользователем. Соответственно, директорию /games делаем домашней для этого пользователя. Можете ставить и по умолчанию, но это неправильно, т.к. нарушает безопасность системы вцелом. Соответственно, плясать будем от директории /games Хорошо, если есть навык работы в mc.

    Сам сервер будет представлен в виде бинарника. С расширением *.bin. Итак:

    Создаем директорию для RTCW:

       > mkdir /games/wolfenstein
       
    Переходим туда
       > cd /games/wolfenstein
       
    Копируем туда бинарник сервера
       > mv /путь/к/файлу/имя /games/wolfenstein/имя_файла
       
    Делаем файл исполняемым
       > chmod 755 имя_файла
       
    Запускаем его
       > sh имя_файла
       
    Из архива извлечено несколько файлов. Теперь нам нужно несколько файлов из дистрибутива с игрой. Мы их копируем в дирикторию /games/wolfenstein/main:
       mp_pak0.pk3
       mp_pak1.pk3
       mp_pak2.pk3
       
    Если желаем дополнительные карты, то кладем их туда же.

    Распаковываем и устанавливаем последний патч, который идет в архиве *.tar.gz

  3. Установка OSP
    Создаем директорию osp:
       > mkdir /games/wolfenstein/osp
       
    И переписываем туда содержимое архива
  4. Настраивание конфиурационных фалов
       The autoexec.cfg file:
       set sv_pure "0"
       set bot_enable "0" //ботов пока нет
       set sv_maxRate "8000" //here for safety
       set dedicated "2"
       set com_hunkMegs "70"
       // Wolf Specific v время Їзарядки¦ в милисекундах
       set g_soldierChargeTime "20000"
       set g_LTChargeTime "40000"
       set g_engineerChargeTime "30000"
       set g_medicChargeTime "45000"
       The default.cfg file:
       // Blank file
       // prevents bogus fail message
       The pbsv.cfg file (in the pb directory):
       // Punk Buster Config
       // Для тонкой настройки см. сайт PunkBuster
    
       PB_SV_AutoSs "0"
       PB_SV_AutoSsFrom "60"
       PB_SV_AutoSsTo "1200"
       PB_SV_CQC "0"
       PB_SV_CvarChangedPulse "99"
       PB_SV_CvarFreq "1"
       PB_SV_CvarLogging "2"
       PB_SV_CvarUserPulse "99"
       PB_SV_CvarWalk "0"
       PB_SV_KickLen "60"
       PB_SV_LogAddr ""
       PB_SV_LogCeiling "250"
       PB_SV_LogPort "0"
       PB_SV_LogPw ""
       PB_SV_LogSync "0"
       PB_SV_LogUser ""
       PB_SV_MaxConDls "3"
       PB_SV_MaxDlRate "300"
       PB_SV_MsgPrefix "^3PunkBuster Server"
       PB_SV_Sleep "250"
       PB_SV_SsCeiling "100"
       PB_SV_SsCmd ""
       PB_SV_SsDelay "0"
       PB_SV_SsFloor "1"
       PB_SV_SsHeight "240"
       PB_SV_SsPath ""
       PB_SV_SsSRate "1"
       PB_SV_SsWidth "320"
       PB_SV_SsXPct "50"
       PB_SV_SsYPct "50"
       
    The server.cfg file:
       // Skeleton Wolf config
       // Public Info
       exec public.cfg
       // General Settings
       seta sv_maxRate "8000" //эти настройки Їзабивают¦ настройки в файле
       autoexec.cfg
       seta sv_maxclients "16" //Всего игроков
       seta g_maxGameClients "0"
       seta g_minGameClients "2"
       seta sv_privateClients "2" //private slots
       seta sv_allowDownload "1"//Если у клиента не будет файла, то
       скачать.Їpure server¦ должно быть 1 seta sv_reconnectlimit "3"
       seta sv_zombietime "1"
       seta g_inactivity "180"
       seta g_forcerespawn "30"
       seta sv_timeout "60"
       seta sv_padPackets "0"
       seta sv_fps "20" //max frame rate чем выше, тем больше пинг
       // Logs У меня логи почему-то не велись, хотя, вроде все было ок.
       seta g_log "logs/games.log"
       seta logfile "0" //console log - 0=no log 1=buffered 2=continuous
       3=append
       seta g_logsync "0"
       // Extras
       seta sv_maxPing "0" //максим. пинг. Выше этого на сервер не пустят
       seta sv_minPing "0" // мин. пинг . Чтобы не пускать на сервер сук-lpb
       seta sv_floodProtect "1"
       seta sv_screenshake "5" //¦тряска¦ экрана во время взрывов
       seta g_voiceChatsAllowed "4"
       // Server Passwords
       seta rconpassword "myrconpass" // remote console
       seta g_password ""
       seta sv_privatePassword "myprivpass"
       // Game Type Settings
       // Установить тип игры: 5=Multiplayer 6=Stopwatch 7=Checkpoint
       // 5-multiplayer: обычный мультиплеер
       //6-stopwatch играется карта, assault выиграли за 2 минуты когда
       defence станет нападать, им тоже нужно //будет уложиться за это время
       seta g_gametype "6"
       seta pmove_fixed "0" //не трогать
       seta pmove_msec "8"
       seta g_smoothClients "1"
       seta g_altStopWatchMode "0"
       // Game Play Default Settings
       seta g_enableBreath "1" //Дышать под водой
       seta g_complaintlimit "5" //жалобы на игроков
       seta g_gravity "800" //гравитация
       seta g_knockback "1000"
       seta g_speed "320"
       seta g_weaponRespawn "5"
       seta g_weaponTeamRespawn "30" //время респа
       seta dmflags "0" //8 (нет повреждений при падении) 16 (fixed FOV) 32
       (нет звука шагов)
       // раскомментировать, для того чтобы эта инфа отображалась в свойствах
       сервера
       //sets g_gravity "800"
       //sets g_knockback "1000"
       //sets g_speed "320"
       //sets g_weaponrespawn "5"
       //sets g_weaponTeamRespawn "30"
       // Match Settings
       seta g_maxlives "0" //ограничения жизней
       seta g_doWarmup "1" //¦разогрев¦ перед боем
       seta g_warmup "20" //время разогрева. Можно убивать всех, и за это
       ничего не будет. freefrag :)
       // Team Preferences
       seta g_teamAutoJoin "0"
       seta g_teamForceBalance "1" //форсировать баланс комманд
       seta g_friendlyFire "1" //убивать своих
       seta g_noTeamSwitching "0" //нельзя сменит team
       // вкл/выкл Punk Buster (античитерск. Прога)
       // Turn it On/Off (ENABLE/DISABLE)
       PB_SV_ENABLE // change to PB_SV_DISABLE to turn off
       // Голосование
       seta g_allowVote "0"
       // Файл ротации карт
       exec maps.cfg
       vstr e01
       // Wolf Specific
       // more settings can be found in the .script and .arena files
       // in the maps and scripts directory in the .pk3's. Extract them to
       // the mainmaps mainscripts dir and edit to your delight. :-)
       // The settings listed below WILL NOT stick, given here as an example
       // of what to edit in the maps .script and .arena files
       seta g_bluelimbotime "30000"
       seta g_redlimbotime "40000"
       writeconfig wolfconfig_mp.cfg
       wait
       // Banned Players
       seta g_filterBan "1"
       exec banned.cfg
       The public.cfg file:
       // Server Config (свойства сервера)
       seta sv_hostname "Return to Castle Wolfenstein "
       seta g_motd "Frag Hard - Frag Fast"
       // public info
       sets "Administrator" "Game Admin"
       sets "Clan" "none"
       sets "Connection" "FAT"
       sets "CPU" "Quad P3 500Mhz Xeons 2Mb Cache"
       sets "Email" "zxel@gameadmins.com"
       sets "Hosted By" "Clanservers.net"
       sets "IRC" "#gameadmins On irc.enterthegame.com"
       sets "Location" "Houston, Texas"
       sets "Our Config"
       "http://www.gameadmins.com/guides/wolf/wolfenstein_retail.htm"
       sets "Plug" "God Bless the Game"
       sets "URL" "http://www.gameadmins.com"
       seta username "NotForYouToKnow" //block out your computer account name
    
       // add up to 4 additional master servers to report to
       seta sv_master1 "wolfmaster.idsoftware.com" //built in
       //seta sv_master2 "master.gamespy.com:27900"
       //seta sv_master3 "master0.gamespy.com"
       //seta sv_master4 "clanservers.net"
       //seta sv_master5 ""
       writeconfig wolfconfig_mp.cfg
       wait
       
    The maps.cfg file:
       // note: all standard Wolfenstein maps listed except single player
       maps
       // add custom map rotations under different letter combinations
    
       // MP Maps (Настройки для мультиплеера)
       set m01 "set g_gametype 5; map mp_assault; set nextmap vstr m02"
       set m02 "map mp_base; set nextmap vstr m03"
       set m03 "map mp_beach; set nextmap vstr m04"
       set m04 "map mp_castle; set nextmap vstr m05"
       set m05 "map mp_depot; set nextmap vstr m06"
       set m06 "map mp_sub; set nextmap vstr m07"
       set m07 "map mp_village; set nextmap vstr m01"//back to top
       // CP Maps
       set c01 "set g_gametype 7; map mp_assault; set nextmap vstr c02"
       set c02 "map mp_base; set nextmap vstr c03"
       set c03 "map mp_depot; set nextmap vstr c04"
       set c04 "map mp_destruction; set nextmap vstr c05"
       set c05 "map mp_sub; set nextmap vstr c06"
       set c06 "map mp_village; set nextmap vstr c01" //back to top
       // Custom Maps - get them here
       set t01 "set g_gametype 5; map carnage_castle_final; set nextmap vstr
       t02"
       set t02 "map mp_generator; set nextmap vstr t03"
       set t03 "set g_gametype 7; map mp_trenchtoast; set nextmap vstr t04"
       set t04 "map silo_base; set nextmap vstr t01" //back to top
       // Everything in all possible gametype combinations :-)
       set e01 "set g_gametype 5; map mp_assault; set nextmap vstr e02"
       set e02 "set g_gametype 6; map_restart 0; set nextmap vstr e03"
       set e03 "set g_gametype 7; map_restart 0; set nextmap vstr e04"
       set e04 "set g_gametype 5; map mp_base; set nextmap vstr e05"
       set e05 "set g_gametype 6; map_restart 0; set nextmap vstr e06"
       set e06 "set g_gametype 7; map_restart 0; set nextmap vstr e07"
       set e07 "set g_gametype 5; map mp_beach; set nextmap vstr e08"
       set e08 "set g_gametype 6; map_restart 0; set nextmap vstr e09"
       set e09 "set g_gametype 5; map mp_castle; set nextmap vstr e10"
       set e10 "set g_gametype 6; map_restart 0; set nextmap vstr e11"
       set e11 "set g_gametype 5; map mp_depot; set nextmap vstr e12"
       set e12 "set g_gametype 6; map_restart 0; set nextmap vstr e13"
       set e13 "set g_gametype 7; map_restart 0; set nextmap vstr e14"
       set e14 "set g_gametype 7; map mp_destruction; set nextmap vstr e15"
       set e15 "set g_gametype 6; map_restart 0; set nextmap vstr e16"
       set e16 "set g_gametype 5; map mp_sub; set nextmap vstr e17"
       set e17 "set g_gametype 6; map_restart 0; set nextmap vstr e18"
       set e18 "set g_gametype 7; map_restart 0; set nextmap vstr e19"
       set e19 "set g_gametype 5; map mp_village; set nextmap vstr e20"
       set e20 "set g_gametype 6; map_restart 0; set nextmap vstr e21"
       set e21 "set g_gametype 7; map_restart 0; set nextmap vstr e22"
       set e22 "set g_gametype 5; map mp_generator; set nextmap vstr e23"
       set e23 "set g_gametype 7; map mp_trenchtoast; set nextmap vstr e24"
       set e24 "set g_gametype 5; map carnage_castle_final; set nextmap vstr
       e25"
       set e25 "set g_gametype 6; map_restart 0; set nextmap vstr e26"
       set e26 "set g_gametype 7; map_restart 0; set nextmap vstr e27"
       set e27 "set g_gametype 5; map silo_base; set nextmap vstr e28"
       set e28 "set g_gametype 6; map_restart 0; set nextmap vstr e29"
       set e29 "set g_gametype 7; map_restart 0; set nextmap vstr e01" //back
       to top
    
       sets nextmap "" //makes the nextmap public
       The banned.cfg file:
       // Баним по IP
       // Существует ограничение на кол-во банов
       // id made the g_banIPs variable small in size :-(
       reset g_banIPs
       // Пример: addip "xxx.xxx.xxx.xxx"
       writeconfig wolfconfig_mp.cfg
       wait
       
  5. Создаем файл загрузки
       >touch /games/wolfenstein/start
       
    Записываем туда такую строчку:
       wolfded +set com_hunkmegs 64 +set net_port 27961 +set sv_maxrate 9000
       +set com_zonemegs 32 +set dedicated 2 +set cv_hostname "h20
       Wolfenstein" +set g_motd "h20" +set g_log games.log +exec rotate.cfg
       +vstr m_rotate4& 
       
    или такую:
       > cat wolfded +set com_hunkmegs 64 +set net_port 27961 +set sv_maxrate
       9000 +set com_zonemegs 32 +set dedicated 2 +set cv_hostname "h20
       Wolfenstein" +set g_motd "h20" +set g_log games.log +exec rotate.cfg
       +vstr m_rotate4 & > /games/wolfenstein/start 
       
    Делаем файл исполняемым
       > chmod 755 /games/wolfenstein/start
       
    Запускаем сервер
       > sh start
       
    Теперь пытаемся присоедениться. Вполне возможно, что не будет хватать каких-либо библиотек. Находим эти файлы и кладем куда нас просят. Если сервер не запускается или что-то не так, то убираем "&" в конце строчки и запускаем заново. Смотрим, что пишет.

    Запускаем клиента, выбираем сортировку по LAN servers и смотрим, видно сервер или нет. По-идее, должно быть видно, если есть примерно такой процесс:

       30048 ttyp6 S 0:00 /bin/sh /usr/local/bin/wolfded +set com_hunkmegs 64
       +set net_port 27961 +set sv_maxrate 9000 +set com_zon
       30049 ttyp6 S 0:02 ./wolfded.x86 +set com_hunkmegs 64 +set net_port
       27961 +set sv_maxrate 9000 +set com_zonemegs 32 +set ded
       
Если что-то не работает, то:
  1. Читаем что пишет клиент.
  2. Если все-равно не получается войти на сервер, смотрим что пишет сервер.
  3. Также, проверяем все возможные и невозможные логи.
  4. Лезем в Интернет на сайты, которые указаны ниже и смотрим, почему может не работать
  5. Используем поисковую систему http://www.google.com.ru и ищем настройки сервера / ошибки/ решения.
  6. Пишем мне pm@h20.ru возможно, я помогу.

RTCW
Много всего полезного в разделе файлов.
http://www.wolfensteinx.com

OSP
http://www.orangesmoothie.com

GameAdmins
http://www.gameadmins.com/

PunkBuster
http://www.evenbalance.com/publications/admins/

Установка сервера QuakeIII: Arena

  1. Качаем файлы Состояние на 25.03.2003
  2. Установка сервера Сам сервер будет представлен в виде бинарника. Итак: Создаем директорию для Quake3:
       > mkdir /games/quake3
       
    Переходим туда
       > cd /games/quake3
       > mkdir baseq3
       
    Копируем в /games/quake3/ бинарник сервера
       > mv /путь/к/файлу/имя /games/quake3/имя_файла
       
    Делаем файл исполняемым
       > chmod 755 имя_файла
       
    Должно получится так:
       ./linuxq3ded
       ./baseq3/pak0.pk3
       
    Теперь, нам нужно несколько файлов из дистрибутива с игрой. Мы их копируем в дирикторию /games/quake3/
       Pak0.pk3
       Pak2.pk3
       pak1.pk3
       pak3.pk3
       pak4.pk3
       
    Если желаем дополнительные карты, то кладем их туда же.
    Запускаем бинарник:
       > sh имя_файла
       
    Из архива извлечено несколько файлов.
  3. Настраиваем конфигурационные файлы Myconfig.cfg:
    Файл лежит в /games/quake3/baseq3
       //Default Free For All Server Configuration File
       //Double slashes are used for comments and to keep commands from
       running. Remove
       // the slashes before a specific to run that command.
       //Тип игры (0 для Free-For-All)
       g_gametype 0
       //Free For All Settings Below
       //Ограничение по фрагам (Ї0¦ чтобы снять)
       fraglimit 0
       //Ограничение по времени (Ї0¦ чтобы снять)
       timelimit 20
       //Максимум игроков на сервере
       sv_maxclients 10
       //set host name that shows up in server list. Change below to your
       server name
       // preference and remove the //
       sv_hostname "Q3A h20 Server"
       //set message of the day that players see while connecting to the
       server. Must be set
       // before level loads. Change below to your message of the day
       preference and remove
       // the //
       g_motd "Happy Fragging!"
       //set requirement for client password. 1=require password, 0=no
       password required
       // (Default: 0)
       sv_privateClients 0
       //Пароль для закрытых серверов "" for no password
       sv_privatePassword ""
       //Пароль на ркон
       rconpassword "пароль_на_ркон"
       //turn on/off pak cheat check. 1=on, 0=off (Default: 1)
       sv_pure 1
       //set max allowable rate for a client. 8000 to 10000 recommended. Max:
       25000
       //(Default: 0)
       sv_maxRate 10000
       //Можно добавить до 4х мастер-серверов (As you can see the ingame
       configs
       // don't report to id automatically)
       sv_master2 ""
       sv_master3 ""
       sv_master4 ""
       sv_master5 ""
       //Выбираем порядок карт
       set d1 "map q3dm2 ; 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 q3dm6 ; 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
       //Время для респавна оружия. May need to decrease for large
       // number of clients. (Default: 5)
       g_weaponrespawn 20
       ///log
       g_log q3.log
    
       //Добавляем ботов
    
       set bot_enable 1
    
       # addbot carmack 4 100
       addbot uriel 3 100
       addbot slash 2 100
       # addbot doom 1 20
       # addbot bones 1 20
    
       //set voting. 1=on, 0=off (Default: 1)
       g_allowvote 1
       //set power multiples for quad damage (Default: 3)
       g_quadfactor 3
       //syncronous clients is necessary to allow client demo recording.
       Setting to 1 allows
       // recording but play is not smooth and is not recommended for normal
       use. (Default: 0)
       g_syncronousClients 1
       //additions by Dekard- Anything with sets will be seen in the server
       settings in gamespy
       // and in game for server settings.
       //If you are using special maps here would be a good place to add
       where to download
       // them!!
       sets "Administrator" "ИмяАдмина"
       sets "Email" "ЭМылоАдмина"
       sets "URL" "СайтИгры"
       sets "Location" "ИмяСервера"
       sets "CPU" "ПараметрыСервера"
       
  4. Создаем загрузочный файл
       >touch /games/quake3/start
       
    Записываем туда такую строчку:
       /games/quake3/q3ded +set dedicated 1 +set com_hunkmegs 16 +exec
       myconfig.cfg &
       
    или такую:
       > cat /games/quake3/q3ded +set dedicated 1 +set com_hunkmegs 16 +exec
       myconfig.cfg & > /games/quake3/start 
    
       > chmod 755 /games/quake3/start
       
    Запускаем сервер
       > sh start
       
    Смотрим процесс:
       30111 ttyp6 S 0:01 /games/quake3/q3ded +set dedicated 1 +set
       com_hunkmegs 16 +exec myconfig.cfg
       
    Пытаемся присоедениться... Вполне возможно, что не будет хватать каких-либо библиотек. Находим эти файлы и кладем куда нас просят. Если сервер не запускается или что-то не так, то убираем "&" в конце строчки и запускаем заново. Смотрим, что пишет.

    Запускаем клиента, выбираем сортировку по LAN servers и смотрим, видно сервер или нет. По-идее, должно быть видно, если есть такой процесс:

    Если что-то не работает, то:

    1. Читаем что пишет клиент.
    2. Если все-равно не получается войти на сервер, смотрим что пишет сервер.
    3. Также, проверяем все возможные и невозможные логи.
    4. Лезем в Интернет на сайты, которые указаны ниже и смотрим, почему может не работать
    5. Используем поисковую систему http://www.google.com.ru и ищем настройки сервера / ошибки/ решения.
    6. Пишем мне pm@h20.ru возможно, я помогу.

Установка сервера Star Wars Jedi Knight II

  1. Качаем файлы Если есть желание возится с jediplus, то с этого сайта качаем и устанавливаем, как сказано. Настроек ОЧЕНЬ МНОГО, но они того стоят (ракетные ранцы, 2 меча, цвет одежды и многое другое)...
  2. Установка сервера
    Сам сервер будет представлен в виде бинарника. Итак:
    Создаем директорию для SW2:JK:
       > mkdir /games/ jedi
       
    Переходим туда
       > cd /games/ jedi
       
    Копируем туда бинарник сервера
       > mv /путь/к/файлу/ jk2ded /games/ jedi/ jk2ded
       
    Делаем файл исполняемым
       > chmod 755 имя_файла
       
    Запускаем его
       > sh имя_файла
       
    Из архива извлечено несколько файлов. Теперь, нам нужно несколько файлов из дистрибутива с игрой. Мы их копируем в дирикторию /games/ jedi/base:

    Все файлы, с расширением *.pk3

    Если желаем дополнительные карты, скины, итд то кладем их туда же.

    Должно получится так:

       ./ jk2ded
       ./base/*.*
       
  3. Настраиваем конфигурационные файлы:
    (/games/jedi/base/server.cfg)
       // Server Config
       seta sv_hostname "H20 jkII server" //Имя сервера
       //seta g_motd "woot"
       rconpassword "" //пароль на ркон
    
       seta sv_maxclients 10 //макс. кол-во игроков
       seta g_inactivity 0 //отключение из-за неактивности через-
       sv_maxRate 10000
       set g_allowvote 0 //разр. голосование
       set timelimit 20 //ограничение по времени
       set capturelimit 20 //ограничение по фрагам
       set g_maxForceRank 7 //макс. Уровень Силы
       set g_weaponDisable 65531 //65531-отключить все оружие, кроме мечей
       0-включить
       g_forcePowerDisable 32767 //32767-отключить всю силу, драться только
       на мечах
       set g_autoMapCycle 1
    
       map ffa_bespin
    
       //Добавить боты
    
       set bot_enable 1
    
       addbot desann 4 100
       addbot tavion 3 100
       addbot Darth_Vader 2 100
       # addbot weequay 1 20
       # addbot stormtrooper 1 20
    
       //syncronous clients is necessary to allow client demo recording.
       Setting to 1 allows
       // recording but play is not smooth and is not recommended for normal
       use. (Default: 0)
       g_syncronousClients 1
       //additions by Dekard- Anything with sets will be seen in the server
       settings in gamespy
       // and in game for server settings.
       //If you are using special maps here would be a good place to add
       where to download
       // them!!
       sets "Administrator" "ИмяАдмина"
       sets "Email" "ЭМылоАдмина"
       sets "URL" "СайтИгры"
       sets "Location" "ИмяСервера"
       sets "CPU" "ПараметрыСервера"
       
    4. Создаем стартовый файл
       >touch /games/jedi/start
       
    Записываем туда такую строчку:
       ./jk2ded +set dedicated 1 +exec server.cfg +set fs_game &
       
    или такую:
       > cat ./jk2ded +set dedicated 1 +exec server.cfg +set fs_game jediplus
       & > /games/ jedi /start 
       Делаем файл исполняемым
       > chmod 755 /games/ jedi /start
       
    Если стоит jediplus, то так:
       ./jk2ded +set dedicated 1 +exec server.cfg +set fs_game jediplus &
       
    Запускаем сервер
       > sh start
       
    Пытаемся присоедениться. Вполне возможно, что не будет хватать каких-либо. Находим эти файлы и кладем куда нас просят. Если сервер не запускается или что-то не так, то убираем "&" в конце строчки и запускаем заново. Смотрим, что пишет. Сервер "кушает" довольно много памяти.

    Запускаем клиента, выбираем сортировку по LAN servers и смотрим, видно сервер или нет. По-идее, должно быть видно, если есть примерно такой процесс:

       30192 ttyp6 R 0:03 ./jk2ded +set dedicated 1 +exec server.cfg +set
       fs_game jediplus 
       
Если что-то не работает, то:
  1. Читаем что пишет клиент.
  2. Если все-равно не получается войти на сервер, смотрим что пишет сервер.
  3. Также, проверяем все возможные и невозможные логи.
  4. Лезем в Интернет на сайты, которые указаны ниже и смотрим, почему может не работать
  5. Используем поисковую систему http://www.google.com.ru и ищем настройки сервера / ошибки/ решения.
  6. Пишем мне http://pm@h20.ru возможно, я помогу.

P.S. Основная проблема при установке серверов v разные версии клиента и сервера. Пропатчите сервер до последней версии, или найдите клиента той же версии, что и сервер.

Установка сервера Counter Strike

Counter Strike - заслужено одна из самых популярных игр в сети. Видимо нужно было описывать игру первой, но согласитесь начинать с того о чем писать не собираешься глупо. "Как?" - скажете вы. Да вот так! Проект занимающийся разработкой жив и развивается, отлично документирован на русском языке. Не упомянуть я об этом просто не мог.

Добро пожаловать на http://www.madeagle.ru тут вы можете найти dedicated server half-life и надстройку для него dedicated server counter-strike, тут вы можете найти еще кое-что. Если вы собрались настраивать game server, то обязательно посетите этот ресурс.

Авторы: Pontiy_Pilat (Unreal, CS) и Perezz (Q3, RTCW, JK2)
Оформление и исправления: Tavik

Оригинал статьи можно найти по адресу: http://www.opennet.ru/base/sys/linux_3d_games.txt.html.

[ опубликовано 27/11/2003 ]

Perezz (pm@h20.ru), Tavik, Pontiy_Pilat - Настройка игрового сервера под UNIX-системой (3D-Action Games)   Версия для печати