[NDC17]'P:h Diver' 개발로 살펴본 자체 개발 엔진의 장단점

등록일 2017년04월26일 10시40분 트위터로 보내기


"자체엔진을 만드는 것은 여러 가지를 고려해야 합니다. 의욕만 앞선다고 되는 것이 아니죠“

‘프로토콜 : 하이퍼스페이스 다이버(이하 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를 개발한 김 디렉터는 자체 개발 엔진 설계시 고려해야 될 부분으로 ▲데드락 등 동기화 문제가 생기지 않도록 주의하는 것을 기본으로 한 멀티스레드 프로그래밍 지원 ▲기능이 필요 없을 때도 특정 구조를 강제하지 않는 가벼운 엔진 지향 ▲효율적인 모듈 구조 확립을 실현하는 것이 중요하다고 설명했다.

끝으로 기술적인 요구사항을 원하는 수준으로 맞출 수 있고 자신과 팀에게 맞는 개발환경을 선택할 수 있으며 구현 비용이 크지 않은 자체 개발의 장점과 파편화된 기기 최적화 문제, 기능 개발에 필요한 시간적 손실로 인한 개발 병목, 팀 환경에 따라 타직군이 사용할 수 있는 개발 환경을 만들어주기가 어려운 자체 개발의 단점을 차례로 설명한 김 디렉터는 게임 개발에 있어 회사의 업무에 대해 결정하고 책임을 져야 되는 개발자들이 프로의식을 갖고 성실하게 개발하는 것이 중요하다고 설명하며 강연을 마쳤다.
 

관련뉴스 - 관련뉴스가 없습니다.
 

가장 많이 본 뉴스

취재기사 기획/특집 게임정보

화제의동영상