Half-Life Deathmatch: Source это классический дезматч Half-Life 1, пересобранный на том же движке Source, что и HL2:DM. Хостинг близок к HL2:DM с двумя отличиями, о которых стоит знать заранее: сервер устанавливается как два приложения, а свежая установка падает при загрузке, пока вы не добавите один симлинк. Оба момента разобраны ниже.
Установка сервера (два приложения)
HLDM:Source: это мультиплеерный движок HL2:DM (app 232370), на котором работает контент Half-Life 1 (app 360). Установите оба в одну папку. Анонимно ставится только 232370. App 360 требует входа в Steam с аккаунта, на котором есть HLDM:Source, так что войдите этим аккаунтом:
./steamcmd.sh +login <your_steam_user> \
+app_update 232370 validate \
+app_update 360 validate \
+quitПапка игры это hl1mp, а конфиг, который она читает при загрузке:
<install>/hl1mp/cfg/server.cfgПодвох: симлинк server_srv.so
Вот на чём спотыкаются. Выделенный движок грузит игровой код из файла server_srv.so, а HLDM:Source поставляет только server.so. Без алиаса сервер падает с segfault сразу при загрузке, во время инициализации движка (CModAppSystemGroup::Create), без внятной ошибки. Исправление: один симлинк рядом с настоящим файлом в hl1mp/bin:
cd <install>/hl1mp/bin
ln -sf server.so server_srv.soСделайте это один раз после установки. Повторный запуск безвреден, поэтому это безопасно поместить в стартовый скрипт, который выполняется перед srcds.
Строка запуска
Та же обёртка srcds_run, что и у HL2:DM, направленная на папку игры hl1mp. Стартовая карта и лимит игроков задаются аргументами:
./srcds_run -game hl1mp -console \
-port 27015 \
+map crossfire \
+maxplayers 16 \
+exec server.cfg- Стандартные карты это crossfire (классика, с кнопкой запуска ракеты), boot_camp, bounce, datacore, frenzy, lambda_bunker, rapidcore, snarkpit, stalkyard, subtransit и undertow.
- maxplayers 16 подходит для стандартных карт. crossfire и stalkyard остаются весёлыми с полным сервером.
- Порт 27015 это игровой порт и порт запросов. Откройте UDP (и TCP для RCON) в вашем файрволе.
Стандартный server.cfg
Имя, пароли и правила идут в hl1mp/cfg/server.cfg. Каждый сам за себя или командный режим задаётся через mp_teamplay, тот же переключатель, что и в HL2:DM:
hostname "My HLDM:Source Server" // CHANGE ME
rcon_password "pick-a-long-secret" // CHANGE ME
sv_password "" // a word here = private, blank = open
sv_lan 0
mp_teamplay 0 // 0 = free-for-all, 1 = team deathmatch
mp_fraglimit 0 // kills to end the map, 0 = no limit
mp_timelimit 20 // minutes to end the map, 0 = no limitДля этой сборки нет работающих ботов, поэтому нужны реальные игроки. Лучше всего с парой друзей на crossfire.
