Half-Life Deathmatch: Source is de klassieke Half-Life 1 deathmatch, herbouwd op dezelfde Source-engine als HL2:DM. Hosten lijkt erg op HL2:DM, met twee verschillen die het vooraf waard zijn om te kennen: het installeert als twee apps, en een verse installatie crasht bij het opstarten totdat je één symlink toevoegt. Beide komen hieronder aan bod.
De server installeren (twee apps)
HLDM:Source is de HL2:DM multiplayer-engine (app 232370) die de Half-Life 1 content (app 360) draait. Installeer beide, anoniem, in dezelfde map:
./steamcmd.sh +login anonymous \
+app_update 232370 validate \
+app_update 360 validate \
+quitDe game-map is hl1mp, en de config die bij het opstarten wordt gelezen is:
<install>/hl1mp/cfg/server.cfgDe valkuil: de server_srv.so symlink
Dit is degene waar mensen op vastlopen. De dedicated engine laadt de game-code uit een bestand genaamd server_srv.so, maar HLDM:Source levert alleen server.so mee. Zonder de alias segfault de server op het moment dat hij opstart, met een ServerDLL_Load-fout en geen duidelijke melding. De oplossing is één enkele symlink naast het echte bestand in hl1mp/bin:
cd <install>/hl1mp/bin
ln -sf server.so server_srv.soDoe dit één keer na het installeren. Het is onschadelijk om het opnieuw uit te voeren, dus het is veilig om het in een startup-script te zetten dat vóór srcds draait.
De launch-regel
Dezelfde srcds_run wrapper als HL2:DM, gericht op de hl1mp game-map. De startmap en spelerslimiet zijn argumenten:
./srcds_run -game hl1mp -console \
-port 27015 \
+map crossfire \
+maxplayers 16 \
+exec server.cfg- De standaardmaps zijn crossfire (de klassieker, met de nuke-knop), boot_camp, bounce, datacore, frenzy, lambda_bunker, rapidcore, snarkpit, stalkyard, subtransit en undertow.
- maxplayers 16 past bij de standaardmaps. crossfire en stalkyard blijven leuk met een volle server.
- Poort 27015 is de game- en query-poort. Open UDP (en TCP voor RCON) in je firewall.
Een kale server.cfg
Naam, wachtwoorden en regels horen in hl1mp/cfg/server.cfg. Free-for-all vs teams is mp_teamplay, dezelfde schakelaar als 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 limitEr zijn geen werkende bots voor deze build, dus het heeft echte spelers nodig. Het komt het best tot zijn recht met een paar vrienden op crossfire.