Half-Life Deathmatch: Source est le classique deathmatch de Half-Life 1 reconstruit sur le même moteur Source que HL2:DM. L'héberger ressemble beaucoup à HL2:DM avec deux différences à connaître d'emblée : il s'installe en deux apps, et une installation fraîche plante au démarrage tant que vous n'ajoutez pas un lien symbolique. Les deux sont couvertes ci-dessous.
Installer le serveur (deux apps)
HLDM:Source est le moteur multijoueur HL2:DM (app 232370) faisant tourner le contenu de Half-Life 1 (app 360). Installez les deux, de façon anonyme, dans le même dossier :
./steamcmd.sh +login anonymous \
+app_update 232370 validate \
+app_update 360 validate \
+quitLe dossier du jeu est hl1mp, et la configuration qu'il lit au démarrage est :
<install>/hl1mp/cfg/server.cfgLe piège : le lien symbolique server_srv.so
C'est celui qui bloque les gens. Le moteur dédié charge le code du jeu depuis un fichier appelé server_srv.so, mais HLDM:Source ne fournit que server.so. Sans l'alias, le serveur plante (segfault) dès qu'il démarre, avec une erreur ServerDLL_Load et aucun message clair. La solution est un simple lien symbolique à côté du vrai fichier dans hl1mp/bin :
cd <install>/hl1mp/bin
ln -sf server.so server_srv.soFaites ceci une fois après l'installation. Il est sans danger de le relancer, donc on peut le placer sans risque dans un script de démarrage qui s'exécute avant srcds.
La ligne de lancement
Le même wrapper srcds_run que HL2:DM, pointé vers le dossier de jeu hl1mp. La carte de départ et la limite de joueurs sont des arguments :
./srcds_run -game hl1mp -console \
-port 27015 \
+map crossfire \
+maxplayers 16 \
+exec server.cfg- Les cartes d'origine sont crossfire (le classique, avec le bouton nucléaire), boot_camp, bounce, datacore, frenzy, lambda_bunker, rapidcore, snarkpit, stalkyard, subtransit et undertow.
- maxplayers 16 convient aux cartes d'origine. crossfire et stalkyard restent amusantes avec un serveur plein.
- Le port 27015 est le port de jeu et de requête. Ouvrez UDP (et TCP pour RCON) dans votre pare-feu.
Un server.cfg de base
Le nom, les mots de passe et les règles vont dans hl1mp/cfg/server.cfg. Le chacun pour soi contre les équipes se règle avec mp_teamplay, le même interrupteur que 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 limitIl n'y a pas de bots fonctionnels pour cette version, donc elle a besoin de vrais joueurs. Elle est à son meilleur avec quelques amis sur crossfire.