Moai SDK
Moai SDK는 Zipline Games가 모바일 게임을 효율적으로 제작하기 위해 공개한 Lua·C++ 기반 크로스 플랫폼 게임 엔진 프레임워크다. 게임의 실행 기술과 게임 로직을 작성하는 언어를 분리하여 C++로 구현한 네이티브 호스트가 그래픽스·오디오·입력과 리소스 처리를 담당하고...
| 분류 | 게임 엔진, 크로스 플랫폼 2D 게임 개발 프레임워크 |
|---|---|
| 원 개발사 | Zipline Games |
| 공개 사업 | Moai SDK·Moai Cloud |
| 핵심 언어 | Lua, C++ |
| 런타임 | 네이티브 libmoai와 플랫폼별 호스트 |
| 주요 기술 | 2D 장면·레이어·스프라이트·파티클 |
| 그래픽스 | OpenGL·OpenGL ES 기반 렌더링 |
| 게임플레이 | Lua 스크립트와 엔진 API 호출 |
| 주요 플랫폼 | iOS, Android, Windows, macOS, Linux 및 과거 웹 |
| 보조 도구 | Moai Community SDK, 커뮤니티 편집기 |
| 프로젝트 저장소 | moai/moai-dev |
| 커뮤니티 코드 | moai/moai-community |
| 역사적 라이선스 | Common Public Attribution License (CPAL) |
| 서드파티 구성 | 컴포넌트별 별도 라이선스 |
| 참고자료 | Moai SDK 문서 |
Moai SDK는 Zipline Games가 모바일 게임을 효율적으로 제작하기 위해 공개한 Lua·C++ 기반 크로스 플랫폼 게임 엔진 프레임워크다. 게임의 실행 기술과 게임 로직을 작성하는 언어를 분리하여 C++로 구현한 네이티브 호스트가 그래픽스·오디오·입력과 리소스 처리를 담당하고 Lua 스크립트는 게임의 동작을 정의한다. iOS와 Android를 중심으로 성장했으며 데스크톱과 당시 웹 환경도 지원 대상으로 소개됐다.[1]
Moai의 구조는 하나의 통합 레벨 편집기보다 모듈식 실행기와 Lua API에 중점을 둔다. 화면에 배치할 오브젝트와 레이어, 카메라와 파티클·애니메이션을 코드에서 정의한 뒤 렌더링 시스템에 전달한다. 게임이 필요로 하는 물리·충돌과 상태 변화는 Lua API 및 필요한 외부 라이브러리의 조합으로 구성한다. 배포 시에는 플랫폼별 호스트 바이너리에 게임의 스크립트와 자산을 결합한다.
게임의 실행 환경을 사용자가 수정할 수 있도록 C++의 엔진 코드와 Lua 바인딩이 함께 제공된다. 별도의 네이티브 기능이 필요하면 호스트를 다시 컴파일하거나 C++ 모듈을 추가할 수 있고, 일반적인 게임플레이 변경은 Lua 소스 코드로 처리한다. 이러한 구조는 모바일 SDK가 제공하지 않는 사용자 정의 기능을 통합하는 방법으로 활용된다.
원본 프로젝트는 Windows·macOS·Linux와 iOS·Android 등 플랫폼별 빌드 스크립트와 샘플 코드를 보존하고 있다. Moai Community SDK는 기본 실행기와 예제 및 배포 도구를 묶어 제공했으며 실제 모바일 앱 배포에는 해당 기기의 개발자 SDK와 자산 패키징이 필요했다. 예전 Android NDK나 Java 6 같은 도구 버전은 역사적인 빌드 정보이므로 현대 도구의 지원 사양과 구분해야 한다.[2]
Zipline의 개발 활동과 별도로 다양한 커뮤니티 포크·기여 코드가 존재한다. 후대에 포크된 프로젝트가 같은 이름을 사용하더라도 원래의 엔진 기능과 모바일 지원 범위가 항상 동일한 것은 아니다. 아카이빙할 때에는 원본 SDK 버전과 서드파티 바인딩, 도구·라이브러리 버전을 함께 기록하는 것이 재현 가능한 빌드에 유리하다.
Moai SDK의 원래 소스 배포에는 Common Public Attribution License(CPAL)가 적용되며 이 라이선스는 MIT처럼 단순한 허가형 라이선스와 다르다. 엔진·스크립트·자산과 게임 콘텐츠의 권리를 구분하고, 이용·재배포 시에는 포함된 제삼자 도구와 라이선스를 함께 확인해야 한다. Moai는 네이티브 C++ 게임 엔진과 Lua 스크립트의 조합을 모바일 게임 개발에 활용한 초기 공개 프레임워크의 대표 사례다.[3]