Ставим Source Dedicated ServerСообщение #348508
Сегодня я расскажу вам о том, как ставится Source Dedicated Server (далее SRCDS).

I. Установка:

0. Прежде чем приступить к установке, необходимо сказать пару слов о hldsupdatetool. hldsudpdatetool - это единый инструмент для установки и обновления серверов на базе Steam, включя игры Valve на базе HL1 и HL2, а в будущем и сторонние игры, например Red Orchestra.

1. Качаем "дистрибутив" hldsupdatetool и сохраняем во временную папку.

2. Запускаем и проходим короткий мастер установки, заключающийся по большей части в серии нажатий Next и указании папки, в которой будет стоять сервер. Папку указываем на свое усмотрение, в примере будет использована папка c:\server.

3. Идем в папку c:\server и запускаем лежащий там пока в гордом одиночестве файл hldsupdatetool.exe. Это приведет к обновлению hldsupdatetool.exe до последней версии.

4. Создаем батник для установки и последующего обновления сервера (можно обойтись и без него, в этом случае просто используйте тот же синтаксис в командной строке).

Запустите notepad.exe и в появившемся окне напишите следующее:
code:
start wait c:\server\hldsupdatetool.exe
start wait c:\server\hldsupdatetool.exe -command update -game "Counter-Strike Source" -dir .
exit

Сохраните файл в папке c:\server с названием update.bat (название файла можете сдалть любое, главное, чтобы расширение было .bat, а не txt!)

Теперь немного о том, что этот батник делает:

Первая строка просто запускает hldsupdatetool, чтобы скачать его последнюю версию, если таковая есть и дожидается пока этот процесс окончится.
Вторая строка запускает установку или обновление сервера Counter-Strike: Source в ту же папку, где находится hldsupdatool.exe и дожидается окончания этого процесса. Для создания сервера HL2DM или DODS используйте в параметре -game значение "hl2mp" или "dods" соответственно (кавычки обязательны!).
Третья строчка гарантирует окончание работы батника по завершению всех команд.

5. Запускаем update.bat. После запуска батника начнется процесс установки сервера. При начальной установке скачивается более гигабайта данных, поэтому в зависимости от скорости вашего соединения, процесс может быть достаточно длительным. После окончания установки, батник закроется самостоятельно.

II. Базовая настройка

Прежде чем приступить к запуску сервера, желательно его настроить. Подавляющее большинство настроек SRCDS выполняется с помощью файла server.cfg, расположенного в папке cfg установленной игры (/cstrike/cfg для Counter-Strike: Source, /hl2mp/cfg для HL2DM, /dod/cfg для Day of Defeat: Source).

При отсутствии этого файла (как например при начальной становке) сервер запускается со значениями по умолчанию.

Пример файла server.cfg для Counter-Strike: Source можно найти здесь. Детальное описание всех настроек выходит за рамки данной статьи.

Другие файлы, на которые вам стоит обратить внимание (на примере CSS, для других игр, замените cstrike на папку игры):

/cstrike/maplist.txt - содержит список всех карт на сервере. Если карты нет в списке, то ее нельзя поставить, даже если соответствующий .bsp файл находится в папке maps
/cstrike/mapcycle.txt - содержит список карт, которые находятся в игровом цикле. Если карты здесь нет, то поствить ее можно только вручную.
/cstrike/motd.txt - содержит приветственное сообщение, демонстрируемое игрокам при входе на сервер или при смене карты. При форматировании использутеся HTML
/cstrike/cfg/autoexec.cfg - содержит параметры, которые должны выполняться один раз при запуске сервера (в отличие от server.cfg, который исполняется при каждой смене карты).

III. Запуск сервера

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

Итак, снова открываем notepad.exe и пишем:
code:
@echo off
cls
:loop
echo (%date% %time%) Checking for updates
start /wait c:\server\update.bat
echo (%date% %time%) Starting SRCDS
start /wait c:\server\srcds.exe -console -game cstrike +maxplayers 16 +map de_dust
echo (%date% %time%) Restarting SRCDS
goto loop

Сохраняем наш файл в папку c:\server с названием server.bat (как и раньше, название можете поставить любое, но расширение должно быть bat!)

Теперь рассмотрим наш батник в подробностях:

Первая строка просто отключает вывод ненужной информации на экран
Вторая строка очищает экран
Третья строка устанавливает точку, к которой батник вернется в случае падения сервера
Четвертая строка выводит на экран сообщение Checking for updates с указанием даты и времени
Пятая строка запускает созданный нами ранее батник обновления сервера. Это позволит нам обновлять сервер простым его перезапуском.
Шестая строка выводит на экран сообщение Starting SRCDS с указанием даты и времени
Седьмая строка запускает собственно сервер. Рассмотрим ее параметры подробнее:

-console - запускает сервер в консольном режиме. Без этого параметра сервер запустится с графическим интерфейсом (как через Steam) и потребует ручного нажатия кнопки для действительного запуска
-game - указывает игру, для которой запускается сервер. Для серверов HL2DM и DOD Source необходимо указывать hl2mp и dod соответственно.
+maxplayers - указывает максимальное количество игроков на сервере
+map - указывает стартовую карту для сервера. Этот параметр обязателен, кроме случая установки SourceTV прокси.

Другие параметры:
+ip - указывает ip адрес, на котором запускается сервер. Использовать только в случае наличия нескольких адресов на сервере!
-port - указывет UDP порт, на котором запускается сервер. По умолчанию используется порт 27015. Если порт по умолчанию занят, автоматически используется следующий.
+tv_port - указывает UDP порт, на котором запускается SourceTV. По умолчанию используется порт 27020, если он занят, автоматически используется следующий
-tickrate - указывает тикрейт сервера. По умолчанию CSS запускается с тикрейтом 33, HL2DM и DOD: Source - 66. Выставление значений ниже значений по умолчанию или значений не кратных 33 приведет к проблемам на сервере!

Седьмая строка нашего батника выводит на экран сообщение Restarting SRCDS с указанием даты и времени
Восьмая строка возвращает батник к указанной ранее точке в случае падения или выключения сервера (инициируя таким образом обновление и перезапуск сервера).

Все. Наш батник готов и разобран по косточкам, для запуска сервера нам осталось только запустить батник.

IV. Специфика Linux

Установка и запуск сервера под Linux в общем и целом аналогична Windows с поправкой на особенности операционной системы. Поэтому я лишь в кратце пройдусь по основным шагам:

mkdir server
cd server
wget http://www.steampowered.com/download/hldsupdatetool.bin
chmod +x hldsupdatetool.bin
./hldsupdatetool.bin (вам будет продемонстрировано лицензинное соглашение, введите yes, чтобы согласиться).
./steam (hldsupdatetool под Linux называется steam)

Остальное аналогично Windows. Сервера лучше запускать в бэкграунде через screen.