Wiz용 game 제작 샘플

MS WindowsGP2X wiz에서 동시에 개발하는 방법 중 한 가지를 소개한다.

이 글은 OpenGL을 다룰 줄 알고 linux 빌드에 불편함을 없는 사람을 기준으로 작성되었다.

다운 받기 (643KB)

 

1. 디렉토리 설명

.

+---bin                  최종 결과물이 남는 디렉토리

+---external             외부 헤더와 라이브러리 모음

|   `---wiz              OpenGL ES 1.1용 라이브러리

|       `---GLES         OpenGL ES 1.1용 헤더 디렉토리

`---src                  게임 소스 디렉토리

    +---app              게임 디렉토리

    `---avej_lite        게임 플랫폼

        `---adaptation   게임 플랫폼의 포팅 영역

 

2. Win32용 빌드와 실행 방법

 

./manoeri_25th.dsw VC++ 6.0 work space 파일인데, VC++ 6.0, VC++ 2005, VC++ 2008에서 모두 읽을 수 있기 때문에 dsw로 배포를 하는 것이다. 이 파일을 읽은 후 별 다른 설정 없이 빌드를 하면 bin 디렉토리에 실행파일이 생긴다. 실행 후 화살표 키를 사용하여 움직이고 ESC 키로 종료하면 된다. Win32의 경우는 그래픽 카드의 특성을 타는 부분이 있기 때문에 모든 PC에서 정상 동작 한다고는 보장할 수 없다.

 

Win32용으로 실행에 필요한 파일은 다음과 같은데, 같은 디렉토리에 넣고 실행하면 된다.

 

bin/manoeri_25th.exe

bin/libgles_cm.dll

bin/deja_dun.tga


WIN32에서 MingW를 사용하는 사람들을 위한 Makefile.mingw32가 추가되었다. mingw32.exe에 대한 path가 지정되어 있다면 그냥 빌드 가능하고, 그렇지 않다면 컴파일러 path 부분만 수정하면 정상적으로 빌드하고 실행 가능 할 것이다. (Cygwin + MingW에서 테스트 하였음)

 

3. WIZ용 빌드와 실행 방법

 

./Makefile GNU make file이다. 자신이 사용하는 WIZ용 컴파일러의 이름이 arm-linux-g++ 이면서 path가 지정되어 있다면 아무런 설정 없이 ‘make’를 하면 bin 디렉토리에 실행 파일이 생긴다. 만약 위의 조건을 만족하지 못한다면 Makefile 3번 째 줄에 있는 ‘CROSS_COMPILE  = arm-linux-’ 를 자신의 환경에 맞게 수정하면 된다.

 

WIZ용으로 실행에 필요한 파일은 다음과 같은데, 같은 디렉토리에 넣고 실행하면 되는데, 실행 후 화살표 키를 사용하여 움직이고 MENU 키로 종료하면 된다.

 

bin/manoeri_25th.gpe

bin/libopengles_lite.so

bin/deja_dun.tga 


4.
라이선스 설명

 

OpenGL ES와 관련된 헤더와 라이브러리의 출처는 다음과 같다.

 

- external/wiz/libgles_cm.lib, libgles_cm.dll
PowerVR OpenGL ES 1.1 Win32 데모에 있던 것이다.

- external/wiz/libgles_port.a
아직 비공개인 아카이브에서 ES 포팅부만 추출해서 만든 것이다.

- external/wiz/libopengles_lite.so
지폐인
자료실에 공개된 것이다.

- external/wiz/GLES 의 헤더
공개된 quake 소스에서 가져 온 것을 조금 수정한 것이다.

 

나머지는 직접 구현한 것이며(외부 추출 코드의 경우는 코드에 출처를 명기했음) 게임 개발 참고용으로 누구나 사용 가능하다.

 


5.
기타, 개발 시 유의 사항

 

MS Windows에서의 빌드는 아무런 문제가 없을 것이다. 단지 WIZ OpenGL ES 1.1 full spec.아 아니라 업체에서 정의한 OpenGL ES 1.1 lite라는 spec.이다 여기서 제한되는 기능에 대해서는 지폐인에 공개된 문서를 숙지하는 방법 밖에는 없다. 예를 들어 스펜실 버퍼를 사용하여 Win32에서 개발을 하여 결과를 보았더라도 그것이 WIZ에서 빌드를 하여 실행을 하면 제대로 실행되지 않는다.

 

개발시 가장 큰 문제는 WIZ용 빌드에 있다. 현재 WIZapplication을 빌드 할 수 있는 툴체인은 3개 이상이 있다.

 

가장 먼저는 OpenWIZ로 공개된 비공식 컴파일러가 있다. 이것은 http://dl.openhandhelds.org/에서 구할 수 있으며 linux 상에서만 구동된다. 따라서 PC linux를 깔든지, VmWare 등의 방법으로만 개발이 가능하다. 이것으로 WIZ에서 OpenGL ES를 사용한 개발은 충분히 가능하다. 하지만 현재 공개되어 있는 libopengl_lite.so와는 floating point 관련되어 충돌이 나고 있다. 따라서 ‘quake for WIZ’에 포함된 nanoX와 같은 방법인 ‘shared object의 동적 로딩으로만 해결할 수 있을 것 같다.

 

두 번째는 GP2X용으로 공개된 Windows용 크로스 컴파일러가 있다. 이것은 이미 GP2X 시절에 공식 SDK로 릴리즈 된 것이며 SDL을 사용하는 수준의 게임은 GP2XWIZ에서 동시에 돌 수 있는 게임을 만들 수 있다는 것을 확인했다. 여기서의 목적은 WIZ OpenGL ES를 기반으로 개발하는 것이므로 이 컴파일러는 배제하도록 하겠다. (이 역시 libopengl_lite.so과는 빌드 당시의 libc의 버전이 달라서 문제가 발생한다)

 

마지막으로는 GPH가 공식적으로 배포 할(이 글을 쓰는 시점에는 공식 SDK가 공개되지 않았음) SDK에 포함된 크로스 컴파일러이다. 현재는 gcc 4.0.2glibc 버전은 2.3.6이며(EABI로 교체할 것이란 루머도 있기 때문에 공개 시 버전은 달라질 수 있음) 이 툴체인만이 현재로서는 일반 linux에서 하는 개발 방법과 동일하게 OpenGL ES link 할 수 있다.

 

그리고 WIZ에 사용된 pollux OpenGL ES는 표준과 동작이 다른 부분이 조금 보이는데, 그것은 embedded 개발자라면 적절히 피해 가야 하는 장애물이라 생각하면 될 것 같다. 이 글의 목적은 MS Windows에서 쉽게 개발한 후, 최소한의 노력으로 WIZ에 올리자는 것에 있으므로 중간 중간 WIZ에서 결과물이 동일하게 나오는지는 꾸준히 확인해봐야 한다.


Posted by 안영기

2009/07/26 12:33 2009/07/26 12:33
Response
0 Trackbacks , 0 Comments
RSS :
http://smgal.ismine.net/tc_191/blog1/rss/response/15

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

« Previous : 1 : ... 32 : 33 : 34 : 35 : 36 : 37 : 38 : 39 : 40 : ... 50 : Next »

블로그 이미지

게임 개발을 기반으로 한, 잡다한 개발 기록 저장소

- 안영기

Notices

Archives

Authors

  1. 안영기

Recent Comments

Recent Trackbacks

Calendar

«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Site Stats

Total hits:
252043
Today:
30
Yesterday:
165