Java를 위한 3D 엔진, jPCT

Programming/Graphics 2012. 6. 28. 12:29 by 빠재

안드로이드에서 3D게임을 만들어보려고 그에 필요한 엔진을 많이 찾아봤지만 대부분 사람들이 사용하는 것은 Unity입니다. 모 게임업체 대표님께서도 요즘 모바일 환경에서는 유니티가 대세라는 뉘앙스의 이야기를 한 적이 있습니다.


그만큼 유니티가 성능이 좋고 사용성이 나쁘지 않다는 의미겠지만 다만 문제가 되는 것은 라이센스... 상용엔진이니 어쩔 수 없겠지요.


아무리 비상업적 개발/배포에는 무료라고는 하지만 미래를 위해 돈없는 학생인 저는 할 수 없이 안드로이드를 지원하고, 라이센스 비용이 없는 3D엔진을 구글링으로 찾아보았습니다. 


그 중에서도 많이 사용한다고 하는 것을 추려보니 Ogre, Irrlicht, Libgdx, jpct 등이 있었습니다.


이중 Ogre와 Irrlicht는 C++ 라이브러리이고 애초에 안드로이드를 목적으로 나온 엔진이 아니기 때문에 안드로이드 환경에서 빌드하는데 많은 어려움이 있습니다.(저도 며칠 하다가 화나서 때려쳤습니다) 개인이 써드파티 라이브러리로 만든 것이 있기는 하지만 현재 최신버전과는 거리가 좀 있고 엔진팀 자체에서도 안드로이드 버전에 대한 지원이 좀 미약합니다.


그리고 Libgdx는 자바 라이브러리인데 성능 향상을 위해 C++로 최적화가 되어있습니다. 하지만 저같은 초심자가 그냥 사용하기에는 조금 어려운 감이 있습니다.


마지막으로 이번 포스팅에 설명할 jPCT 역시 자바 라이브러리입니다. 하지만 libgdx와는 달리 순수 자바로 구현되었습니다. 


홈페이지 주소는 http://www.jpct.net 입니다.


순수 자바이기때문에 속도가 너무 느리지 않나 싶기도 하지만 jPCT 홈에 가보면 이런 설명이 있습니다.

Libgdx offers a way to do this upload faster than the SDK and jPCT-AE is able to use this. Just add libgdx to your project and jPCT-AE will automagically use it.


jPCT-AE(안드로이드 버전)에 한해서 libgdx 라이브러리를 혼합해서 사용할 수 있다고 합니다. 그것도 개발자가 신경쓸 필요 없이 단지 라이브러리를 넣어주기만 하면 알아서 인식하고 사용한다니 대단하죠. (하지만 기본 최적화가 워낙 잘 돼있어서 눈에 띌만큼의 속도 향상은 기대하기 힘들다고 합니다)

어쨌든 성능면에서도 다른 엔진에 비해 꿀리지 않는 스펙을 갖추고 있습니다.


하지만 국내뿐만 아니라 다른 곳을 찾아봐도 이 엔진에 대해 정보를 얻는 것이 힘들기 때문에 저도 공부좀 해가면서 관련된 포스팅을 올려보려고 합니다.


일반 jPCT보다는 안드로이드용으로 나온 jPCT-AE에 초점을 맞추겠습니다. 그래도 인터페이스는 거의 비슷하더랩니다.

Nav