호바호바호바

hovamoon.egloos.com

포토로그



유니티 스케일폼 사용기 게임 개발 잡담


때는 작년, 콘솔 버젼을 진행 하던 디펜스 테크니카의 모바일 버젼을 만들기로 결정 되었다.

마침 유니티 엔진을 사용 하고 있던 터라 다른 엔진 들에 비하면 수월한 포팅을 할수 있을꺼라 생각 하였다.

그러나 항상 당면 하게 되는 문제가 있다.

GUI.

모바일의 다양한 해상도 및 다양한 쉐이더 문제 들에 대응 할 방법을 모색이 필요 하였다.

실장 급에서 내린 결정은 유니티 스케일폼이 런칭 하였다. 

이유는 간단 하였다. 다양한 해상도에 대한 빠른 대응 및 UI 쪽의 프로그래밍을 아트쪽에 나눌수 있다 였다.


그리고 그것이 비극의 시작이였다.


우리가 사용 하였던건 거의 처음 버젼, 즉 아무도 사용 해보지 않은 상황. 

해당 테크니컬 서포트 포럼에도 글이 3 페이지 이상 넘지 않았다. 말 그대로 또 다른 삽질의 시작이였다.

데드 스페이스 혹은 수많은 스케일폼을 사용한 게임들을 꿈꾸며 사용을 하려 했겠지만 

현실은 그와 정 반대였다. 일단 회사 내의 스케일 폼 유 경험자가 없었고 그 마저도 (당시) 조악한 유니티 스케일폼의 기능에

프로그래밍 파트는 완전히 좌절에 가까웠다. 다행히 해상도 별로 UI 들은 잘 나왔다. 하지만 버그들이 엄청 나게 많았고

문서는 거의 종이 쪼가리나 다름이 없었다. Unity 용으로 만들어진 Script 들을 기반으로 사용 하여야 하는데

사용 자체에 문제가 있는 경우, 혹은 구현이 모두 안된 경우. 이 모든 것들은 문서에 전혀 언급 되어 있지 않았다.


그리고 마지막 하이 라이트는 안드로이드 에서 Untiy 4 의 Split Application Binary, 구글의 Apk Expansion 를 지원하는

옵션을 사용 하면 새로운 지옥이 펼쳐졌다. 리소스와 게임코드간의 커플링(딱히 분리 하기 쉬운 관리 객체가 없는 상황)이 

심한 상황 이라 별수 없이 Unity 의 기능을 사용 하는 선택 뿐이 남지 않았 건만 

모든 플래시 들은 불러 지지 않고 심지어 로딩 하는 로직을 직접(!!) 수정 하여도 계속해 터져 나오는 Exception....


이 문제는 해당 포럼에서도 많이 언급 되었던 문제 였다. 

무비를 직접 메모리에 올려 놓고 읽을 방법이 없어서 근 3주 넘게 머리를 싸매고 고생 했던 기억이 난다.
(그리고 이 버그는 나중에 예토 전생 하여 최근 나를 다시 한번 철야 지옥으로 밀어 넣었다.....!!)


사실 이렇게 나쁜 내용만 쓰긴 했는데..... 좋은 점도 있다. 아까 말했던 기기별 해상도 대응이 다른 GUI 솔루션들에 비해 

간편하고 작업을 어떻게 하느냐에 따라서는 정말 프로그래머의 부담이 줄어 들수도 있다.
(실제로 작업의 대부분은 유니티 스케일폼의 버그와의 싸움이였다.....)


굳이 써보고 싶다면 말리지 않는다. 게임 용량이 크지 않고 안드로이드는 swf를 apk 에 포함에도 50 M 넘지 않는다면 

스케일폼의 장점을 누릴수 있겠지만 그게 아니라면 조금 더 기다리는게 좋을듯 하다.







덧글

댓글 입력 영역