Cube Engine
Cube Engine은 Wouter van Oortmerssen이 개발한 공개 3차원 FPS 게임 엔진이다. 2001년 발표된 《Cube》 게임을 위해 설계됐으며, 게임 실행 화면에서 바로 지형·맵을 수정하는 편집 기능과 싱글플레이·멀티플레이 전투 기능을 제공했다. 이후 《Cube 2:...
| 분류 | 게임 엔진 또는 개발 프레임워크 |
|---|---|
| 개발 주체 | Wouter van Oortmerssen |
| 작성 언어 | C++ |
| 게임 개발 언어 | CubeScript |
| 주요 기술 | 2.5D·3D FPS, 게임 중 맵 편집, 네트워크 |
| 지원 플랫폼 | Windows, Linux, macOS 등 |
| 라이선스 | Cube License (zlib 기반·재라이선스 제한) |
| 공식 웹사이트 | 공식 사이트 |
| 초기 적용 | Cube (2001년) |
| 기술 후속 | Cube 2 Engine |
| 렌더링 | OpenGL |
| 게임 맵 | 실시간 맵 편집 |
| 네트워크 | 클라이언트 중심 설계 |
Cube Engine은 Wouter van Oortmerssen이 개발한 공개 3차원 FPS 게임 엔진이다. 2001년 발표된 《Cube》 게임을 위해 설계됐으며, 게임 실행 화면에서 바로 지형·맵을 수정하는 편집 기능과 싱글플레이·멀티플레이 전투 기능을 제공했다. 이후 《Cube 2: Sauerbraten》의 기술적 전신이 됐다.[1]
Cube의 초기 설계 목표는 비교적 작은 코드와 라이브러리 구성으로 3D FPS 게임을 실행하는 것이었다. OpenGL 렌더링과 SDL 기반 입력·창·사운드 등으로 시스템을 조합하고 네이티브 C++ 코드에서 게임플레이를 구현했다. 세계는 텍스처와 기하 자료를 중심으로 관리되며 플레이어의 위치·시야와 충돌을 계산한다.
기본 실행 환경에는 게임 내 지도 편집기가 포함돼 있어 개발자가 화면을 보면서 지형과 구조물을 수정할 수 있다. 엔진은 별도 레벨 컴파일러를 실행하지 않고 변경된 공간을 즉시 화면에 표현하는 방향으로 개발됐다. 이 기능은 뒤이은 Cube 2에서 더 확장된 실시간 공동 맵 편집 구조로 이어졌다.
네트워크 게임은 게임 상태의 동기화와 플레이어 움직임·무기·입력 정보를 처리한다. 원 개발자는 자신의 게임이 두꺼운 클라이언트·가벼운 서버 구조를 사용해 치트 방어에 취약할 수 있다고 공식 문서에서 설명했다. 게임 서버의 설계와 FPS의 실행 성능은 서로 다른 문제이므로 이러한 구조적 한계도 보안 측면에서 고려할 수 있다.[2]
Cube의 코드는 일반적인 zlib License에 재라이선스를 제한하는 추가 조항을 붙인 Cube License로 공개됐다. 이는 Cube 2 Engine에 적용되는 통상적인 zlib 라이선스와 구분되며 GPL과의 호환성에도 영향을 준다. 원본 코드의 사용 권한과 게임 자산에 적용되는 별도 저작권 역시 구별해야 한다.[3]