PC, 모바일, 콘솔 등 대부분 플랫폼에서 인디게임이 출시되고 있고, 나름의 성공을 거두고 있다. 액션, RPG, 플랫포머 등 장르는 다양해졌으며, 전 세계적인 성공을 거둔 인디 게임들도 하나둘 등장하곤 했다. 하지만 대규모 자본과 설비가 요구되는 MMO에서는 인디게임의 영향력이 커지기 어려웠다.

그렇다면 인디게임이라는 타이틀을 달고 MMO를 만드는 것은 불가능한 것일까? 아이펀팩토리의 박근환 TD는 29일 진행된 '2017 아이펀팩토리 Dev Day'의 강연을 통해서 "서버 문제가 해결된다면 언젠가는 가능할지도 모른다"는 단서를 남겼다.

그는 '혼자서 만드는 MMO 서버'라는 주제로 강연을 진행하고 서버를 구축하는 데 필요한 기능들과 이를 지원하는 기술들을 활용하여 기본적인 MMO 서버를 구현하는 방법에 관해 설명했다.

▲ 아이펀팩토리 박근환 TD

강연을 시작한 박근환 TD는 '월드 오브 워크래프트(이하 WOW)'의 이야기로 강연을 시작했다. 박 TD는 오리지널 당시의 개발비는 약 600억 원이었으며, 확장팩마다 300~500억 원가량의 개발비를 투입했다고 설명했다. 하지만 기술이 발달한 지금 시점에 WOW를 개발한다면, 더 적은 수의 사람들이 더 적은 자본으로 게임을 제작할 수 있다고 언급했다. 그리고 기술이 조금 더 나아간다면 '투자자나 퍼블리셔의 눈치를 보지 않고 단 몇 명이서 거대한 MMO를 만들 수 있지 않을까?'까지 생각했다고 말했다.


특히, 명작인 울펜슈타인을 지금 만든다고 생각한다면 여러 가지 추측을 해볼 수 있다고도 강조했다. 이미 유니티나 언리얼의 등장으로 기획자나 디자이너도 프로토타입 정도는 만들 수 있는 수준으로 기술이 발전했고, 여기서 더 노력한다면 출시까지 노려봐도 될 정도로 각종 도구들이 갖춰졌다.

그렇다면 '정말로 MMO를 혼자서 만든다'고 했을 때, 필요한 요소들에는 어떤 것이 있을까. 박 TD는 먼저, 개발과 기획, 클라이언트와 디자인 등은 유니티와 에셋 스토어와 같은 기술들을 사용한다고 가정했다. 그리고 이러한 전제 하에서 'MMO를 위한 서버'를 만드는 방법을 기초부터 예시까지 설명해나가기 시작했다.



■ STEP 1 - "서버 구축하기"

박근환 TD는 MMO 게임 서버의 개발을 크게 나누면, '엔진 개발사의 솔루션'과 '클라우드에서 직접 제공하는 솔루션'으로 구분할 수 있다고 설명했다. 여기서도 북미 쪽의 서비스는 FPS와 AOS에 특화된 경우가 많아, MMO에는 적합하지 않았다. 만약 이를 이용하여 혼자서 개발한다고 한다면, 추가적인 개발 작업이 많아 불편하다는 판단을 내렸다.


MMO 게임 서버 개발이 어려운 이유는 당연히 '사용자가 많다는 부분'에서 출발한다. 위치를 동기화하는 작업만 생각하더라도 10명을 할 때와 100명 이상을 할 때의 작업량과 난이도, 복잡도가 달라진다. 여기에 유저들의 상호작용 등을 추가하면 복잡도는 더욱 심해진다. 어디까지 데이터를 관리하고 동기화할 것인가 하는 문제도 겪는다.

박 TD는 이러한 문제점들이 결국에는 '어떻게 처리해야 하는가'를 결정하는 정책에 가까운 사안으로 넘어가게 된다고 설명했다. 예측이 가능한 문제점들을 어디까지 끌어안을 것인가를 결정해야 하며, 이를 결정하는 과정에서 DBA나 SE 같은 사람들이 필요하다고 설명했다. 하지만 강연의 전제처럼 '혼자서 개발'한다고 한다면? 그래서 박 TD는 전문가의 지원을 최소화할 수 있는 방향을 모색했다.

그리고 이와 같은 사항들을 고려하여 선택한 것이 '아마존 게임리프트(Amazon GameLift)'다.



■ STEP 2 - "아마존 게임리프트"

아마존 게임리프트는 세션과 사용자를 관리할 수 있는 서비스로, 독립된 서버에서도 SDK를 연동해서 사용 가능한 것이 특징이다. 박 TD는 아마존 게임리프트의 장점을 몇 가지 언급했다. 먼저 '서버에 특화된 서비스를 제공하며, 플레이어와 게임 관리 기능을 갖추고 있다는 점'. 그리고 글로벌 매치메이킹을 지원하는 매력적인 서비스, 유연한 서버 스케일링을 갖춘 것을 꼽았다. 이를 통해서 비용은 줄이고 기술적인 허들이 없는 형태를 만들 수 있다는 설명이었다.


그렇다고 게임리프트가 완벽한 서비스는 아니라고도 설명했다. 모든 서비스와 툴들이 가진 필연적인 문제인 '테스트 환경의 추가'가 대표적인 사례다. 실제로 실행이 되고 나서야 로그를 확인할 수 있으므로, 일단 다른 환경에서 게임을 만들어놓고 나중에 테스트하기에는 무리가 따른다.

또한, 시뮬레이션을 제공하지 않아 디버깅이 난해하며, 아마존 리눅스만 지원한다는 개발 환경의 한계를 가지고 있다고 정리했다. 그래서 게임 서버 전체를 아마존 게임리프트에 올리는 것에는 약간의 무리가 있다고 봤다.



■ STEP 3 - "개발 그리고 시연"

박근환 TD가 전한 이야기는 단순히 이론이나 설계에만 그친 것은 아니다. 박 TD는 자신이 설명한 방법론들을 활용하여 간단한 MMO를 구현한 뒤, 강연 도중 시연을 진행했다. 해당 MMO는 유니티 클라이언트로 제작되었으며, 2종류의 필드와 1종류의 던전, 사용자 위치 저장 및 동기화, 채팅과 상호 작용이 가능한 기본적인 기능을 갖춘 형태로 구현됐다.

실제 시연에서는 필드 이동 시의 서버 상태 변화, 플릿과 알리어스의 반응, 인스턴스 던전에서의 서버 반응 등 기초적인 콘텐츠를 이용할 때 서버가 어떻게 구성되었는가를 설명했다. 박 TD는 필드 서버를 설정하는 부분에서도 표준안을 만들어 적용하려 한다는 계획을 밝히기도 했다.


▲ 직접 언급한 방법대로 서버를 구축했다



■ STEP 4 - "대규모 서비스에서는? 그리고 미래는?"

시연에서 보여준 간단한 구조가 대규모 서비스로 진행된다면 어떻게 변하게 될까. 박근환 TD는 한 개의 로그인 서버, DB, 채팅서버, 주키퍼(Zookeeper)와 두 개의 필드 플릿과 던전 플릿을 가진 지금의 서버 구조가 대규모로 변화했을 때엔 더 많은 것들이 추가된다고 설명했다. 크게 변하지는 않지만, 사람이 많아지는 것을 고려한 변화다.

필드와 던전 플릿은 대규모에 걸맞게 증가하고, 세 개의 로그인 서버, DB, 채팅서버, 주키퍼를 갖춘 상태로 덩치가 커질 것이라 예상했다. 트래픽을 분산하기 위한 로드 밸런서가 로그인과 채팅 서버에 설치되며, 파티 찾기 기능을 담당하는 매치메이커까지 추가된다. 구조는 같지만, 몇 개의 추가 서버와 기능이 붙는 형태가 되리라 봤다.


이론부터 시연까지 마친 박 TD는 강연을 통해 '혼자서 MMO를 위한 서버를 구축하는 것'이 불가능한 것이 아님을 보여줬다. 지금 나와 있는 다양한 툴들을 이용하면, 서버 구축은 물론 배포와 관리까지 할 수 있음을 자신의 손으로 보여준 것이다.

또한, 이러한 결과를 종합하여 '운영을 도와줄 수 있는 툴이 나온다면 MMO를 1인이 개발할 수 있지 않을까?'하는 전망을 내놓았다. 마지막으로 그는 "1인 개발 게임인 마인크래프트가 전 세계적으로 큰 결과를 얻었듯이, 기술과 도구가 조금만 더 발전한다면 1인 개발 'WOW'같은 게임들이 언젠간 등장할 것"이라는 기대를 보이며 강연을 마쳤다.

▲ 도구는 준비됐다. 이제 운영만 남았다