“그래픽 아티스트가 기술을 이해하면 놀라운 일이 시작됩니다.”
엔도어즈 정종필 부장은 9일 KGC 2012에서 ‘멀티플랫폼 풀 3D MMORPG 만들기‘라는 주제로 발표했다. 이번 강연에서는 엔도어즈가 PC·웹·모바일로 개발 중인 <삼국지를 품다>를 통해 멀티플랫폼으로 3D MMORPG용 그래픽 리소스를 개발하며 겪은 어려움과 해결 방안을 들을 수 있었다. /디스이즈게임 남혁우 기자
엔도어즈 정종필 부장.
■ 모든 것이 줄어든 웹게임 개발
엔도어즈는 자사의 장점인 역사와 턴 방식 온라인게임 그리고 빠른 개발속도를 내세워 PC·웹·모바일로 풀 3D 게임인 <삼국지를 품다>의 개발을 시작했다. 자신만만했지만 쉬운 일은 아니었다.
<삼국지를 품다>의 가장 큰 불안요소는 웹브라우저에서 풀 3D로 구현된 게임이 제대로 돌아가는지와 모바일과 PC 플랫폼에서 리소스를 같이 사용하는 것이 가능한지였다.
결론을 이야기하면 PC 버전 리소스를 모바일 수준으로 맞추면 동시에 사용할 수 있었다. 하지만 이렇게 개발해서는 그래픽 퀄리티를 높일 수 없었기 때문에 모바일과 PC의 리소스는 따로 사용했다.
그래픽 리소스를 개발하기에 앞서 팀원들의 애셋 제작 스타일을 파악해 개선점을 분석하고 우선 가이드라인을 만들었다.
가장 먼저 작성한 가이드라인은 카메라였다. 카메라는 화면을 보여주는 가장 기본이 되는 부분인 만큼 이를 정해줘야 나머지 그래픽 요소도 제작할 수 있었다.
<삼국지를 품다>는 기본적으로 턴 방식 전투가 이뤄지고 모바일의 경우 화면이 작아서 주변 사물을 파악하기 어려웠기 때문에 카메라의 거리를 멀리 띄웠다. 또한 유니티 엔진의 경우 지형을 구현할 때 많은 사양을 요구하기 때문에 카메라를 줌인하면 랙이 심해지는 것도 시점 수정의 이유였다.
카메라 시점 수정(클릭하면 더 크게 보입니다).
렌더링과 조명의 경우에는 게임의 사양에 영향을 크게 미치는 만큼 포워드 렌더링만 사용했고, 조명도 한 방향만 사용하고 스몰 포인트 라이트로 조절했다.
배경 데이터의 경우 워낙 처리해야 하는 일이 많은 만큼 일일이 제한하는 것은 어려울 뿐만 아니라 그래픽 디자이너를 너무 제한하게 된다. 그보다는 그려진 이미지가 사양에 영향을 주는 드로우콜만 정해주는 것이 좋다.
캐릭터는 사양 문제로 인해 PC와 모바일을 완전히 이원화했으며, 폴리곤은 4,000~5,000으로 제한했다. 광원효과 등 고급기술 역시 큰 효과가 나타나지 않아 대부분 사용하지 않았다.
이렇게 가이드라인이 만들어진 이후에는 세부적인 최적화와 그래픽 옵션을 결정했다. 낮은 사양에서도 크게 달라 보이지 않고 고급기술은 최고급 옵션에만 추가하는 것을 목표로 개발했다.
사양에 따른 그래픽의 변화(클릭하면 더 크게 보입니다).
■ 아무것도 없이 시작한 모바일 개발
웹 버전 <삼국지를 품다>는 기본적인 가이드라인이 있었고 PC와 큰 차이가 없었기 때문에 상대적으로 개발이 수월했다.
하지만 모바일 버전 <삼국지를 품다>는 참고할 만한 게임이 없었고, 만들어 본 경험도 없어서 예측이 불가능했다. 웹으로 개발한 버전으로 모바일 테스트라도 해야 했지만 당시 버전은 플레이할 수 없는 상태였다. 게다가 가장 나중에 개발에 들어간 만큼 시간도 부족했고 참고자료도 매뉴얼과 몇몇 강연이 전부였다.
무조건 개발을 시작해야 하는 상황이었기 때문에 웹 버전과 마찬가지로 가이드라인부터 제작에 들어갔다. 카메라 시점은 웹 버전과 거의 동일했지만 각도 조절과 줌인·줌아웃을 아예 막아버렸다. 덕분에 캐릭터들도 하나의 시점에서 보이는 모습만 제작해 리소스를 줄일 수 있었다.
보다 화면을 고급스럽게 연출하기 위한 후처리 시스템도 추가했었지만 싱글코어에서는 심각한 프레임저하 현상이 있어서 삭제할 수밖에 없었다. 조명은 버텍스 라이트 단 하나만 사용했다. 퍼포먼스를 높이기 위해 아예 사용하지 않는 것도 고민했으나 그래픽의 차이가 심해서 결국은 하나의 조명을 사용했다.
정 부장은 “일괄처리(batch)에 대해 주의하라”고 조언했다. 다이내믹 배치는 스케일과 조합하면 화면에 의도치 않게 라이팅 효과가 일어나는 버그가 있었고, 스태틱 배치는 버텍스의 용량을 증가시켜버리기 때문이다. <삼국지를 품다>에서도 일괄처리는 모두 사용하지 않았다.
배경은 터레인과 후처리를 사용할 수 없고 드로우콜도 30 이하만 사용해야 했다. 게다가 PC 버전과 연동하기 위해서는 배경에 있는 건물의 위치가 동일해야 하기 때문에 맵을 자를 수도 없었다. 퀄리티를 높이고 사양을 맞추기 위해서는 근본적인 혁신이 필요했다.
이미 만들어진 웹 버전에서 그림자만 남긴 이미지를 모바일용 맵으로 사용했다.
그래서 정 부장은 웹 버전으로 만들어진 배경에서 그림자를 제외한 모든 오브젝트를 지운 후 스크린샷을 찍었다. 이후 그 스크린샷을 그대로 배경으로 삼고 스크린샷에 남아 있는 그림자에 건물을 올리는 방식으로 심한 제약 속에서도 원하는 수준의 배경을 얻어낼 수 있었다.
이 방식을 이해한 그래픽 팀은 맵에 후처리까지 추가하면서 웹 버전과 비슷한 수준으로 맵을 제작할 수 있었다.
아티스트가 방식을 이해한 다음에는 후처리까지 추가한 스크린샷으로 맵을 만들기 시작했다.
모든 것을 줄이면서도 욕심을 낸 부분은 인터페이스(UI)였다. UI를 위해 사양의 제약으로 사용하지 않던 32비트 RGBA를 사용했을 정도였다. 단, 메인 화면 UI 텍스처는 한 장에 모두 구현하는 것이 조건이었다.
하지만 폰트를 보면 외국어, 특히 중국어는 수만 자가 있다 보니 한 장으로는 도저히 무리였다. 그렇다고 여러 장을 쓰자니 용량이 많아져서 드로우 콜 수가 급격하게 늘어났다.
최종적으로는 1장의 RGB, 레드, 그린, 블루 네 개의 채널을 분리해 사용함으로써 1장으로 4장의 효과를 볼 수 있었다.
정 부장은 “시간이 부족한 것이 아쉬웠지만 모바일에서도 괜찮은 퀄리티를 낼 수 있다는 것을 알았다. 그래픽에서 볼 수 있는 정보는 매우 제한적이다. 퍼포먼스에 결정적이지 않은 경우가 많다. 그러므로 처음부터 최대한 낭비가 없도록 제한하는 것이 좋다”고 말했다.
이어서 그는 “이미지도 그렇지만 큰 것을 줄이는 것은 쉽다. 하지만 작은 것을 늘이는 것은 어렵거나 불가능하다. 그러므로 초기에 조금 기능도 많이 추가하고 조금 무겁게 만드는 것이 좋다. 또한 간단하다고 그래픽을 먼저 최적화하는 경우가 많은데 그보다 우선 로직 등 프로그램을 최적화해야 한다. 그래야 추가로 발생할 수 있는 문제를 줄 일수 있다”고 말하며 강연을 마쳤다.