Иногда нужен выделенный сервер на домашнем компьютере, например для тестов изменений в плагинах до загрузки на публичные сервера, сейчас расскажу как его развернуть на платформе Windows. Для загрузки и обновления сервера используем официальную утилиту от Valve - SteamCMD.
Установка
1. Создаем папку в которой будет находится сервер и Steam CMD, допустим l4d2_servers и переходим в нее.
2. Создаем папку SteamCMD
3. Скачиваем SteamCMD и кладем файл steamcmd.exe из скаченного архива в папку SteamCMD, запускаем его и после запуска видим что запустилась консоль, ждем пока она скачает клиент SteamCMD и установит его, попутно наблюдаем как кол-во файлов и папок в директории SteamCMD растет
4. Теперь создаем в папке l4d2_servers папку где будут находится непосредственно файлы сервера, допустим l4d2_coop_server
5. Скачиваем готовые файлы скриптов и распаковываем в папку l4d2_coop_server
start_update.bat - запуск обновления
start_update_validate.bat - запуск обновления с полной проверкой файлов
startserver_coop.bat - запуск сервера с режимом игры coop
startserver_survival.bat - запуск сервера с режимом игры survival
6. Открываем в любом текстовом редакторе файл start_update.bat и изменяем путь до сервера в параметре force_install_dir на свой, в моем случае это F:\l4d2_servers\l4d2_coop_server\ и у нас получится вот такое содержимое файла start_update.bat:
start ..\SteamCMD\steamcmd +login anonymous +force_install_dir F:\l4d2_servers\l4d2_coop_server\ +app_update 222860
По аналогии изменяем start_update_validate.bat:
start ..\SteamCMD\steamcmd +login anonymous +force_install_dir F:\l4d2_servers\l4d2_coop_server\ +app_update 222860 validate
7. Запускаем файл start_update.bat, SteamCMD обнаружит что в папке сервера нет и скачает наш сервер в папку указанную в параметре force_install_dir, идем за чаем и ждем пока он скачает
Настройка
1. Перед первым запуском настраиваем startserver_coop.bat или startserver_survival.bat смотря какой режим вам нужен, рассмотрим на примере startserver_coop.bat
@echo off
cls
echo Protecting srcds from crashes...
title srcds.com Watchdog
:srcds
echo (%time%) srcds l4d2_coop_server started c2m1_highway .
start /wait srcds.exe -console -game left4dead2 -port 27017 +map c2m1_highway +mp_gamemode coop
echo (%time%) WARNING: srcds closed or crashed, restarting....
goto srcds
Для большинства менять ничего не нужно, но вам пригодится знать следующие параметры:
-port - порт
-ip - реальный IP адрес
+mp_gamemode - режим игры
+map - стартовая карта
2. Далее нужно настроить конфиг сервера называется он server.cfg, он будет лежать в папке <Буква диска>\l4d2_servers\l4d2_coop_server\left4dead2\cfg, в изначальной комплектации его нет, поэтому создаем сами.
// *Server settings* //
// Название сервера
hostname "l4d2_coop_server"
sv_lan 0
sv_region 255
// Ваш ркон пароль
rcon_password "l4d2_coop_server"
// Кол-во неудачных попыток перед баном IP адреса того кто пытается зайти
sv_rcon_maxfailures 5
sv_search_key "l4d2_coop_server"
sv_tags "теги"
sv_contact "сайт или почта"
// *Additional settings* //
// Разрешенные режимы игры,если их несколько то через запятую без пробелов
sm_cvar sv_gametypes "coop,realism"
sm_cvar sv_alltalk 1
sm_cvar sv_cheats 0
// *Slot and players settings* //
// Allow or disallow the wait command on clients connected to this server
sm_cvar sv_allow_wait_command 0
sm_cvar sv_allow_lobby_connect_only 0
sm_cvar sv_maxplayers 4
sm_cvar sv_visiblemaxplayers 4
sm_cvar sv_force_unreserved 1
3. Запускаем сервер путем запуска файла startserver_coop.bat
4. Проверяем доступность через Steam, открываем Steam => Вид => Серверы => Локальная сеть
Так же через это меню можно подключатся к серверу, однако учтите, Steam считает выделенный сервер за игру, поэтому запускаем сначала игру, сворачиваем ее и только потом подключаемся к серверу, иначе сервер не позволит игре запустится.
На этом все, удачных экспериментов!)