Monday, December 17, 2012

AndEngine GLES2.0 개발환경설정

예전에 만들었던 앱이 있는데,  게임 엔진을 이용해서 다시 만들면 어떨까 싶어서 AndEngine GLES2.0을 찾아보기 시작했지요. 근데, 이게 튜토리얼이나 그 외의 문서가 아주 빈약하드라구요.



조근조근 보다보니 그럴만도 하다 싶긴 하네요. 현재도 개발이 진행중이고 꽤나 많은 장점을 가지고 있어서 안드로이드 앱을 개발하는 사람들에게 충분히 매력적인 엔진이라는 생각이 들지만,  최초 개발자인 Nicolas Gramlich 이외에 개발에 참여하는 풀이 다른 오픈소스 프로젝트에 비해 작지 않나 싶고, 그때문에 문서화까지도 신경쓰지 못하는 게 아닐까 싶어요.

실제 엔진을 이용코자 세팅하는 과정에서도 보면... AndEngine이나 Example, 그 이외의 Extension을 가져오면 몇 개의 소스코드 에러가 보입니다. 한쪽에서는 변경이 이루어졌는데 그것을 이용하는 다른 쪽에서는 수정하지 않아서 생기는 문제더라구요. 개인적인 바람이라면 좀 더 많은 개발자들이 참여해서 AndEngine을 이용하는 개발자들에게 필요한 부분을 채워줬으면 하네요.

아무튼...

우선 몇 가지만 체크하고 넘어가자면... GLES 2.0은 안드로이드 2.2 이상을 지원합니다. 그리고, ADT 또한 적어도 17이상은 되어야 한다고 합니다. 설치되어있는 API 레벨과 ADT를 확인해 주세요.

그리고, 여러분이 자바 개발을 해오셨거나, 안드로이드 개발을 해오셨던 분이라면 외부 라이브러리를 사용할 때 jar 형태로 프로젝트에 포함시켜서 작업하셨을 거예요. AndEngine도 GLES 1.0은 andengine.jar 파일만 프로젝트의 빌드 패스에 포함시켜주면 됩니다. 하지만,  GLES 2.0은 그렇질 않아요. 라이브러리 프로젝트(library project)로 포함시켜줘야만 합니다.

그래서, AndEngine의 GIT repository로부터 AndEngine이나 확장 기능들에 대한 라이브러리 프로젝트를 받아오기 위해 이클립스 GIT 애드온이 설치되어야 있어야 합니다. ( Eclipse Indigo 버전부터(?)는 EGit이 포함되어 배포되는 것 같으니 확인만 해보시면 될 듯 해요)

(아래에서 보이는 화면 내용은 Eclispe for Mobile Developers에 안드로이드 개발용 플러그인을 별도 설치했고  ADT는 r21 입니다. 글 쓰는 시점에는 최신 버전입니다. 2012년 대선 투표일 며칠 전입니다. 일때문에 분당에서 일산까지 이사를 왔는데 주소 이전을 좀 늦게 하는 바람에 투표는 분당까지 가서 해야하네요. 하지만, 꼭 할 겁니다. 여러분은 하셨나요?)


여기서는 GLES 2.0 관련 라이브러리 프로젝트만을 받아옵니다. 기타 확장 라이브러리까지 모두 받아오고 예제 프로젝트까지도 받아올 거라서 숫자가 좀 많습니다.  하나 하나 내려받아 보겠습니다.

우선 AndEngine의 github url 입니다. https://github.com/nicolasgramlich
링크를 클릭해서 어떤 프로젝트들이 진행 중인지도 살펴보세요.


자 그럼 이제 이클립스에서 위의 github의 필요한 프로젝트를 import 해줘야 겠죠?
file > import > Git > Projects from Git




계속 아래 그림 순서대로 진행하시면 됩니다.

윈도우즈에 설치시 참고사항:

[DEC 29 2012] 윈도우즈에서도 작업을 도우려고 설치하다보니, 임포트하고 리빌드하는 도중 PermGen Space 관련 에러가 발생하면서 그냥 멈춰서버리고 이클립스가 꺼져버리는 경우도 있더군요. Eclipse for Mobile Developer버전에 ADT만 설치하고 진행해봤는데 계속 그랬습니다. JDK 1.7버전이었는데, 이클립스 기본 컴파일러를 1.6으로 변경해주고 진행하니 되네요. 정확한 이유는 모르겠습니다. 

처음엔 1.6 버전이었습니다. ini 파일 수정해서 MaxPermSize 크게 해주고 별짓거리를 다해도 계속 먹통. 1.7로 변경하면 해결되기도 한다는 어느 댓글에 1.7로 올리고 해도 먹통. 그냥 맥에서만 하라는 얘긴가 싶어 싸그리 지워버렸다가 오기가 발동해서 이클립스 컴파일러를 1.6으로 변경하고 했더니 import가 제대로 되네요.

확실한 해결책은 아닌듯 합니다만(한번 더 설치해볼까 싶기도 합니다) 참고해서 설치해보세요.

추가: JDK를 1.6으로 내리고 임포트하는데, 문제없이 되네요. 어이없어 정말..ㅋ





아래 보면 branch를 선택하도록 하는데, master 가 GLES 1.0 이므로, 여러분은 GLES 2.0을 선택하시면 됩니다. GLES2-AnchorCenter는 향후 합쳐질 부분에 대한 것이라고 합니다.







위에 나열된 순서대로 하나씩 하나씩 확장 라이브러리들까지도 받으려고 합니다. 아래에 첨부된 그림의 목록대로 여러분도 하나씩 선택하셔서 받아오도록 하세요.



물론, 여기서 보이는 모든 라이브러리를 받지 않아도 됩니다. 필요한 것만 가져와도 되겠죠. 여기서 이렇게 많은 라이브러리 프로젝트를 가져온 것은  AndEngineExamples 프로젝트를 위해서 입니다. 앞에서도 말씀 드렸다시피 엔진에 대한 관련 문서가 부족하다보니 가장 좋은 방법은 예제를 보면서 하는 건데(다행스럽게도 다양한 예제가 포함되어 있습니다) 이 예제들이 제대로 실행되어야 하겠죠? 

아래 그림처럼 프로젝트 > properties > Android 를 선택해서 보시면 아래에 library 섹션이 있습니다. 프로젝트마다 연관된 라이브러리가 체크되어 있으니 그것도 확인하시고, 나중에 실제 라이브러리를 사용할 경우에도 그 섹션에서 찾아서 등록해주면 되니 기억해두세요.







하나더! 개발용 안드로이드 디바이스가 있으시다면 구글 앱스토어에서 AndEngine으로 검색을 하시면 예제가 포함된 앱이 있을 것입니다. 이걸 실제 디바이스에 설치하신다면 많은 참고가 되기도 하겠죠.


여기서 잠깐!! Errors!!

모두 내려받은 후에 보면 AndEngineExamples 프로젝트의 몇 개의 클래스 파일에 소스코드 에러가 발생할 수도 있습니다.  앞에서도 말씀드렸지만 엔진 개발자들이 너무도 바쁜 관계로.. 그리고 지금도 부분부분 진행되어 가고 있어서인지 제때제때 수정되지는 않는 것 같아요?  에러가 너무 많다면 필요한 라이브러리들을 제대로 내려받은건지 부터 확인하시고, 다행스럽게도 라이브러리는 모두 import 한 상태에서 몇개의 클래스 파일에만 소스코드 에러가 발생한 것이라면 아래처럼 수정해 주세요. (아래의 수정부분은 제대로 갖춰진 상태에서 발생할 수 있는 - 적어도 제가 겪은- 4개의 소스코드 에러에 대한 해결 방법일 뿐입니다.)

HullAlgorithmExample.java



TextBreakExample.java



BoundCameraExample.java



SplitScreenExample.java






자 그럼 이제 라이브러리가 준비된 것 같으니, 실제 만들어가며 이야기를 더 해보겠습니다.
(하지만, 제가 제 일이 어느정도 끝나야 포스팅될 거라는 거..... )







No comments:

Post a Comment