"자체엔진을 만드는 것은 여러 가지를 고려해야 합니다. 의욕만 앞선다고 되는 것이 아니죠“
‘프로토콜 : 하이퍼스페이스 다이버(이하 P:h Diver)’를 개발한 넥스트플로어 지하연구소 김영수 디렉터가 NDC 강연장을 찾아 게임 개발을 희망하는 예비 개발자들을 대상으로 게임 엔진에 대한 강연을 진행했다. ‘메이플스토리 어드벤처’ ‘메이플스토리 빌리지’, ‘마비노기 2:아레나’, ‘데스티니 차일드’ 등의 프로그래머로 활동한 그는 어느덧 게임 프로그래머 7년차, 디렉터 2년차에 접어드는 베테랑 개발자.
P:h Diver는 지난 4월 19일 출시된 모바일 리듬게임으로 OpenGL ES2.0 OpenAL을 중심으로 한 자체개발 엔진으로 개발되어 화제가 됐다. 강연에 나선 김 디렉터는 엔진 레벨부터 개발을 하게 된 의사결정 과정을 소개하고 엔진 개발과정에서 느낀 장점과 단점에 대한 솔직한 소감을 공유했다.
P:h Diver는 첫 개발부터 자체개발 엔진을 염두에 두고 개발했을까?
김 디렉터는 처음부터 자체개발 엔진으로 게임을 개발해야겠다고 생각하진 않았다고 설명했다. 개발 초기 유니티 엔진, 넥스트플로어의 자체개발 엔진인 모데라토 엔진, Cocos2d-x을 놓고 고심하던 김 디렉터는 P:h Diver가 지향하는 방향성인 ▲3차원 공간상에 선과 노트가 존재하고 음악의 플레이를 따라 공간을 진행하며 터치를 통해 2차원 스크린상의 노트를 처리하는 게임 ▲터치 환경에서의 터치 등의 조작에 적절하게 반응하고 스마트폰/태블릿을 동시에 지향하는 네이티브 해상도를 지원하는 게임 ▲사운드 레이턴시를 낮추는 리듬 게임에 만족하는 결과를 찾기 힘들었다고 설명했다.
자신이 만족하는 게임을 만들기 위해 엔진 자체 개발을 결정하는 것은 일반적인 게임 개발사에선 쉽지 않은 일이다. 김 디렉터 역시 개발에 불만이 있다고 해서 들어가는 비용과 얻을 수 있는 결과를 생각하지 않고 개발 진행을 독단적으로 결정해선 안된다고 설명했다.
김 디렉터가 자체 개발엔진을 무리 없이 결정하고 추진할 수 있었던 배경에는 게임 개발에 필요한 거의 모든 과정을 디렉터 혼자 해왔다는 점. 넥스트플로어의 지하연구소의 정책이 도움이 됐다고 설명했다.
인력과 시간이 한정적인 상황에서 AOS와 iOS 버전을 효율적으로 개발하기 위해 김 디렉터는 양 플랫폼 모두에서 기본으로 지원하는 프로그래밍 언어인 C++의 C++11버전을 사용했다고 설명했다. 기능적인 발전과 메모리 관리에서 이점을 얻을 수 있는 std::shared_ptr이나 std::funcion 명령을 통해 다른 버전에서는 경험할 수 없는 편의성을 얻을 수 있었기 때문이다.
그래픽 라이브러리로는 OpenGL ES 2.0을, 사운드 라이브러리로는 OpenAL을 사용한 기타 라이브러리로는 C/C++을 이용해 P:h Diver를 개발한 김 디렉터는 자체 개발 엔진 설계시 고려해야 될 부분으로 ▲데드락 등 동기화 문제가 생기지 않도록 주의하는 것을 기본으로 한 멀티스레드 프로그래밍 지원 ▲기능이 필요 없을 때도 특정 구조를 강제하지 않는 가벼운 엔진 지향 ▲효율적인 모듈 구조 확립을 실현하는 것이 중요하다고 설명했다.
끝으로 기술적인 요구사항을 원하는 수준으로 맞출 수 있고 자신과 팀에게 맞는 개발환경을 선택할 수 있으며 구현 비용이 크지 않은 자체 개발의 장점과 파편화된 기기 최적화 문제, 기능 개발에 필요한 시간적 손실로 인한 개발 병목, 팀 환경에 따라 타직군이 사용할 수 있는 개발 환경을 만들어주기가 어려운 자체 개발의 단점을 차례로 설명한 김 디렉터는 게임 개발에 있어 회사의 업무에 대해 결정하고 책임을 져야 되는 개발자들이 프로의식을 갖고 성실하게 개발하는 것이 중요하다고 설명하며 강연을 마쳤다.
| |
| |
| |
| |
|
관련뉴스 | - 관련뉴스가 없습니다. |