Today
-
Yesterday
-
Total
-
  • 레프트4데드2 데디케이트 서버 생성 일대기
    Soliloquy 2018. 2. 9. 16:47

    레프트 4 데드 로고 

     

     

    게임에서 서버는 플레이어의 위치, 공격, NPC의 행동, 게임의 속성등 많은 부분을 담당한다. 벨브에서 만든 게임은 이러한 서버를 개인이 열 수 있게 만들어져 있어서 기존 게임에서 볼 수 없었던 데미지 표시, 음악 재생같은 간단한 기능을 시작해서, 좀비 모드, 술래잡기 모드등 새로운 방식의 게임들을 만들기도 한다.

     

    친구랑 무슨 게임 할 지 생각하다 레프트 4 데드2를 생각해보게 되었다. 레프트 4 데드2에서 뭘 할지 생각해 보다가 과거 NPC 설정 변경으로 메테오 탱크, 중력 탱크, 개인 상점 같은 플러그인을 가진 커뮤니티 서버가 있다는 말을 들었다. 그래서 나도 그런 특이한 요소가 많은 서버를 한 번 만들고 싶어서 서버를 만들게 되었다.

     

    서버 설치와 기본 설정

    안내 찾기

    인터넷을 찾아보니 플러그인을 사용하기 위해서는 서버 종류 중 데디케이트 서버라는 종류로 만들어야 플러그인 사용이 가능하다고 한다. 스팀의 도구탭에 Left 4 Dead 2 Dedicated Server 다운로드 항목을 찾았긴 했는데, 설명 없이 서버 설정이 힘들것 같아서 구글로 레프트 4 데드2 서버 설정에 필요한 안내를 찾아서 진행했다. 스팀 커뮤니티에 있는 글이었는데, 이미지가 많아서 이해하기 좋았다.

     

    서버 파일 다운로드

    그 글에는 데디케이트 서버를 다운로드 하는 방법으로 스팀의 도구 항목을 사용하지 않고 스팀CMD를 이용하였다. 스팀이 아닌 스팀CMD를 사용한 방식은 DOS 같은 커맨드 입력방식, 설치와 스팀 계정이 불필요 해서 선호되는 듯 하였다. 나는 안내에서 설명하는 것 처럼 스팀CMD에서 받을까, 스팀 도구 항목에서 받을까 고민하다, 스팀CMD가 더 가벼울 것 같아서 스팀CMD를 선택했다. 그런데 사용해보니 스팀과 동일한 설치 방식으로 동일하게 무거웠다. 다음엔 스팀으로 설치해야 겠다.

     

    기본 설정

    서버의 다운로드가 끝나면 서버를 효과적으로 운영하기 위한 작업이 필요했다. 그 중에 하나가 Server.cfg, motd.txt 파일등을 만들고 수정하여 서버 이름, 인원 수 제한, 비밀번호 설정, 메세지 설정 등과 같은 설정을 입력시키는 작업이었다. 이 때가 가장 재미있었던 것 같다. 내가 만든 서버에 이름 붙이고, 메세지 넣고.

     

    필수 모드와 플러그인 설치

    내가 그토록 원하던 플러그인을 설치하기 위해서는 서버에 메타모드와 소스모드라는 모드들을 설치해야 했다. 처음에는 소스모드만 설치해도 플러그인이 작동되는 줄 착각해서, 소스모드만 설치했다가 실행이 안되서 찾아보니, 메타모드도 같이 설치해야 하는 구조였다.[각주:1] 메타모드 설치와 어드민 설정까지 완료하였고 플러그인 설치를 위해 설명서를 찾아보았다. 플러그인은 Plugins 폴더에 플러그인 파일을 붙여넣으면 자동적으로 플러그인이 적용되는 간단한 구조였다. 2단 점프 플러그인을 추가한 후 만들어진 서버의 모습이 어떤지 궁금했던 나는 시험 삼아 내 서버에 한 번 들어가보기로 했다.

     

    서버 접속의 난관

    서버에 접속하려고 게임 콘솔에 connect 127.0.0.1[각주:2] 이라고 쳐봤다. 기대되는 로딩스크린이 나왔다. 하지만 1분을 기다려도 로딩스크린은 바뀌지 않았고, 에러 메세지가 나왔다. 내가 만든 서버에 내가 접속하는게 뭐가 잘못된건지 도통 이유를 알 수 없었다. 그래서 아래와 같은 일들을 해봤다.

     

    • Server.cfg 파일을 살펴보기 - rcon_password 수정
       rcon_password가 서버 패스워드 설정인 줄 알고 해당 내용을 지워도 보고, 특수문자를 없애보기도 했다.[각주:3]
    • connect 명령어 수정하기. 비밀번호 붙여서 접속해보기, 포트번호 붙여보기
    • 서버 파일 파라메터 수정. 서버를 콘솔로 열지 말고 GUI로 열기, 설정 IP 수정, 포트 수정

     

    물론 달라지는 것은 없었다. 그러던 도중, 외부 IP주소와 포트번호를 붙여[각주:4] 접속을 해보니, 이게 웬걸, 접속이 잘 된다. 그리고 소스모드 관리자 명령어(!admin)을 난생 처음 사용해 보았다. 한글화가 되어있고, 플레이어 비콘 설정, 불태우기, 중력 설정 등 나름 재미있는 기능도 있었다. 관리 기능 중에는 추방 기능이 있었는데, 신기하게 봇도 추방이 되었다. 2단 점프 플러그인을 사용하기 위해 점프 버튼을 두 번 눌려봤다. 2단 점프가 당연한듯이 되었다. 이제 플러그인만 얹으면 완벽한 것 같다.

     

    플러그인 수집과 포기

    플러그인은 alliedmods.net 과 네이버 레프트 4 데드 카페를 통해 찾을 수 있었다. 킬 카운트, 탱크 체력 표시, 무기 추가/변경등 다양한 플러그인이 있었다.

     

    하지만, 내가 원하는 플러그인은 RPG모드 같은 플러그인들 이었는데, 이런 플러그인들은 배포가 되지 않았다. 하긴. 그렇게 잘 만들면 공유보다는 판매를 하지 않을까. 게다가 플러그인 파일을 배포하면 GPL때문에 그 플러그인의 소스코드까지 배포해야 하니 서버의 독창성을 살릴려고 배포를 잘 안할 것 같다. 그리고 5명 켐페인 방을 만들고 싶어서 인원 수 조절 플러그인을 설치해 봣는데, 무슨 문제인지 인원수가 8로 고정되어 항상 봇이 자리잡고, 해당 플러그인의 설명서 대로 인원 수 조절 명령어가 먹히지 않았는 문제가 발생했다. 이렇게 된다면 플러그인을 직접 만드는게 답인 것 같다. 하지만 만들기 위해 프로그래밍 언어부터 시작해서, 각종 명령어들 까지 배워야 할게 많았다.

     

    결국 그냥 데디케이트 서버 만들기를 그만두기로 했다.

     

    여담

     

    서버를 만드는 데는 수 많은 노력이 필요한 것 같다. 플러그인을 공부하지 않고서는, 제대로된 서버를 운영할 수 없을 것 같다.

     

    서버 설치 파일

    서버 설치 파일에는 몇 가지 신기했던 점이 있었다.

     

    첫 번째로 서버 파일 크기가 생각보다 컸다. 다운로드 용량만 7기가. 처음 봤을때는 게임 한개 용량처럼 여겨졌다. 실제 게임 용량은 11기가쯤 되니 통 게임 용량 파일은 아니긴 하다. 서버가 그만큼 하는 역할이 커서 그러리라 생각된다.

     

    두 번째로 서버 파일 폴더를 열어봤는데, 실제 게임 폴더와 유사한 점이 많았다. 게임 실행 파일이 있었고[각주:5], 맵 폴더 위치도 모두 똑같았다. 이러면 개발하기가 더 편해서 그런가 싶다.

     

    세 번째로 서버 파일 폴더를 실제 게임 폴더 이름으로 바꾼 뒤 스팀으로 무결성 검사를 해 봤더니,[각주:6] 2.9 기가바이트 가량 빼고 서버에 필요한 파일들을 제거 했다는 점이다. 검사 후 서버 파일을 실행 해 보니, 중요한 파일이 없다며 실행이 안된다. 서버에 필요한 파일이랑 게임 실행에 필요한 파일들은 차이가 많나보다. 그래서 스팀에서 데디케이트 서버를 설치하면 게임 폴더에 추가 하여 받는것이 아닌, 별개의 폴더에다 파일을 받는 것 같다.

     

    출처

    레프트 4 데드 로고 그린이: Zeptozephyr

     


    [본문에 사용된 SVG 파일]

    Left 4 Dead logo.svg


     

    1. 알고보니, 소스모드는 메타모드의 플러그인이라고 한다. [본문으로]
    2. connect IP주소 : 해당 IP주소 서버에 접속하기 위한 게임 콘솔 명령어 [본문으로]
    3. rcon은 원격 접속시에 사용하는 콘솔. rcon_password는 이를 위한 비밀번호 설정 즉 접속과는 관련이 없는 설정이었다. [본문으로]
    4. 에: connect 123.123.123.123:27015 [본문으로]
    5. .EXE 파일, 실행하면 로딩창 까지는 나오지만, 게임을 진행 할 수 없다. [본문으로]
    6. Left 4 Dead 2 Dedicated Server 폴더를 Left 4 Dead 2로 변경 [본문으로]

    댓글

어제는 이곳에 명이 다녀갔습니다.

Powered & Designed by Tistory