Half-Life Deathmatch: Source는 HL2:DM과 같은 Source 엔진에서 재구축된 Half-Life 1의 클래식 데스매치입니다. 호스팅은 HL2:DM과 비슷하지만, 미리 알아 둘 만한 차이가 두 가지 있습니다: 두 개의 app으로 설치된다는 점, 그리고 새로 설치하면 symlink를 추가하기 전까지 시작 시 멈춘다는 점입니다. 둘 다 아래에서 설명합니다.
서버 설치하기(두 개의 app)
HLDM:Source는 HL2:DM의 멀티플레이어 엔진(app 232370)이 Half-Life 1의 콘텐츠(app 360)를 돌리는 것입니다. 둘 다 익명으로, 같은 폴더에 설치하세요:
./steamcmd.sh +login anonymous \
+app_update 232370 validate \
+app_update 360 validate \
+quit게임 폴더는 hl1mp이며, 시작할 때 읽는 설정은 다음과 같습니다:
<install>/hl1mp/cfg/server.cfg핵심: server_srv.so symlink
이것이 사람들을 헷갈리게 하는 부분입니다. 전용 엔진은 server_srv.so라는 파일에서 게임 코드를 불러오지만, HLDM:Source에는 server.so만 들어 있습니다. 이 별칭이 없으면 서버는 시작하는 순간 segfault가 나며, ServerDLL_Load 오류만 뜨고 명확한 메시지는 없습니다. 해결책은 hl1mp/bin의 실제 파일 옆에 두는 symlink 하나입니다:
cd <install>/hl1mp/bin
ln -sf server.so server_srv.so설치 후 한 번만 하면 됩니다. 다시 실행해도 무해하므로, srcds보다 먼저 실행되는 시작 스크립트에 넣어도 안전합니다.
시작 줄
HL2:DM과 같은 srcds_run 래퍼를 게임 폴더 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(RCON 용으로는 TCP 도)를 열어 두세요.
기본 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 에서 친구 몇 명과 함께할 때 가장 재미있습니다.