얼마 전 '인디 게임 아이디어 공모전'이라는 행사가 있었는데, 저희 팀이 심사를 통과해서 SDK 및 기술 지원을 받게 되었거든요. 그 일환으로 공모전 시상식도 같이 했습니다.
그 다음 시상식이 있었습니다. 이어서 바로 GP2X 위즈 개발자를 위한 설명회가 있었는데요. 이번 행사에서 가장 유익했고 또한 가장 감탄스러웠던 부분이었습니다.
GP2X 위즈 GDK. SDK가 아닌 GDK인 이유는 게임에 특화된 SDK이기 때문입니다. 즉, 소프트웨어 개발 키트(software development kit, SDK)가 아니라 게임 개발 키트(game development kit, GDK)이지요. 일반적인 프로그램을 제작하게 해주는 SDK도 나중에 출시된다고 합니다.
목차입니다. 뭔가 목차부터 심상치 않습니다. 생각보다 기술적인 내용이 매우 많아서 깜짝 놀랐습니다. 별 의미 없는 내용으로 채울 줄 알았는데, 아니더군요.
GP2X 위즈 사양표입니다. 3.5인치 TFT LCD라고 잘못 나온 부분만 빼고는 널리 알려진 내용이라서 특별할 것은 없습니다.
기기 외관입니다. 역시 특별한 것은 없습니다.
GP2X 위즈가 어떤 기술에 기반하고 있는지 보여주는 자료입니다. 이것 역시 개발자에게는 널리 알려진 정보이지요.
슬슬 중요한 내용이 나오기 시작합니다. 바로 메모리 사용인데요.
아시다시피 위즈의 메모리는 64MB지요. 그 중 4MB는 운영체제가 항상 먹는 부분입니다. 컴퓨터를 사용하다 보면 아무 일도 하지 않는데 메모리를 얼마간 사용하고 있지요? 그게 4MB라는 것이지요.
그 다음이 중요한데, 일반적인 상황에서 프로그램이 사용할 수 있는 메모리는 64MB에서 4MB를 뺀 60MB입니다. 하지만 개발자가 3D 기능을 켰을 때, 즉 OpenGL ES을 사용할 때는 16MB가 비디오 메모리로 따로 사용되어, 남은 공간인 44MB를 사용할 수 있다는 것이지요. (프리젠테이션의 40MB는 오타)
아래 부분에는 소프트웨어 개발 시 정책이 나와 있습니다. 기본적으로 SD 카드의 접근만을 허용하고, 내장 플래시 메모리(NAND)에는 접근할 수 없습니다. 또한 절대 경로 대신 상대 경로만 사용해야 합니다.
이것 역시 중요한 부분이지요. 티어링 현상에 대해 익히 알고 계실 것입니다. 세로 OLED를 가로로 돌려서 쓰다 보니 발생하는 것으로, 소프트웨어적으로 좌표를 변환하다 보니 생긴 문제이지요. 게임파크 홀딩스는 이를 해결하기 위한 방법으로 두 가지를 제시하고 있습니다.
1. 게임파크 홀딩스가 제공하는 라이브러리, 즉 공식 SDK를 사용하여 개발하면 됩니다. 이 라이브러리에는 티어링 문제를 해결하기 위한 조치가 취해져 있습니다.
2. 직접 하드웨어에 접근하여 사용하고 싶을 경우, 앞서 말씀드린 '좌표 변환'을 끄고 개발자가 직접 좌표를 계산하여 출력하는 방법이 있습니다.
저는 2번이 마음에 들더군요.
게임파크 홀딩스는 2차원 개발(SDL)보다 3차원 개발(OpenGL ES)을 권장한다는 내용입니다. 왜냐하면, 2차원 게임을 만들 때에도 3차원 그래픽 카드는 여전히 유용하기 때문입니다. 화면의 확대, 축소 등이 빠르고, 특히 티어링 문제를 해결하기 위한 '화면 돌림'을 사용할 때 유용하기 때문입니다.
개발 환경을 구성하는 방법입니다. 윈도용으로는 시그윈과 비주얼 스튜디오를 권장하고 있고, 리눅스에서도 개발할 수 있습니다.
여기에 나온 것 외에 저는 윈도에서 devkitGP2X와 MSYS 기반의 크로스 컴파일러도 시도해보았는데, 역시 잘 되었습니다. 웬만한 ARM 리눅스 컴파일러는 다 잘 되는 것 같습니다.
시그윈 설치 방법입니다. 시그윈을 사용해보신 분이라면 친숙한 화면이지요.
GDK 설치 방법입니다. 아직 다운로드 링크는 제공되지 않습니다. 시그윈을 기준으로 나와 있습니다.
시그윈을 사용한 빌드 방법입니다.
비주얼 스튜디오를 사용한 빌드 방법입니다.
GP2X 위즈 개발 시 제공되는 'GDK'는 도그마 G에서 만든 'DGE'라고 하는데요. 아마 Dogma-G Environment의 약자 정도가 아닌가 싶습니다. 아무튼, DGE의 기본적인 사항입니다.
역시 개요를 담고 있습니다. 이런 부분은 개발 문서에 자세히 나오겠지요.
마찬가지 내용입니다. 다만 한 가지 중요한 사항이 보이는군요.
GP2X 위즈는 동시에 4가지 소리를 조합할 수 있습니다. 격투 게임을 예로 들면, 배경 음악이 하나 있고 두 캐릭터의 기술 외치는 소리가 두 개 있지요. 경우에 따라서 지형지물이 부숴지는 효과음도 추가될 수 있겠지요. 이걸 4개까지 할 수 있다는 뜻입니다.
이게 어떻게 나온 제한인가 하면, MP3나 OGG를 재생하는 것은 부하가 큰 작업이므로 하나밖에 못 하고, Wav는 비교적 가벼우므로 3개까지 되는 것이지요. 따라서 배경 음악은 MP3나 OGG로, 효과음은 Wav로 주라는 이야기입니다.
이것으로 설명회가 끝났습니다.
그 이후에 질문 답변 시간이 있었습니다.
Q) 리눅스 커널 소스 코드를 받고 싶다.
A) 제가 라이선스에 대해 잘 모르긴 하지만, 리눅스 커널을 고치면 그 고친 부분에 대해서도 소스 공개를 해야 하는 것으로 안다. 곧 공개하겠다.
Q) GP2X 구 버전에는 USB 네트워킹이라는 것이 있어서 컴퓨터와 위즈를 네트워크로 연결할 수 있었다고 들었다. 얼마 전에 GPH측에 전화해보니 네트워크 크래들이 발매될 예정이므로 지원 계획이 없다는 답변을 들었는데, USB 네트워킹은 소프트웨어 개발에 큰 도움이 된다. 앞으로 지원할 계획이 있는가.
A) 고려해보겠다.
Q) 티어링을 유발하는 '좌표 자동 변환'을 끄고, 개발자가 직접 좌표를 제어할 수 있는 방법이 있는가.
A) 있다. (주: 나중에 방법을 받았습니다.)
Q) 위즈에 일일이 연결하는 것은 불편하므로 컴퓨터에서 돌려보고 싶다. 에뮬레이터가 있는가.
A) SDL 같은 범용 라이브러리를 사용하므로 위즈용으로 컴파일하지 않고 컴퓨터용으로 컴파일하여 테스트해볼 수 있다.
저는 이 프리젠테이션을 보고 아주 감탄했습니다. 오길 잘 했다는 생각이 들었어요. 기술적인 사항을 이렇게까지 상세하게 공개하다니 놀랍습니다. SDK 사용법만 던져놓고 나 몰라라 하는 것이 아니라, 어떤 기능이 있고 한계는 어디까지인지 자세히 알려주는 것이 좋았습니다.
이어서 한국 게임 개발자 협회 제3기 발대식과 회장 취임식이 있었습니다. 그리고 마지막으로 식사 시간이 있었습니다.
아주 맛있었습니다. 저것이 주 요리이고, 따로 뷔페가 제공되었습니다.
좋은 기회 마련해주신 게임파크 홀딩스와 우리 팀장님께 감사드립니다. 다음 번에 또 기회 있으면 좋겠네요.
Posted by 랜덤여신

