▲ 프로젝트S' 개발에 참여한 드래곤플라이 김익중 기술감독


모바일 게임 시장이 급격히 떠오르면서 필연적인 현상이 발생했다. PC플랫폼 개발자들이 대거 모바일에 참여하기 시작했고, 그와 함께 모바일을 위한 새로운 언어와 소스가 우후죽순 태어난 것. 신규 시장에 새로운 인력이 참여하고 새로운 기술이 피어나는 것은 활기 넘치지만 한편으로 혼란스럽기도 하다.

드래곤플라이 김익중 기술감독은 KGC 2013 마지막 날 'MMO와 SNS 통합 서버전략'에 대한 강연을 진행했다. 본 강연은 NDC 2013의 앵콜 세션이기도 하다. '사무라이쇼다운'을 MMORPG로 재구성한 드래곤플라이의 차기 MMORPG '프로젝트S(가칭)'의 모바일 유저를 위한 서버 구축 경험담을 바탕으로 이야기가 전개되었다.



김익중 디렉터는 온라인 게임을 만들다가 모바일로 넘어오자 발생한 문제를 이야기하며, 랜선을 뽑았을 때 온라인에서 이를 인지하지 못하는 일에 비유했다. 지하철 옮길 때마다 와이파이 끊기고 통신 끊기는 등, 모바일에서는 랜선이 온/오프되는 현상이 계속 일어나고 있다는 것. 당연히 서버에는 부하가 일어나게 된다. "프론트 서버만 믿지 말고 따로 서버를 만들어 운영해야 한다"는 것을 전제 조건으로 삼았다.

전문적인 서버 프로그래밍 과제를 도표와 함께 설명하는 시간이 계속되었다. 최근의 웹 개발자가 반드시 소켓을 잘 알아야 하는 이유, 그리고 '프로젝트S'에서 MMORPG를 모바일에 구현하기 위해 사용한 소스에 대해 이야기했다. 많이 고민하게 되는 해킹 방지에 대해서는, "완벽하게 해킹을 막는 방법은 존재하지 않으며 최소한 DB 안에는 들어가지 못하도록 막는 것이 중요하다"고 답변했다.



실시간 네트워크 문제를 해결하기 위해 Socket.IO용 윈32 C++ 클라리언트 라이브러리인 'Caloris'라는 툴을 자체 개발하는 한편, 이를 공개하기도 했다고. 그밖에 Redis, Socket IO, Node.js 등 다양한 서버용 소스들에 대한 장단점과 활용법을 안내했다.

NDC 2013 발표 당시와 달라진 지금 상황도 공개했다. 파티 플레이 시스템을 위해 파티 서버를 따로 만들었다고 한다. 파티 서버가 이루어진 구조에 대해서도 세세한 설명이 있었다. 상당수 게임들이 채팅과 경매장, 인벤토리를 같은 서버에서 운영하는 경우가 많다. 하지만 이를 과감하게 분리했다고 한다. 다른 게임을 즐기고 있는 사람끼리도 차후에 대화를 나눌 수 있도록 미리 시스템을 준비한 것이다.



한 줄의 코드 추가도 없이 서버가 다른 이용자에게 메시지를 보낼 수 있도록 돕는 redis를 활용한 바 있었는데, 현재에 와서는 그것을 없애고 완전히 새롭게 서버를 구성했다고 한다. "게임 서버와 다른 서버가 통신하기 위해서는 새롭게 만들 필요가 있었다"고 김익중 디렉터는 밝혔다.

"거대한 시스템을 만드는 데 오픈 소스의 도움으로 한 달 만에 끝낼 수 있었다"고 말한 김익중 디렉터는 "어떤 구조를 고를지 빨리 선택할 수만 있다면 예전보다 쉽게 만들 수 있는 시대가 온 것 같다. 이런 조건에서 정수 공장을 만들 것인지, 필터 빨대를 만들 것인지는 여러분에 선택에 달렸다"며 강연을 마무리했다.