요즘 새로운 회사에서 신작 모바일 게임 서버 설계를 시작하고 있는데 이전 2012년에 에브리타운 설계 할때 보다 고민해야 할것들이 많아진것 같다.
게임의 장르가 다른 것도 있지만 가장 두드러진 특징은 이전보다 확실히 이전 PC시절의 온라인 게임서버 같은 클라이언트와 커넥션을 유지하는 방식 (혼히 동기식 이라고 부르는...) 으로 서비스를 만드는 경우가 많아졌다는 것이다.
최신 게임을 몇개를 리뷰를 해봤는데, 4:33의 블레이드 같은 경우가 그런 방식이고 헬로 히어로 같은 경우도 같은 방식이다. MORPG를 지향하는 아크스피어류도 당연히 같은 방식이다.
그리고 동기식과 비동기식(웹서버)을 적절히 혼합해서 사용하는 방식도 보인다.
요새 채팅 기능이 기본적으로 탑재가 되어있는 게임들이 많이 있는데 채팅 기능은 당연히 동기식 방식으로 제작이 되어야 할것이고, 기본 게임 기능은 웹서버 방식으로 처리를 하여 두가지 방식을 적절히 혼합하여 사용하는 것이다.
다들 알다시피 모바일에서 비동기식이 사용되는 이유는...
네트웍이 안정되지 않은 모바일 환경에서 자주 접속이 끊어지는 동기식 방식보다 필요할때만 접속하고 연결을 끊는 HTTP방식이 더 잘 어울렸기 때문이다. 아직도 그 대전제는 유용하지만 기능상의 제약 떄문에 꼭 동기식을 사용해야만 하는 경우도 있으므로 상황마다 TradeOff를 고려하여 적절한 판단을 하면 될 것같다.
동기식 방식의 게임 서버를 제작할때 솔루션을 사용하는 경우도 많아진것 같다.
대표적으로 프라우드넷 같은 업체 솔루션을 많이 사용한다. 포트폴리오가 이제는 넘치고 넘친다.
http://www.nettention.com/showcase
2013년 문서이긴 하지만 나름 체계적으로 이후 버전에 대한 준비도 하고 있는 것 같다.
http://www.slideshare.net/hyunjikbae/2-24270537
더불어 비슷한 상용 게임엔진을 테마로 창업하는 업체들도 많아 진것 같다.
바이트코드랩의 하이브5 가 그 예다. 이 곳은 시작한지가 얼마 안된것으로 보인다.
http://www.bytecodelab.com/
해외에서는 포톤서버가 중소규모 게임을 위주로 많이 사용되는것 같다.
http://www.exitgames.com/
솔루션을 사용하게 되면 장점이 일단 성능에 대한 검증은 이미 끝난 제품들이기 떄문에 개발시간과 튜닝등에 드는 시간이 절약되어 기능구현에만 좀 더 집중할수 있다는 장점이 있다.
물론 라이센스 비용과 기술 노하우 축적이 안된다는 점이 trade off 이다.
직접 개발을 하는 방법도 있다. C/C++ IOCP 서버, java netty, mina 등으로 직접 구현을 한다. 워낙 게임쪽에서는 C/C++로 많이 개발을 해서 java로 이런 동기식 게임 서버를 구축했다는 이야기는 아직 주변에서 들어보진 못한거 같긴하다. (혹시 있으시면 알려주세요)
나도 이제 어떻게 개발을 시작할지 선택을 해야 한다.
무엇보다 내가 고려하는 부분은 팀 구성원이 잘 할수 있는 방법을 선택하는 것이다.
잘 모르는 것을 어설프게 도입했다가 프로젝트를 망치는 경우를 많이 봐왔기 떄문이다.
프로젝트는 혼자 하는게 아니라서 멤버 구성원이 모두 익숙한 방법으로 결정을 하려고 한다.
'모바일/스마트폰 > Mobile Game' 카테고리의 다른 글
Unity3D Crash Report 툴 선택하기 (0) | 2014.11.11 |
---|---|
쿠키런 서버 구조에 대한 자료 (0) | 2014.06.02 |