FunGP에 올라온 'GP2X 개발 가이드 ' 문서내용입니다.
이곳에 보시면 개발 지침과 놀랍게도(?) 차기작에 대한 내용이 들어있습니다.
일단 개발 지침의 내용을 정리하면
(INI)
- INI 파일을 보면 N35의 경우 타이틀이라는것이 따로 있는것 봐서 UI가 바뀌는것으로 보입니다
(메모리)
- 메모리는 개발자는 외장쪽만 건드릴수 있고 기본적으로 낸드 접근은 제한됩니다
- 배터리 잔량표시 기능이 의무화되며 배터리 부족을 대비한 처리가 요구됩니다(뒤에 보시면 자동 세이브가 있습니다)
(용량)
- 파일 용량은 리소스까지 포함하여 300MB 이내여야합니다
(볼륨)
- 볼륨은 기본적으로 기본 설정과 연동해야하며 변경할지, 그리고 변경후 해당 프로그램을 끌때 저장할지 물어야합니다
(마스터 작성 지침 - 불필요한 정보 제거)
- 디버그 파일등 실 사용에 쓸데없는 파일이 들어가서는 안됩니다
(마스터 작성 지침 - 주변기기 동작 확인)
- 주변기기가 있어도 문제가 없어야하며 중간에 탈착해도 문제가 없어야합니다
(마스터 작성 지침 - 확장자 통일)
- 확장자는 일반적으로 gpe, 플래시 컨텐츠는 swf여야합니다. gpu는 없어지나보군요
(마스터 작성 지침 - 실행방법 통일)
- 기본적으로 INI파일로 실행하게 해야합니다
(실행화면 구성 지침 - 알림)
- 에러가 났을 경우 에러를 반드시 표시해야합니다.
- 에러 등 중요한 메시지는 가장자리에 띄우지 않도록 합니다
(실행화면 구성 지침 - 언어)
- 기본적으로 장치의 설정된 언어에 맞는 언어로 구동을하고 해당 언어 미지원시 기본 언어를 사용합니다
(실행화면 구성 지침 - 무반응)
- 사용자가 동작이 불가능한 상태로 방치되게 하면 안되며 동작이 불가능한경우 멈춘 화면이 아닌 움직이는 화면을 보여줘야합니다
- 크래딧 화면, 동영상등은 스킵기능이 있어야합니다
(실행화면 구성 지침 - 메뉴 및 선택항목)
- 메뉴의 경우 선택키 누를시 하위메뉴, 취소키 누를시 상위메뉴로 가야하며 선택된 메뉴와 아닌메뉴의 구분이 가능해야합니다
(네트워크)
- 최대 인원이 참가했을때 정상적으로 되야하며 인원 초과시 제한 사항을 보여줘야합니다.
- 무선랜의 특성을 고려해 개발해야합니다 (다른 기기의 영향을 주는 부분 등)
- 다운로드 받는 데이터는 해당 프로그램 영역 내에만 저장해야합니다
- 네트워크 접속시 안내와 승인을 받아야합니다 (3G 데이터통신도 아니고 WiFi인데 이게 왜 필요한지는 모르겠습니다)
- 연결 에러, 통신 에러시 에러 사유와 제한사항을 알려주고 정상작동해야합니다
(세이브/로드 기능)
- 모든 기능은 프로그램 디렉터리 내에서 저장하고 읽어와야합니다.
- 용량 부족시 부족 용량과 필요한 용량 정보를 보여주고 계속 할지 사용자에게 물어야합니다
- 중간에 꺼지더라도 큰 문제 없게 자동 저장이 가능해야합니다
- 자동 저장 여부는 선택하게 하며 주기 또는 상황별로 선택이 가능합니다
- 세이브 데이터는 프로그램 내에서 관리(삭제 등) 할수 있어야합니다
- 세이브 파일의 복사/삭제 및 덮어쓰기가 가능해야합니다
- 세이브 파일은 구별하기 쉬운 확장자를 사용합니다
- 세이브 중 어떠한 동작으로 인해 세이브에 문제가 생길수 있음을 알리고 문제 발생시 실패 사유를 보여줘야합니다
(주변기기)
- 사용중 필요한 주변기기가 있을경우 연결 상태를 확인하고 이를 알려야합니다
- 사용중 주변기기 연결과 관련된 주의사항이 있는경우 사용자에게 해당 사항을 알려야합니다
(DRM)
- 모든 프로그램은 처음에는 리소스를 오픈하여 개발해도 되지만 최종배포시 DRM을 적용하여야하므로 이를 염두하여 개발하여야합니다
- DRM은 기본적으로 제공되는 DGE_DRM만이 사용가능합니다 (DGE_DRM이 뚫리면 전부 다 뚫리겠군요)
- 게임 실행 직후 화면이 표시되기전 DRM에 의해서 실행 가능/불가 여부를 특정 함수를 통에 확인해야합니다
- 실행이 가능할시 실행하고 불가할시 이유를 3초정도 화면에 표기하고 메인 메뉴로 돌아갑니다
- 리소스는 DRM 라이브러리 함수로 접근을 권장
- 프로그램이 ND카드(패키지) 판매의 경우 뒤에 ND가 붙은 함수를 사용, 다운로드식의경우 NED가 붙은 함수를 사용
- 리소스에 DRM을 적용시 매 접근시마다 DRM 확인을 거쳐야함
(영문화)
- 영문판 계획이 있는 경우 개발시 이를 충분히 고려해 하나의 파일로 실행이 가능하게 해야함
- 문자를 이미지로 표시하는것은 리소스 양이 늘어나고 성능상 문제가 있을수 있으니 필요에 따라 사용
- 언어 변경시 문자 데이터의 양이 변동되므로 저장 공간의 크기변경이나 문자 출력공간의 부족에 유의
(INI 작성지침)
- N35와 Wiz의 INI 파일은 차이가 존재, N35는 타이틀 이미지가 필요(위에 말함)
- 규격이 벗어난 아이콘 등은 리사이즈가 되지 않아 짤려 보이거나 여백이 생기게됨
- 배너는 커서를 가져다댈시 아이콘과 텍스트로 보이던것이 배너로 보이게 하는 용도
- 아이콘이 다른 N35와 Wiz는 각각 아이콘을 준비해야함
- 그룹을 통해 게임과 일반 어플을 구별(N35 전용)
- N35의 INI는 Wiz에서 사용이 가능하나 반대는 불가
(G 센서)
- G센서는 N35 전용 기능으로 Wiz에서는 사용이 불가하니 중요한 조작에는 사용금지
(진동)
- 좌/우측에 서로 다른 힘을 가진 모터로 진동을 구현
- 모터마다 각각 세부 진동 조절은 불가능하고 끄기/켜기를 통해 약/중/강/무진동의 표현 가능
- Wiz에는 없는 N35 전용기능으로 특정 상황 표현을 진동으로만 하지말고 화면에도 표시를 권장
일단 이렇게 되면서 그동안 개발자마다 제멋대로였던 UI가 좀 정리될것이고 버튼 조작도 좀 비슷하게 수정될것 같습니다.
따라서 코드네임 N35라는 후속작에는 UI가 바뀌며 G센서와 진동기능이 추가된것을 알고있습니다. 또한 이솝에서 포타님이 후속기에서는 코어텍스A8 급 이상을 채용할까 하고 있다는 부분을 봐서는 DMB를 빼고는 nXGP보다는 우위에 있는것 같습니다. nXGP는 TU와 개발하는 기기가 아닌 별도의 기기니 DMB하고 묶여서 싸질리는 없고 하니 말입니다.(WiFi는 당연히 내장이여야 하겠지만 nXGP도 Wi-Fi는 없으니 없다고해서 밀리지는 않을테니)
p.s : 후속 기기에 대한 정보까지 들은 개발 문서인데 제목을 GP2X 개발 문서라고 한걸 봐서는 차기작에도 결론은 GP2X라는 이름은 들어간다는게 아닐까요? 일단 후속 기기는 Wiz와 호환성이 있는듯 하니 F100/200 -> Wiz로 넘어갈때처럼 어플이 부족하지도 않을테고 지금 Wiz를 가지고 있어도 후속기기의 어플을 쓸수 있으니 결론적으로는 좋은일이군요(F100/200은 더욱 더 버려지겠지만)