이번 포스트는 카일레라(Kaillera)대신 Emulinker라는 Netplay Server를 설치해 봅니다.
솔직히 저는 카일레라 서버에 참가하여 Net Play를 해본적이 없기 때문에 카일레라가 가진 문제점을 잘알지 못하지만, Emulinker 개발자의 주장에 따르면 기존 카일레라가 가지고 있던 방폭(Exploit), 입력키 지연(Key Delay)같은 버그들을 개선했다고 합니다.
KOF , 철권같은 대전액션 게임들은 순간적인 기술입력이 실력의 핵심인데 키지연이 발생한다면, 짜증나서 게임 못하겠죠?
그래서 카일레라를 해보지도 않았지만 Emulinker를 설치하기로 결정했습니다.
Emulinker는 기본적으로 카일레라 기반의 네트워크 서버라고 하고 있는데, 포스트 1부에서 카일레라 웹사이트도 링크했고 파일다운로드도 링크도 걸었지만 카일레라서버의 파일은 바이너리(Binary)파일입니다. 바이너리 파일은 기본적으로 컴파일되어 기계어로 번역된것으로 이것은 소스코드를 공개하지 않겠다는 카일레라 개발자의 의지인데, 사연은 모르지만 소스코드를 뒤로 얻은건지 아니면 역설계로 똑같히 베껴 만든건지…어쨌든 Emulinker개발자가 JAVA를 이용하여 Emulinker를 탄생시켰습니다.
카일레라 넷플레이 클라이언트로 서버를 조회하는 모습입니다. 오리지널 카일레라도 많이 쓰지만, EMX라고 되어 있는것이 Emulinker인데 이것도 많이 보이내요.
카일레라는 0.86이 마지막 버젼으로 알고 있는데 0.97이라는 숫자는 또 뭔지….
여하튼, Emulinker에 대해 간단히 알아보고 바로 설치를 시작해 봅니다.
Emulinker에는 2가지 버젼이 있는데
v1.0.2 : source forge.net에서 구할 수 있습니다.
Link : https://sourceforge.net/projects/emulinker/files/emulinker-kaillera-server/emulinker-kaillera-server-1.0/emulinker-kaillera-server-1.0.2.zip/download
v.2.0.2 : GitHub에서 구할 수 있습니다.
Link : https://github.com/kwilson21/Emulinker-X
당연히 version 숫자가 높은 v.2.0.2가 좀 더 안정적이겠지요. GitHub에서 개발자의 신상정보도 조금 나옵니다. 2015년에는 대학생이었는데 지금은 취업했으려나..
이번 포스트는 Emulinker v2.0.2 설치로 진행합니다. Emulinker는 JAVA로 만들어 졌으므로 Java를 실행할 수 있도록 Java 개발키트를 설치해 줍니다. 이놈이 있으면 Java로 만들어진 프로그램이 실행가능해 집니다.
그런 후 , GitHub 링크가서 직접 Emulinker 파일을 다운받으셔도 되고 아래처럼 다운받으셔 됩니다.
압축파일도 풀어주고…. 이번엔 또 zip파일이라..명령어가 또 다름….
그런데 여기서도 .sh로 끝나는 리눅스 실행스크립트 파일이 실행모드가 아니므로 압축파일이 풀린 디렉토리로 들어가서 아래 명령어를 통해 실행스크립트를 실행가능하도록 모드를 바꿔 줍니다. 1부 카일레라 서버 설치때와 유사합니다.
자 이젠, 실행만 하면 되는거내요.
아뿔싸, 아래와 같은 에러를 뿜어 됩니다…아…… 리눅스는 이런 문제에 봉착 했을때 상당한 멘탈을 요구하게 됩니다….
GitHub가서 도대체 왜 안되는지 구글링의 구글링을 한 결과 Linux에서 실행이 안되는 문제가 제기 되었고, 원인도 찾아 졌습니다.
관련링크 : https://github.com/kwilson21/Emulinker-X/issues/6
DetreRaison이란 사람이 .sh파일에 파일 끝에 New Line이 있다고 애기하고 있으며, 이를 지우면 문제가 해결 된다고 보고해왔고 수정요청을 개발자에게 해놨으나 개발자가 깔아 뭉갰습니다.
어쨋든 .sh파일들을 열어서 줄삭제만 하면 되는줄 알았으나…
vi로 아무 .sh파일 하나를 열었는데…. 그냥 한줄인데… 대체 New Line이 어딨다는 거지.…
아… 이문제로 꼬박 하루를 검색질을 하게 되버리고 말았습니다.
일단 해결책은 이렇습니다. 각 .sh파일들을 vi 편집기로 열어서 vi안에서 아래의 커맨드 명령어를 내리면 해결 됩니다. 커맨드만 대충 보면 noeol(No End of Line)의 약자 같은데…아마 맞겠죠?
실제로 이명령어 실행을 통해 vi를 빠져나오면 각 .sh파일들이 2byte씩 용량이 줄어 있을 겁니다. 하여간 New Line인지 뭔지가 삭제가 되긴 되었나 봅니다.
다른 문제가 없다면 아래와 같이 서버가 실행됩니다.
/lin 디렉토리안에는 여러가지 설정파일이 있는데 그중에서 중요한것만 찝어보면
access.cfg : 방화벽기능입니다. 특정 IP 또는 대역을 차단하거나 허용할 수 있습니다. 특정 게임만 허용할 수 도 있습니다.
emulinker.cfg : 클라이언트에게 보여줄 서버의 정보입니다. 포트정보도 여기서 지정합니다.
language.properties : 서버에 입장시 환영메세지, 사용자에게 전달한 각종 시스템메세지 등을 정할 수 있습니다.
이외에도 다른 설정파일이 더 있지만, 여기까지만 설명드리겠습니다.
설명드린바와 같이 Emulinker는 오리지널 Kaillera보다 지원하는 기능이 매우 많습니다.
자신이 원하는 대로 설정을 맞췄다면 서버를 실행시키시고 1부 카일레라 포스트에서 처럼 넷플레이 클라이언트를 실행하여 서버가 리스트에서 보이는지 확인해 보시기 바랍니다.
2부 Emulinker 서버설치는 여기서 마치고 3부에서 서버는 열어둔 상태에서 실제 Netplay게임을 경험해보는 포스팅을 하겠습니다.
안녕하세요!! 댓글 남겨주신거 정말감사드려요^^; 다름이아니라 에뮬링커 2.0.2 버전 현재 포스팅하신글을 윈도우에서 자바실행후 기재해주신 명령어들을 입력하면 제대로 구동이될까욥!
만약안된다면 2.0.2 버전을 윈도우에서 돌릴만한 방법이 있는지 여쭤봐도될지^^;;
좋은글 정독하고 갑니다!
안녕하세요!! 글정독하고갑니다!
1.혹시 2.0.2 버전으로 윈도우로 돌릴수있는 방법이있을까욥!
2. 아니면 위에 코드 같은경우 리눅스에서만 버그가 발생한다고 하셨는데 만약 java 로 윈도우 구동할경우 문제없는건지! 알고싶습니다!
다시 방문해 주셨군요. 감사합니다. ^^ 당연히 윈도우즈에서도 가능합니다.
JAVA는 윈도우즈나 리눅스 같은 특정 플랫폼에 종속된 언어가 아니기에 가능합니다.
먼저, JAVA를 실행할 수 있도록 JAVA 실행기를 설치하셔야 합니다.
이 링크에서 다운받아 설치하십시오. https://java.com/ko/download/ie_manual.jsp?locale=ko
그리고 Emulinker 2.0.2 다운받으셨나요?
이 링크에서 다운받으십시오. https://github.com/kwilson21/Emulinker-X/releases/download/v2.0.2/EmuLinker.X.v2.0.2.server.zip
압축을 풀고, 파일안에 server.bat를 실행하시면 끝 입니다.