게임 개발/Cocos2d-x

Cocos2d-x 3.0 beta, 멀티플랫폼 프로젝트 생성 방법 변경됨

날개 2014. 1. 9. 15:42

Cocos2d-x 3.0 베타에서 멀티플랫폼 프로젝트의 생성방식이 바뀌었습니다.


Cocos2d-x 2.1.4 에 있던 create_project.py를 이용한 멀티플랫폼 프로젝트 생성방식이 개인적으로 마음에 들지 않았던 점이 Cocos2d-x 엔진을 여러 프로젝트가 공유한다는 점이었거든요.


그래서, 보통 [cocos2d-x루트디렉터리/projects/내 프로젝트] 형태로 프로젝트가 생성이 되었었고, 여러 프로젝트를 만들어도 하나의 cocos2d-x 엔진을 공유하는 형태였지요. 


문제는 이런방식으로 사용할 때, cocos2d-x는 하나만 있어도 되니 디스크 공간 절약도 되고, 문제있는 부분 하나만 고치면 전체 프로젝트에 적용된다는 장점은 있지만, 새 버전의 cocos2d-x가 나왔을 때 일부는 기존버전을, 일부는 새버전을 사용하기가 애매해 지는 부분과, 해당 프로젝트에 관련되는 부분만 엔진을 손을 대고 싶어도 다른 프로젝트에 영향을 미친다는 단점이 있었지요.


이런 방식이 cocos2d-x 3.0 alpha 1 까지 적용되었었는데, 오늘 새로 프로젝트를 생성해 보니 프로젝트 독립적으로 엔진을 가져가는 방식으로 다시 돌아간 것 같습니다.


우선 프로젝트를 생성해 보았습니다.


이전과 마찬가지로 cocos2d-x 디렉터리 아래의 'tools/project-creator/' 디렉터리에 있는 create_project.py를 실행해 보았습니다. 그냥 터미널에서 해당 디렉터리로 들어가 타이핑 치면 됩니다. (파인더에서 더블클릭했더니 에디터가 열려버리네요... 파인더에서 직접 실행하는 방법 아시는분 계신지...)


예전과 달리 터미널에서 프로젝트명과 패키지명, 언어를 선택하는게 아니라 GUI가 나타나는데요, GUI 상에서 프로젝트를 생성할 디렉터리를 선택할 수 있게 되었습니다. 알파버전은 기본적으로 cocos2d의 project디렉터리 밑에만 생성이 되었었죠.

위에 상태창을 잘 보면, 'begin copy engine'이라고 메시지가 나타나지요? 그리고 새 프로젝트가 'projectPath:'에 지정한 디렉터리에 생성이 되었다고 메시지가 나옵니다.


그럼 결과를 볼까요?


아래 빨간 박스 보면, 내가 지정한 디렉터리에 프로젝트 디렉터리가 생성된 것을 볼 수 있습니다.


그리고 윗쪽 작은 빨간 박스를 보면, 'cocos2d'라고 나와 있지요? 이걸 열어보면,

짜잔! cocos2d-x 엔진이 프로젝트 디렉터리 밑으로 복사되어 들어가 있는 것을 볼 수 있습니다.


즉, 이제는 예전 버전처럼 (또는 cocos2d-iphone처럼) 프로젝트가 하나의 cocos2d-x엔진을 공유하는 방식이 아니라, 프로젝트가 cocos2d-x엔진 사본을 소유하는 형태로 다시 돌아갔습니다.


물론, 또 언제 어떻게 바뀔지 모르는게 cocos2d-x입니다만, 여튼 현재 새로나온 3.0 베타버전은 이렇게 다시 바뀌었다는 점 기억하면 좋겠네요.


그리고, 또한가지... 3.0 알파버전에서 바뀌었던 안드로이드 환경. 즉, Native Activity의 사용으로 메인 자바파일이 없어져버렸던 것....



네, 3.0 베타 버전에서는 NativeActiviy를 상속받는 액티비티 자바파일이 생겨났습니다.


직접 액티비티 바꾼다고 애먹는 수고가 좀 줄어들지 않을까 싶습니다.


사용성이 어떨지에 대해서는 직접 프로젝트 적용을 해봐야겠네요.


덕분에, 기존에 3.0 알파로 작업하던 프로젝트를 또다시 베타로 옮기려니 일일이 수작업 할 생각 하니 스트레스가 몰려옵니다. 언제쯤이나 프로젝트 업그레이드를 편하게 할 수 있는 날이 올런지... 새버전 발표때마다 일일이 손을 봐줘야 하니 보통 일이 아니군요.




끝.