The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

Игровые сервера под Linux. (game linux)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: game, linux,  (найти похожие документы)
From: Dr.Pixel <dkcs@void.ru.> Date: Mon, 6 Dec 2005 14:31:37 +0000 (UTC) Subject: Игровые сервера под Linux. Вступление. Многие люди до сих пор считают, что Linux & Games ? вещи не совместимые. Сейчас попробую рассеять миф, от том, что MS Windows ? основная игровая платформа. В этой статье я расскажу о практике установки игровых серверов на Linux. Сразу следует оговоритсья, что игровой сервер и игра ? это две разные вещи. Сервер позволяет игрокам взаимодействовать между собой, отвечает за поддержку протокола связи между игроками aka клиентами. Во что играют. Думаю заядлым игрокам не стоит объяснять во что сейчас играют больше всего и какие игровые сервера самые популярные у сетевых игроков. Но если Вы не играете в игры, я попробую вкраце перечислить самые популярные на сегодняшний день игровые сервера: Counter-Strike, Quake, Diablo, Battlefield, Wolfenstein, etc... Если установить сервера этих игр в локальной сети или Internet, то ваш сервер не останется незамеченным :)! Железо. Конфигурация железа полностью зависит от нагрузки на сервер. Если на Вашем сервере online будет играть не более 10 человек, то я уверен, что Вам хватит компютера со следующей конфигурацией железа: процессор 300-500 Мгц, память 128 Мб. Ели же Вы планируете поднимать средний игровой сервер (online ? до 1000), то я бы посоветовал иметь процессор с тактовой частотой не менее 1000 Мгц и оперативную память >= 512 Мб. Ну уж если Вы захотели поднять игровой сервер с "online: >1000", то обычным "настольным" железом не обойтись. P.S. Чем мощьнее железо и чем "шире" канал связи с Internet, то больше игроков "потянется" к Вам играть. Игроки любят быстрые сервера... Приготовления. Перед установкой сервера игры на компютер необходимо сделать некоторые приготовления ? создать каталог, где будут храниться сервера всх Ваших игр (e.g.: /home/gamez). Также не будет лишним создать пользователей, под которыми Вы будете запускать сервера. Отдельного пользователя для каждой игры следует создавать для обеспечения безопасности сервера, тоесть если Хакер (или не Хакер) проник в систему через "дыру" в игровом сервере у него будут права того пользователя, под которым запущен сервер игры, можно представить что будет с сервером если игра будет запущена под рутом :(. Проникновение ? не единственная причина, по которой следует создавать отдельных пользователей. В некоторых случаях в результате сбоев ситемы могут повредиться очень важные системные конфигурации, разделение прав пользователей не даст повредить конфигурации в случае сбоя игрового сервера. Установка. Counter Strike: На мой взгляд самая популярная сетевая игра. Напомню, Counter Strike (csds) не является отдельным игровым сервером, а является ?надстройкой? над Half-Life (hlds). Архив с hlds и csds можно взять на fileplanet.com или 3dgamers.com (все примерно весит 220 Мб). Сначала следует ставить основу ? hlds. Это делается следующим образом: 1. Копируем скаченый дистрибутив hlds в папку, где будут храниться файлы сервера игра (e.g.: /home/gamez/hl). 2. Распаковываем архив: tar -xzvf hlds.tar.gz (имя архива не обязательно hlds :)). В результате должна появиться папка hlds_l. 3. Распаковавыем архив csds в каталог hlds_l. В результате появится папка cstrike в папке hlds_l. Итак, основные приготовления сделаны! Немного о полезном: /hlds_l/cstrike/server.cfg - главный файл конфигураций сервера. /hlds_l/cstrike/motd.txt - сообщение, выводимое на экран подключившимся к серверу. /hlds_l/cstrike/mapcycle.txt - конфигурация для карт. /hlds_l/cstarike/maps/ - каталог с картами. Теперь для запуска игрового сервера Counter Strike необходимо создать скрипт со следующим содержанием, для этого воспользуемся программой cat: $ cat > cstrike #!/bin/sh echo Counter Strike server started... GAMEZCAT=/home/gemez export GAMEZCAT LOAD_PATH=$GAMEZCAT/hl/hlds_l:$LOAD_PATH export LOAD_PATH hlds_run -game cstrike +ip 192.168.0.1 +maxplayers 8 +map de_aztec [!] "Ctrl + c" для завершения ввода. Последняя строка скрипта говорит о том, что играть будем в Counter Strike (-game cstrike) на Вашем сервере (+ip ТВОЙ_IP) с максимальным колическтвом игроков ? 8 (+maxplayers 8) на карте de_aztec (+map de_aztec). Для корректного исполнения скрипта необходимо установить права на выполнение (chmod +x cstrike). Нужно не забыть, что все выше проделанные действия необходимо проделывать из под пользователя, созданного для этой игры. Осталось запустить сервер (./cstrike). Если запуск прошел без ошибок, то я могу Вас поздравить ? Вы запустили свой первый игровой сервер (или не первый :)). Quake3 Arena: На мой взгяд хороший игровой сервер не может не иметь в своем арсенале установленный сервер Q3. Найти дистрибутив сервера Q3 просто. В сети полно мест, где его можно скачать (eg: 3dgamers.com). Сервер Q3 поставляется не в виде исходных кодов, а в виде бинарника, поэтому проблем с установкой возникнуть не должно. Перед началом установки необходимо создать директорию, где будет лежать сервер и вложенную директорию baseq3 (команда: makdir -p /home/gamez/q3/baseq3). Далее необходимо распаковать скаченный дистрибутив с сервером в папку, которую мы создали (команда: tar -xzvf q3.tar.gz). После чего надо с диска с этой игрой переместить все файлы с расширением *.pk3 в корень сервера игры (/home/gamez/q3). После этого необходимо запустить файл сервера (команда: sh filename). После запуска в директории с севером игры появятся некоторые файлы. Главный "конфиг" игры будет лежать в папке /baseq3. Основные параметры в "конфиге": set g_gametype 0 ? устанавливает доступ к серверу (0 ? доступен всем). set fraglimit 0 ? количество фрагов для одной игры. set timelimit 0 ? время игры в минутах. set sv_maxclients 0 ? максимально количество игроков. set rconpassword "passwd" ? админский пароль на rcon. set bot_enable 1 ? боты (1 ? вкл. 0 ? выкл.). set "Administarator" "admin_name" ? имя администратора сервера. set "Email" "admin@server.gov"- адрес e-mail администратора. set "URL" "http://server.gov" ? адрес сайта. Etc... :) Если "конфиги" подправилены, то самое время запускать сервер, для этого можно воспользоваться командой: ./q3ded +set dedicated 1 +set +exec config.cfg Постоянно при запуске сервера не удобно вбивать длинную команду, поэтому для упрощения жизни админу можно создать скрипт запуска сервера игры Q3. Как и в случае с Counter Strike воспользуемся программой cat: $ cat > q3 #!/bin/sh echo Quake 3 Arena server started... GAMEZCAT=/home/gemez export GAMEZCAT LOAD_PATH=$GAMEZCAT/q3:$LOAD_PATH export LOAD_PATH q3ded +set dedicated 1 +set +exec config.cfg [!] "Ctrl + c" для завершения ввода. Параметры запуска сервера: +set dedicated 1 ? тип запуска. +exec config.cfg ? используемые "конфиги". После написания скрипта установим права: chmod +x q3. После всех выше перечисленных приготовлений можно запускать сервер: ./q3 Если ошибок не возникло, то я Вас поздравляю ? сервер запущен. А если всетаки ошибки имеют место, то я бы посоветовал еще разок открыть конфиги и просмотреть все. Чаще всего ошибки при запуске сервера кроются именно в ошибках конфига. Совет. Как Вы заметили сервер работает до тех пор, пока открыт терминал, из которого он запущен и при его закрытии сервер прекращяет свою работу. Это связано с тем, что терминал убивает все процессы, запущенные из него при его закрытии. Это не удобно. Один из способов исправления этой ситуации ? это добавление амперсанда (&) в конец команды запуска сервера. Таким образом процесс переходит в фоновый режим. В этом тоже есть один огромный минус ? теряешь доступ к консоли управления сервером. Но есть выход и из этой ситуации ? использование экранного менеджера с эмуляцией терминала. Один из таких экранных менеджеров ? это screen. Он позволяет сохранять процессы, запущенные в нем. Это очень удобно при администрировании сервера удаленно. Скачать screen можно с http://gnu.org. Там же есть и документация к нему. Пользоваться screen'ом довольно просто. Вот пример запуска сервера q3 в screen: screen -d -m -A -S Quake q3 -d, -m - запуск сессии в detatch режиме (для стартовых скриптов). -A - подгоняет размер окна под размер текущего терминала. -S Quake - устанавливает имя для данной сессии. q3 - собственно команда (в нашем случае скрипт). Команда screen -r Quake - восстанавливает сессию Quake в screen. Команда screen -list - покажет все сессии, запущенные под screen. Заключение. Основные игры поставлены. Думаю с установкой и настройкой других Вы сможешете разобратсья :). Еще могу посоветовать "покопать" сеть в поисках админских модов для серверов игр, их слава Богу в сети полно. Если возникнут вопросы то я с радостью отвечу Вам на них (мой e-mail: dkcs@void.ru). Удачи в нелегком труде Системного Администратора!... ~~~~~~~~~~~~~~~~~~~~~~~~ author - Dr.Pixel e-mail - <dkcs@void.ru.> web - http://dkcs.void.ru

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, KdF, 19:35, 06/12/2005 [ответить] [смотреть все]    [к модератору]
  • +/
    В установке CS-сервера в локальной сети есть масса подводных камней, которые в данной статье не описаны.
    Существует замечательный ресурс www.dedicated-server.ru, на котором много информации особеннно по выделенным CS-серверам.

    Прошу прощения, но на мой взгляд, с точки зрения системы в статье не описано ничего особенного, а с точки зрения настройки игрового сервера как такового - вообще ничего, распаковать два архива и сделать chmod может каждый.

     
  • 1.2, Mike, 22:37, 06/12/2005 [ответить] [смотреть все]    [к модератору]
  • +/
    Хорошо, а как запускать много серверов, скажем, для CS на 1 сервере. Я хочу, чтобы у меня было несколько карт одновременно..
    Здесь этот момент явно упущен.

     
     
  • 2.8, Assorted, 21:14, 07/12/2005 [^] [ответить] [смотреть все] [показать ветку]     [к модератору]
  • +/
    скопировать серв в другую директорию и запускать с ключём -port 27016 вешает се... весь текст скрыт [показать] [показать ветку]
     
  • 1.3, kopic, 22:41, 06/12/2005 [ответить] [смотреть все]    [к модератору]  
  • +/
    Написан полный бред, сервера для обеих игр настраиваются вовсе не так как описано в статьях. Откуда автор интересно взял вот это:2. Распаковываем архив: tar -xzvf hlds.tar.gz.
    Когда в оригинале идет файлик ****.bin
    Бред полный.
     
  • 1.4, Cisco, 06:29, 07/12/2005 [ответить] [смотреть все]    [к модератору]  
  • +/
    Еще неплохо было бы указать/посоветовать использование таких утилит как daemontools для мониторинга демона.
     
  • 1.5, dimus, 07:44, 07/12/2005 [ответить] [смотреть все]    [к модератору]  
  • +/
    Вообще-то сервер контры можно свободно скачать через steam. (Кто не в курсе - это такая система для распространения онлайн игр от Valve).
    Я делал так: сначала качаешь сам стим - это примерно 300 килобайт. Потом указываешь, что надо скачать сервер для контры. Я скачал сервер для контры 1.6, и попутно получил сервер и карты для мультиплеерного HalfLife. (это порядка 400Мб траффика) Можно также скачать сервер для CSS. Полученный таким образом сервер прекрасно работал. Но чтобы он работал еще лучше, следует знать (тем, кто не знает), что есть такая штука, как метамод и amxmodx. Поставить крайне рекомендуется.
    А вообще тут правильно сказали, что лучший ресурс по игровым серверам - это dedicatedserver
     
  • 1.6, ExclusivE, 14:01, 07/12/2005 [ответить] [смотреть все]    [к модератору]  
  • +/
    > set g_gametype 0 ? устанавливает доступ к серверу (0 ? доступен всем).
    Нифига, это тип игры. 0 - FreeForAll, 1 - Tournament, ...
    > ./q3ded +set dedicated 1 +set +exec config.cfg
    config.cfg загружается по умолчанию, +set тут вообще лишнее
    >GAMEZCAT=/home/gemez
    >export GAMEZCAT
    >LOAD_PATH=$GAMEZCAT/q3:$LOAD_PATH
    >export LOAD_PATH
    А это зачем?

    ИМХО надо еще какой-нить мод прикрутить для расширенного управления, голосований, дополнительных типов игры. OSP например.

     
  • 1.7, Assorted, 21:13, 07/12/2005 [ответить] [смотреть все]    [к модератору]  
  • +/
    Counter-Strike качать надо с офф сайта.
    качаем стим для игры с сайта www.steampowered.com, им сливаем сервер с офф сайта(на подобие cvs там всё сливается, то есть апдейтить удобно). И дальше уже настраиваем.
     
  • 1.9, _Ale_, 13:07, 09/12/2005 [ответить] [смотреть все]    [к модератору]  
  • +/
    Нате вам до кучи...
    http://nice.csmapworld.ru/CS_for_OpenBSD.htm
     
  • 1.10, Vasea, 18:32, 21/12/2005 [ответить] [смотреть все]    [к модератору]  
  • +/
    skajite kak nastroiti na linuxe server ultima onli
     
  • 1.11, Bill, 11:10, 23/01/2006 [ответить] [смотреть все]    [к модератору]  
  • +/
    Ну так напишите кто-нибудь нормальную статью, умники.
     
  • 1.12, DIAMOND, 21:57, 27/03/2006 [ответить] [смотреть все]    [к модератору]  
  • +/
    статья конечно не ахти, но кт может предложить полутше, буду рад.
     
  • 1.13, striker, 09:22, 12/09/2006 [ответить] [смотреть все]    [к модератору]  
  • +/
    Нашел сайт www.sysit.ru, где можно заказать на CD выделенный сервер Counter-Strike 1.6 и Source под win32 и linux!  
     
  • 1.15, HOSTER, 23:51, 29/06/2007 [ответить] [смотреть все]    [к модератору]  
  • +/
    Да а ссылку на ети все файлы можна ... Что то я на сайне их накопать не могу !)))
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:





      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor