Half-Life Deathmatch: Source to klasyczny deathmatch z Half-Life 1 przebudowany na tym samym silniku Source co HL2:DM. Hostowanie go jest zbliżone do HL2:DM, z dwiema różnicami, które warto znać od razu: instaluje się jako dwie aplikacje, a świeża instalacja crashuje przy starcie, dopóki nie dodasz jednego symlinku. Oba te zagadnienia omawiamy poniżej.
Instalacja serwera (dwie aplikacje)
HLDM:Source to silnik multiplayer HL2:DM (aplikacja 232370) uruchamiający zawartość Half-Life 1 (aplikacja 360). Zainstaluj obie anonimowo, do tego samego folderu:
./steamcmd.sh +login anonymous \
+app_update 232370 validate \
+app_update 360 validate \
+quitFolder gry to hl1mp, a konfiguracja wczytywana przy starcie to:
<install>/hl1mp/cfg/server.cfgHaczyk: symlink server_srv.so
To właśnie na tym ludzie się wykładają. Dedykowany silnik wczytuje kod gry z pliku o nazwie server_srv.so, ale HLDM:Source dostarcza tylko server.so. Bez tego aliasu serwer segfaultuje w momencie startu, z błędem ServerDLL_Load i bez jasnego komunikatu. Rozwiązaniem jest pojedynczy symlink obok właściwego pliku w hl1mp/bin:
cd <install>/hl1mp/bin
ln -sf server.so server_srv.soZrób to raz po instalacji. Ponowne uruchomienie nie szkodzi, więc można to bezpiecznie umieścić w skrypcie startowym uruchamianym przed srcds.
Linia uruchomieniowa
Ten sam wrapper srcds_run co w HL2:DM, wskazujący na folder gry hl1mp. Mapa startowa i limit graczy to argumenty:
./srcds_run -game hl1mp -console \
-port 27015 \
+map crossfire \
+maxplayers 16 \
+exec server.cfg- Standardowe mapy to crossfire (klasyk z przyciskiem odpalającym bombę atomową), boot_camp, bounce, datacore, frenzy, lambda_bunker, rapidcore, snarkpit, stalkyard, subtransit i undertow.
- maxplayers 16 pasuje do standardowych map. crossfire i stalkyard pozostają grywalne przy pełnym serwerze.
- Port 27015 to port gry i zapytań. Otwórz UDP (oraz TCP dla RCON) w zaporze sieciowej.
Podstawowy server.cfg
Nazwa, hasła i reguły trafiają do hl1mp/cfg/server.cfg. Tryb każdy na każdego kontra drużynowy to mp_teamplay, ten sam przełącznik co w 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 limitDla tej wersji nie ma działających botów, więc potrzebuje prawdziwych graczy. Najlepiej wypada z kilkoma znajomymi na crossfire.