예전에 한창 유행했던 게임인 Agar.io를 아시나요? 국내에서는 '세포키우기' 라고 불리며 많은 사람들의 사랑을 받았는데요. 그걸 보고, 저도 한번 세포키우기 서버를 열어볼까 하는 마음에 찾아봤습니다.
역시나, 찾아보니까 agar.io를 똑같이 복제해둔 프로젝트들과 여러 문서들이 나오더군요. 그중에 가장 기본이 되는 프로젝트는 Ogar였습니다. Node.js 로 이루어진 서버 프로그램이었는데, 이 Ogar라는 프로젝트가 가장 쉽고 간단하고 빠르고 원래의 agar.io 서버에 가까운 것 같더군요.
하지만, 우리는 이제 저런 것에 계속 매달릴 필요는 없습니다. 왜냐하면 게임은 그저 재미있고 빠르고 우리에게 편리하면 되기 때문이죠. 기존에 있던 것들을 무조건 고집할 필요는 없다고 생각했기에, 저는 조금 더 찾아보았습니다. 그 결과, 가장 최적의 프로젝트인 MultiOgar-Edited 를 발견하게 되었습니다. 최적화도 전 버전인 MultiOgar보다 훨씬 잘 되어있고, 채팅과 같은 기능들까지 섬세하게 만들어 뒀더라구요.
그래서 이번에는, 이 MultiOgar 라는 프로젝트를 이용해 agar.io 서버를 간단히 구축해 보려고 합니다. 그렇게 어려운 과정은 아니니 잘 따라와주세요. ( Node.js가 컴퓨터에 설치되어 있어야 됩니다. 설치되어있지 않다면 여기에서 설치하세요 )
저장소 복제하기, 모듈 설치
먼저, git에 있는 프로젝트 저장소를 복제해주어야 됩니다. 컴퓨터에 git이 깔려 있다면 "git clone https://github.com/Megabyte918/MultiOgar-Edited.git MultiOgar-Edited-master" 를 cmd에서 입력해주고, 아니라면 해당 사이트 에 들어가서 직접 다운로드하면 됩니다. clone or download 버튼을 클릭한 뒤 download ZIP 버튼을 눌러주면 프로젝트가 담긴 ZIP 파일이 다운로드됩니다. 그 파일은 압축을 풀어 주세요.
그리고 폴더 안에 들어가면, 위와 같은 파일 / 폴더들이 있을 겁니다. 우리는 여기에서, 먼저 프로그램 실행에 필요한 모듈(라이브러리)들을 인터넷에서 설치해주어야 되는데요. 다행히도 직접 모두를 설치할 필요는 없고, 해당 위치에서 cmd를 켜서 npm install만 해 주면 됩니다.
폴더 위치에서 cmd를 열기 위해선, 파일 탐색기의 주소 부분에 cmd를 쳐 주면 됩니다.
그리고, npm install 명령을 쳐 줍니다. 그러면 몇줄 정도 되는 로그가 뜨면서 작업이 완료됩니다. 이제 모듈 설치는 끝났으니, 서버를 돌려 봅시다.
서버 열기
서버를 여는 일은 위 과정보다는 훨씬 쉽습니다. 먼저, 방금 켰던 그 cmd 창에서 "cd src"를 입력해 줍니다.
그러면 경로가 src 폴더 안으로 바뀐 것을 확인할 수 있습니다. 이제 진짜 마지막으로 서버를 열어주는 명령입니다.
드디어 서버를 열었습니다. 성공적으로 서버를 열었다면 저런식으로 MultiOgar의 로고가 보이게 됩니다. (저는 port를 44444 번으로 바꿔서 44444로 뜨는 겁니다. 보통 443일 겁니다)
이렇게 하면 Agar.io의 서버는 모두 다 연 것입니다! src 폴더 안에 있는 gameserver.ini 파일을 건드려서 게임 스타일을 바꾸거나 할 수 있습니다. 마음대로라구요!
서버에 접속하기
하지만 이 서버에 접속은 과연 어떻게 해야 될까요?
서버는 다 만들어 두었는데 게임을 직접 플레이하지 않으면 아무런 소용도 없겠죠? 과연 어떻게 플레이하는 걸까요.
가장 간단한 방법은 agar.io 자체의 기능을 이용해서 서버에 접속하는 것입니다. agar.io 에는 ip 라는 쿼리를 이용하여 자신이 원하는 아이피의 서버에 접속할 수 있습니다. 이 기능은 어떻게 이용하냐 하면..
http://agar.io/?ip=127.0.0.1:포트
자기자신이 혼자 접속할때는 이렇게 해 주면 됩니다. 포트에 관한걸 모르겠다거나 포트를 딱히 설정 안했다 하시는 분들은 그냥 443으로 하면 됩니다. 만약에 친구들이랑 또는 다른 사람들을 들어오게 하고 싶다 하면, 127.0.0.1로 써 놓은 곳을 자신의 IP로 바꿔서 쓰면 됩니다. (다른 접속자들도 그 주소로 들어오도록)
이렇게 하면 모두와 함께 게임을 즐길 수 있고, 따로 접속자 전용 페이지를 뭔가 구축할 필요도 없습니다. 게임 자체에 있는 기능들은 모두 사용할수 있죠.
하지만, 지금 우리가 쓰는 'MultiOgar-Edited' 에서는 일반 Agar.io 서버에서는 지원하지 않는, 더 좋은 기능들을 제공해줍니다. 예를 들자면 서버에서 채팅을 할 수 있게 한다던가 하는거 말입니다. 이런 기능들이 있는데 그냥 agar.io로 접속한다면 이 기능은 아무런 쓸모도 없게 되겠죠? 그렇기에 우리는 전용 클라이언트를 만들어 줄 필요성이 생깁니다.
그런데 공교롭게도 이 MultiOgar-Edited와 짝이 잘 맞는 친구가 있습니다. 바로 Cigar 프로젝트인데요. 이 친구는 Node.js 로 작동하는 녀석은 아니지만, 가장 잘 맞고 기능도 좋은 클라이언트입니다. '채팅' 기능도 완벽하게 맞아떨어진다구요!
더 좋은 접속자 환경 만들기
위에서 말한 'Cigar' 프로젝트 또한 github에 있습니다. 아까 저장소를 복제한 것처럼 똑같이 해 주면 됩니다. 저장소 주소는 https://github.com/CigarProject/Cigar 입니다.
해당 프로젝트는 서버같은 Node.js 프로젝트 / 단순 html 프로젝트가 아닌 php 프로젝트이기 때문에 Apache 같은 서버 프로그램이 필요합니다. 설치하지 않으면 실행이 불가하므로 설치를 하지 않으신 분들은 여기서 설치해주세요.
이런식으로 apache의 htdocs 폴더에 넣어줘서 호스팅해 주면 됩니다.
그리고, 서버를 돌린 후 127.0.0.1에 접속해보세요!
CigarProject라는 타이틀을 단 페이지가 보입니다. 이제, Play 버튼을 눌러서 게임 플레이를 시작해 봅시다.
잘 되는군요. 채팅 기능도 잘 작동하고 모든 것이 잘 작동합니다!
이렇게 Node.js 를 이용하여 agar.io 서버를 열어 보았습니다. 일반적인 Agar.io에 질렸다면 한번 이런 서버를 열고 설정도 마음대로 조작해 보면서 재미있는 플레이를 해 보는 것도 나쁘지 않을 것 같습니다.
그럼, 글은 여기서 끝내도록 하겠습니다. 그럼 이만.
'프로그래밍 > Node.js' 카테고리의 다른 글
Node.js 입력받기 (2) | 2018.01.05 |
---|---|
Electron 배경 투명하게 설정하는법 (0) | 2017.12.14 |