▲엔도어즈 '삼국지를품다' 최부호 모바일 팀장

'PC에서 구동되는 3D온라인게임을 모바일로 그대로 옮겨담는다.'

말은 쉽다. 그러나 출장날 캐리어에 옷가지를 쑤셔 넣는 것처럼 힘으로 해결되는 것은 분명 아니다. 엔도어즈 '삼국지를품다' 모바일팀 최부호 팀장은 그래서 이번 강연의 부제를 '코끼리를 냉장고에 넣는 법'이라고 정했는지 모르겠다.

엔도어즈 최부호 팀장은 24일 서울 삼성동 코엑스에서 개최된 '넥슨 개발자 컨퍼런스 13'에서 첫 번째 강연자로 참석해 '삼국지를품다 모바일 플랫폼 개발과 서비스 일지'에 대한 주제로 강연을 진행했다.PC온라인으로 개발된 '삼국지를품다'를 모바일 플랫폼이라는 작은 냉장고에 옮겨 담으면서 겪었던 경험과 노하우를 밝히는 자리였다. 특히 현재 가장 보편화된 모바일게임엔진인 '유니티3D엔진'을 사용하면서 느꼈던 경험담을 솔직하게 밝혀 눈길을 끌었다.

그렇다면 최부호 팀장이 밝히는 PC개발자가 유니티를 이용해 모바일게임을 개발할때 가장 염두할 점을 무엇일까? 최 팀장은 이에 대해 크게 5가지로 정리해 설명했다.

첫 번째는 유니티3D엔진을 사용해 게임을 개발하더라도 모바일 개발 기술이 필요하다는 점이었다. 유니티3D는 기본적으로 많은 모바일 API를 지원한다. 그러나 100%지원을 하지 않는다. 또한, 지원이 되더라도 미세한 컨트롤은 불가능하다. 가령, 진동기능이 필요하다고 하면 유니티 엔진은 단순한 ON/OFF 기능만 지원할 뿐 정교한 컨트롤이 애초에 매뉴얼에 없다는 것이다. 따라서 별도의 플러그인은 제작해야 한다. 유니티엔진을 다루는 것 외에 다른 기술이 필요한 이유가 여기에 있다.

두 번째는 배터리 등 PC와 다른 하드웨어의 특성이다. 최부호 팀장은 특히 배터리 문제에 대해 게임 개발할때 가장 기본적으로 직면한 문제라고 말했다. 배터리가 빨리 소모되는 문제는 크게 3가지다. 첫번째는 장시간 사용되는 디스플레이, 두번째는 3G/LTE 등 데이터 통신 모듈이다. 세 번째는 API연산이다.

여기서 디스플레이는 항상 출력되어야 하기 때문에 포기할 수 없다. 온라인상태를 계속 유지해야 하기 때문에 데이터통신 모듈도 건들 수 없다. 결국 API연산을 줄이는 방법을 택할 수 밖에 없었다. 최부호 팀장은 이 과정에서 게임동작을 15프레임으로 줄여 배터리 시간과 발열을 해결했지만 부드러운 애니메이션과 화려한 이펙트 표현은 불가능했다고 설명했다. 실제로 '삼국지를 품다' 모바일 버전은 PC와 같은 환경에서 조작은 가능하지만 PC환경과 같은 그래픽을 보여주진 않는다.

세 번째는 제어가 쉽지 않은 유니티엔진의 메모리 관리 방식이다. 유니티엔진은 기본 메모리 블럭을 할당받는데 한번 늘어난 메모리는 줄어들지 않고 그대로 남는 형태다. 그래서 그래프로 그리면 계단형 메모리 구조가 된다. 한계치가 계속 늘어나게 되면 게임이 다운될 수밖에 없는 구조.

최부호 팀장은 그래서 메모리 최대치를 초과하지 않도록 메모리 Pool을 사용했다고 말했다. 메모리 Pool에서 적당한 컨테이너를 생성하고 자주 사용되는 리소스를 로드컨테이너에 담아 다음 요청시 재사용하는 방식이다. 전투에서 사용되는 이펙트 역시 Pool에 담아 재사용한다. 최부호 팀장은 메모리 사용이 제한적인 모바일플랫폼에서 이 메모리 Pool을 적극 활용하면 보다 효율적인 개발을 할 수 있을 것이라고 전했다.

▲어떠한 상황에서도 서비스가 중단되는 것은 막아야한다

네 번째는 PC와 다른 심의 절차다. PC게임은 기본적으로 게임물등급위원회에서 심의를 진행한다. 모바일게임은 앱스토어 등 유통사에서 심의를 한다. 최부호 팀장은 특히 "IOS 심의가 까다롭다"며 "서비스를 위해 진행하는 IOS심의에는 항상 반려(Reject)될 수 있음을 염두해 둬야한다"고 말했다.

이러한 심의 환경 때문에 개발자들은 패킷버전을 사용, 반려등의 이유로 서버의 버전이 달라도 구동되도록(구버전 클라이언트에도 작동되도록) 개발해야 서비스가 중단되는 최악의 상황을 막을 수 있다"고 말했다.

최부호 팀장은 이밖에 텍스쳐나 폴리곤을 줄이는 리소스 다이어트나 불안한 모바일 네트워크 환경에 대해서도 언급하며 유니티 엔진을 사용하면서 느꼈던 모바일게임 개발 환경에 대해 다양한 예시로 설명하며 강연을 마무리했다.

삼국지를품다 인벤 바로가기