cglandlogo First Page
고객센터   
gallery media job community contentsmall  
  dbrush Blizzardfest 2014
 
[인터뷰/칼럼]오픈플레이 이스케이프 히트 개발자 이상희   2014-07-25
1인 기업 오픈플레이 이상희씨의 "이스케이프 히트" 개발 노트
김태우기자 acecome@cgland.com
ⓒ 디지털브러시 & cgland.com, 무단 전재 및 재배포 금지
게시글을 twitter로 보내기 게시글을 facebook으로 보내기 게시글을 Me2Day로 보내기


열정과 노력만 있다면 못 배울게 없는 지금의 시대 신은 하나의 능력을 주셨지만 얼마든지

다른 능력을 쌓을 수 있다. 하지만 스스로 일어설 용기를 당신은 가지고 있는가



Q. 안녕하세요.


A. 반갑습니다.  1인 기업 오픈플레이를 이끌고 있는 이상희 입니다.

 


Q. 1인 기업이라고 소개해 하셨는데 이스케이프 히트의 경우 1인 개발 하셨는지 아니

프로젝트 팀을 꾸렸는지, 투입 인력과 제작 기간이 궁금합니다.


A. 투입된 인력은 없이 혼자서 개발하게 되었고, 제작기간은 6개월 (1~6) 소요 되었습니다.


<오픈플레이의 베이스캠프>


Q. 대단 하십니다.  이스케이프 히트는  어떤 게임 엔진과 컨텐츠 제작 도구를 주로 사용

하여 제작 하셨는지요. 그리고 그 도구들간의 작업 파이프라인 부탁드립니다.



A.  게임 엔진은 Unity3D , 컨텐츠 제작 도구는 많은 분들이 알고 계시는 3Ds Max를 활용하여

제작하였습니다. 배경의 경우 개별 프롭 Prop3DsMAX에서 만든 다음 유니티에서 최종 조립하여 완성하였습니다. 성능에 제약이 없는 (사양에 따라 다르겠지만) PC 보다 매우 한정적인 휴대기기에서 효율적인 성능을 위해서는 동일 오브젝트의 반복사용이 매우 큰 효과를 만들어 냅니다. 한 화면에 표시하는 텍스쳐의 수량도 적으면 적을 수록 좋구요. 때문에 하나의 스테이지에서 사용하는 배경 오브젝트들의 텍스쳐는 또한 하나로 만들었습니다. 정리가 필요하면서도 비효율적인 작업입니다만, 게임플레이의 최적성능을 위해서는 불가피하다고 봅니다.



<3Ds Max 에서 유니티 prop으로 사용될 개별 오브젝트를 제작>


<유니티에서 prop화 시켜 조립 한다.>


본 렌더링은 Forward 방식으로 빛의 발생 및 그림자를 실시간으로 표현하지만, 일부 그림자가 필요없는 부분은 그림자생성을 막고 인위적으로 만든 그림자 텍스쳐를 만들어 성능하락 및 Draw Call의 급격한 증가를 막았습니다. 때때로 그럴듯한 연출을 위해서는 번거롭더라도 실시간 / 비실시간 그림자를 동시에 사용해야 하는 방법을 적용해야 합니다.


<오브젝트 뒤의 그림자는 실제로 텍스쳐! 게임은 눈속임이 중요!!!>


Q. 유니티의 큰 장점이라면 좋은 플러그인들을 생각나게 하는데요. 혹 이스케이프 히트에 사용된 플러그인들 중에 추천하시는게 있나요.


A. 주 사용 플러그인은 비쥬얼 스크립트 플러그인인 '플레이메이커' 'PlayMaker' 2D 이미지 관리 툴인 '2D Tool Kit'을 사용하였습니다. 그리고 결재 및 기타요소를 위한 플러그인은 '안드로이드 네이티브 플러그인' 'Android Native Plug-in'을 사용했습니다.



<PlayMaker : 노드구조 또는 FSM 기반의 비쥬얼 스크립트>


플레이메이커는 유니티를 처음 접하시는 분들과 프로그래머 외 작업자분들, 예를 들어, 그래픽 작업자들에게 프로그래밍의 원리를 알 수 있는 아주 좋은 플러그인입니다. 많은 타사 플러그인 지원도 이루어지고 있고 (2D Tool Kit은 물론 NGUI까지) 예전에 비해 관심이나 사용율 또한 높아지고 있죠. 스크립트와의 연동도 괜찮아서 많이 보급되면 프로그래머의 수고가 덜 만큼, 아주 유용한 플러그인 이라고 봅니다. 그러나 유니티와 스크립팅에 대한 기초가 없으면 이해하고 활용하는데 힘들어지는 만큼, 기초적인 유니티의 사용법과 스크립팅에 대한 개념은 알고 계셔야 합니다.



<2DToolKit : NGUI가 부럽지 않다 !>


2D Tool Kit은 유니티 게임제작에 있어 필수적인 요소가 되었고, NGUI에 버금가는 UI 기능도 아주 훌륭합니다. 폰트의 기능도 아주 유용하고, 데이터의 용량만 지켜준다면 다국어도 가능하도록 되어있죠.  특히 많은 오브젝트를 씬에서 사용해도 성능에 문제가 없습니다. 물론 활용법을 잘 익히면 말이죠. :-)


Q. 기획을 실제로 엔진속에서 구현할 때 애로 사항 같은 점은 없으셨나요.



<최적화 작업만 잘 하면 구형 및 싱글프로세서 디바이스에서도 수십만 폴리곤이 담긴 씬을 구동 할수 있다.>


딱히 큰 불편은 없었습니다. 노력에 따라 다르겠지만 제가 원하는 연출이나 표현은 가능하더군요. (특히 거대한 스케일의 배경이 구형 스마트폰에서 구현이 가능했을 때 희열을 느꼈습니다!)다만 정말로 개선을 바라는 것은 Prefab을 불러오고 (Instantiate), 제거하는 (Destroy) 명령어 사용에 있어 성능향상이 있었으면 하네요.



<오브젝트 풀링은 하드웨어 성능을 향상시키지만 배경 및 플레이 관련 세팅의 수정이 번거롭다.>


 부분을 대체하고 아주 유용하게 썼던 기능이 Activate 명령입니다. 게임 내에서 끄고 키는 부분이 한 두개가 아니었기 때문에 유니티 버전 4.x에서 새로이 도입된 이 기능이 아주 좋았지요. 그러나 오브젝트 풀링이라 오브젝트들을 미리 배치해야 하기 때문에, 씬 수정이 조금 번거로운 문제가 있습니다. 이점은 게임 디자인의 정리를 어떻게 하느냐에 따라 달렸겠죠. 성능문제에 직면한 개발자 분들은 참고 하시기 바랍니다.


(Instantiate Destroy 두 명령어의 단점은 Prefab 오브젝트를 불러올 시 GPU보다 CPU 사용이 우선 이루어지기 때문에 게임진행 중 끊기는 현상, Frame Drop이 발생합니다. 때문에 전문개발자 분들은 이들 두 명령어 사용을 거의 하지 않더군요. 굳이 사용해야 한다면 불러올 Prefab 오브젝트에 연결된 스크립트 양을 되도록이면 줄여주는 것이 좋습니다.)


Q. 현재 이스케이프 히트는 안드로이드 플렛폼으로 배포하셨는데 안드로이드를 선택하신 이유가 궁금합니다.


전세계 스마트폰 OS의 비율이 iOS 보다 안드로이드 기기의 점유율이 급상승 한 것이 주된 요인이긴 하지만 핑계라고 하면 자금적인 사정과 (유니티프로 + 안드로이드프로) 테스트 빌드부터 퍼블리싱까지 무척 간단하다는 것 입니다. 게다가 화면비율과 성능이 다양한 안드로이드 기기들에 대한 최적화 작업이 매력적(?)이라 안드로이드 플랫폼을 결정하게 되었습니다. 그러나 곧 iOS에도 선보이도록 검토 중에 있습니다. 점유율은 변동될 수 있으니까요. 더군다나 앱 판매의 수익성은 아직까지 iOS가 강세입니다.


Q. 1인 개발로 장기간 한 프로젝트를 수행한다는 것이 쉽지만은 않을 텐데 기획부터 퍼블리싱까지 많은 고려를 해야 했던 부분은 무엇이었나요.


<이스케이프 히트 이전 보류되었던 프로젝트의 노트 중 일부>


* 기획 및 초기개발 검증의 불확실성.


하나부터 열까지 모두 소화해야 하는 1인 개발의 어려운 점들이 한 두 가지가 아닙니다만, 정말로 어려운 것은 '기획' '검증'이루어지는 초기 개발단계가 아닐까 생각해 봅니다. 혼자 만드는 만큼 누구에게 방해 받지 않고 자유롭게 만들 수 있다고 생각하지만, 대단히 큰 실수를 야기할 수 있거든요. 자신에게는 재미있다고 생각하지만, 다른 사람에게는 재미없을 수도 있으니까요.


첫 게임에서 그런 실수를 한만큼, 두 번째 게임을 본격적으로 진행하기 전에는 여러 프로토타입을 만들어서 가족 및 지인들에게 모두 플레이를 시켜봤습니다. 한 달에 하나의 프로토타입을 만들고 반응이 시큰둥 하면 곧바로 폐기하거나 중단하고 새로운 프로토타입을 만들었습니다. 결국 4번의 시도 끝에 반응이 괜찮은 프로토타입 게임을 선택하여 완성한 것이 이스케이프 히트 입니다.


* 정보획득에 대한 어려움.

기업의 운영에 있어서 가장 중요한 것이 바로 '자금'입니다. 하지만 대부분의 스타트업 기업이 운영자금을 투자 받기란 매우 힘들죠. 투자공모에 대한 정보취득 또한 어디서 얻어야 될지도 감 잡기가 쉽지 않습니다. 관련단체들도 한 두 개도 아니고 지원금이 아닌 저리대출이 대부분이었죠. 혼자서 게임을 만드는 것은 매력적이지만, 반대로 제작 외 활동에 아주 취약할 수 밖에 없습니다. 그만큼 제작에 모든 시간을 투자하느라 정작 중요하고 유용한 정보를 놓칠 수 밖에 없더군요. 지원사업공모를 보더라도 기간이 한참 지나거나 준비하기엔 너무 시간이 부족하기도 했구요. 개인의 노력이 많이 필요한 부분입니다. 그래서 정보력이나 인맥이 넓은 분은 정말 존경스럽지요. :-) 여러 단체들이 많겠지만, 특히 소규모나 1인 게임 개발 기업을 위한 장소가 따로 개설되었으면 하는 바램입니다. 너무 허황된 바램이 아닐까 생각이 들긴 합니다만, 소규모, 1인 기업들과 정보공유 및 협업이 이루어졌으면 하구요. 이른바 조합개념으로 말이죠. 어려울 수록 뭉쳐야 한다고 봅니다.


* 마케팅.

게임 판매 및 서비스에 대한 개선 및 지속성을 판단하려면 유저들의 의견이 반드시 필요하죠. 하지만 공들여 만든 게임이 알려지지 않고 다운로드 수가 늘지 않는다면 무용지물이 될 수 밖에 없습니다. 나날이 게임 제작 스튜디오가 많아지고 하루마다 선보이는 게임들도 셀 수 없을 만큼 많아지고 있죠. 대형게임 제작사와는 달리 소규모 및 1인 기업 제작사들이 가장 고민하는 것이 광고 및 마케팅일겁니다. 하지만 여건상 마케팅 활동 분야가 좁을 수밖에 없고(예를 들어 커뮤니티 사이트나, 인터넷 카페), 그만큼 노출 되는 예비 사용자 수 또한 한정적일 수 밖에 없습니다.





Q. 개발이외에도 여러 환경 요소들을 생각하게 되는 답변이십니다.

끝으로 현재 1인 개발을 하시는 현역(?)으로써 1인 개발을 계획하는 분들에게 해주고 싶은 말 혹은 조언 부탁드립니다.


현실적으로, 그리고 솔직하게 말씀 드리자면, 절반은 추천하고 절반은 말리고 싶습니다.


북치고 장구치는 그 이상.


어느 직종이나 분야를 떠나 평생직장은 없으며, 차후에 직장인이 아닌, 사업가의 길을 누구라도 한번 이상은 고민하고 생각할 것입니다. 유니티의 가장 큰 장점은 저렴하고(기타 게임엔진에 비해서, 특히 1억 매출 이하 회사는 무료!), 혼자서도 게임을 만들 수 있는 쉽고 훌륭한 엔진이지만, 게임기획, 프로그래밍, 아트웍, 사운드 및 음악, 그리고 홍보물 제작 및 배포까지 혼자서 해야 하는 만큼, 다른 분야의 업무에 대해서도 어느 정도 지식을 가져야 합니다. 게다가 게임을 배포할 경우 사업자등록과 통신판매업신고를 한 만큼, 1,2분기마다 해야 하는 세금관련 업무도 피할 수 없죠. 세무사에 맡길 수 있습니다만, 스타트업 및 운영초기에는 매출과 매입의 발생수가 적기  때문에 직접 해보시는 것이 도움이 됩니다. 사업가는 숫자에 대해서 두려워하시면 안돼요. :-)


요지하는 점은 게임제작업무만 하는 것이 아니라 제작 외 업무도 필수라는 점입니다. 그만큼 공부도 많이 하고 박학다식 해야 하죠. 자신이 주 경력분야 외 다른 분야업무에 관대할 수 없다면 1인 기업의 시작은 그만큼 지옥의 문이 열린거나 다름없다고 봅니다. 취미가 아닌 이상, '내 자신이 만들고 싶은 게임을 만들어 돈을 벌겠다!'라고만 생각하신 분들은 심사숙고 하시기 바랍니다.


단점만 있다면 재미가 없죠. 물론 장점도 있습니다.



다른 분야의 작업자들에 대한 이해증가. 그리고 커뮤니케이션 향상



보통 대부분의 게임은 (혹은 다른 결과물일지라도) 혼자가 아닌 여러 명이 모여서 같이 만들게 되는데, 제작도중 협업이 힘든 점이 한 두 개가 아니죠. :-) 가장 큰 원인이 커뮤니케이션이 원활하지 못하다는 건데, 이는 자기분야가 아닌 다른 분야를 이해하지 못하기 때문입니다. 가령 A에 대한 것을 상대방에게 알리고 싶은데, 그 상대방은 정확하게 이해를 하지 못하고 B로 이해하기 때문에 의도적이지 않은 결과물이 나올 때가 많죠.


게임을 직접 만들어 볼 때면, 특정 상황을 만들어내기 위해 알고리즘을 어떻게 구현할지 고민을 많이 하게 됩니다. 구현에 성공하면 다른 상황이나 새로운 게임을 만들 때 어떻게 해야 할지 감이 잡히죠. 그렇게 경험이 쌓이게 되면 상대방에게 자신의 의도를 정확하게 전달하는 스킬 또한 오르게 됩니다. 커뮤니케이션이 원활하면 문제 발생시 원활한 대처 또한 가능해지죠. 반대로 프로그래밍분야 경력자가 직접 아트워크를 만들었을 때 해당분야 작업가의 노력이 어느 정도인지 가늠할 수 있다고 봅니다.


게임제작의 매력 중 하나는 '규칙' '논리'지정이죠. 규칙과 논리가 없는 게임은 아예 없거든요. 혼자서 게임을 만들다 보면 논리력이 필요하고, 그만큼 향상이 됩니다. 논리력이 향상되니 전달력 또한 좋아지죠. :-) 이런 점으로 볼 때 혼자서 게임을 만든다는 것은 강력히 추천할 만 합니다.


 


부정적인 평가는 오히려 더 중요한 요소.


게임을 만드는데 있어 중요한 점은 자신이 아닌 타인의 평가입니다. 자신의 게임에 대한 타인의 평가를 절대 무시하지 마세요. 긍정적인 평가보다 부정적인 평가가 게임의 개선 및 차기 게임 계획 수립에 있어 대단히 중요한 요소입니다. 나쁜 평을 들으면 당연히 기분이 상합니다. 그러나 그것을 기회로 삼아야 다음에 더 좋은 게임을 만들 수 있는 기회를 만들 수 있어야 합니다. 칭찬 자체를 의심하세요!


끝으로, 만들기로 결정했다면, 포기하지 말고 어떻게든 완성하고 배포하세요. 그래야 실력이 향상됩니다. 도전을 마다하지 않는 1인 개발자 분들 힘내세요!




 
스튜디오 연결끊기