ioquake3
ioquake3는 id Software가 2005년 GPL v2로 공개한 《Quake III Arena》와 《Quake III: Team Arena》 엔진의 소스 코드를 기반으로 공동체가 개발하는 오픈 소스 게임 엔진이다. 초기 프로젝트는 2005년 8월에 시작됐으며, 원래의 FPS 멀...
| 분류 | 게임 엔진, id Tech 3 기반 FPS 소스 포트 |
|---|---|
| 개발 주체 | ioquake3 오픈 소스 공동체 |
| 원형 엔진 | Quake III Arena·Team Arena 소스 코드 |
| 원 개발사 | id Software |
| 원본 소스 공개 | 2005년 8월 20일 |
| 프로젝트 시작 | 2005년 8월 |
| 구현 언어 | C |
| 클라이언트·서버 | 멀티플레이와 전용 서버 지원 |
| 게임 로직 | QVM·네이티브 게임 모듈 |
| 그래픽스 | OpenGL 1·2 경로와 구성별 확장 |
| 플랫폼 계층 | SDL 2 |
| 오디오 | OpenAL, Ogg Vorbis·Opus 등 선택 |
| 추가 기능 | 음성 대화, Mumble, 데모 영상 캡처 |
| 빌드 체계 | CMake, 플랫폼별 도구 |
| 대상 운영체제 | Windows, macOS, Linux와 기타 이식 플랫폼 |
| 원본 게임 자산 | Quake III 상용 데이터와 별도 |
| 공개 라이선스 | GNU GPL v2 |
| 공식 웹사이트 | ioquake3.org |
| 공식 저장소 | ioquake/ioq3 |
ioquake3는 id Software가 2005년 GPL v2로 공개한 《Quake III Arena》와 《Quake III: Team Arena》 엔진의 소스 코드를 기반으로 공동체가 개발하는 오픈 소스 게임 엔진이다. 초기 프로젝트는 2005년 8월에 시작됐으며, 원래의 FPS 멀티플레이 엔진을 새로운 운영체제에 이식하고 버그를 수정하는 동시에 현대적인 입력·오디오와 게임 제작 기능을 추가하는 것을 목표로 한다. 《Quake III》의 원본 게임 및 모드를 실행할 수 있고 자체 콘텐츠를 사용하는 독립 게임의 기반으로도 사용할 수 있다.[1]
기술적 전신인 id Tech 3는 빠른 3차원 멀티플레이 FPS를 위한 렌더링·충돌·게임 로직 및 네트워크 동기화 기능을 갖춘 엔진이다. ioquake3는 엔진의 C 코드를 유지하면서 현대적인 운영체제와 컴파일러, 그래픽스·사운드 라이브러리에 대응하도록 수정했다. 프로그램 구조는 게임 실행을 관리하는 코어, 클라이언트와 서버, 렌더링 및 입력·사운드 계층과 게임 규칙 모듈로 구성된다. 개발자는 원본의 게임플레이 코드를 수정하거나 별도 게임 로직을 작성할 수 있다.
게임의 동작은 Quake III Virtual Machine(QVM)으로 실행되는 모듈 또는 네이티브 코드로 작성할 수 있다. 게임의 메뉴·클라이언트 예측과 서버 규칙을 서로 다른 실행 단위로 구분하여 개발하고, 게임 데이터를 읽는 엔진과 실제 게임 규칙을 분리한다. 공식 소스에는 게임 VM 도구와 개발 관련 기능이 포함되어 있으며, 원래의 QVM 환경과 확장된 네이티브 코드 간 선택에 따라 실행 성능과 이식성·보안 경계가 달라질 수 있다.[2]
운영체제별 창·입력과 하드웨어 연결은 SDL 2 기반 계층을 활용하며, 오디오에는 OpenAL을 사용할 수 있다. 그래픽스 구현은 Quake III의 전통적인 OpenGL 경로와 기능을 개량한 OpenGL 2 렌더러를 함께 다룬다. 추가된 기능으로는 Ogg Vorbis 오디오, PNG 이미지, 플레이 중 음성 대화와 Mumble 연동, 데모의 AVI 영상 캡처, 콘솔의 자동완성과 기록 보존, 웹 서버를 통한 자산 다운로드 리디렉션 등이 있다. 일부 기능은 빌드 옵션을 통해 선택할 수 있다.[3]
2020년대의 ioquake3 저장소는 CMake 빌드를 지원하며 Windows·macOS·Linux 등에서 소스 컴파일 과정을 제공한다. 클라이언트·전용 서버·렌더러·게임 라이브러리·QVM과 독립 게임용 구성 등을 빌드 옵션으로 설정할 수 있다. 그러나 원래 Quake III의 게임 자산과 공식 지도 편집기가 전부 포함된 형태는 아니다. 레벨 제작에는 NetRadiant나 GtkRadiant 계열의 외부 도구를 사용할 수 있으며 맵과 셰이더·모델은 대상 게임의 자료 형식에 맞게 변환한다.[4]
ioquake3 엔진의 코드는 GNU GPL v2에 따라 공개되지만 《Quake III Arena》의 원본 그래픽·사운드·레벨은 상용 라이선스를 따른다. 기존 게임을 플레이하려면 적법하게 보유한 게임 데이터를 별도로 설치해야 하며, 자체 게임을 제작할 경우 독립적인 자산과 규칙으로 구성할 수 있다. ioquake3 공동체는 원래 게임을 개발한 id Software와는 별도 조직이다. 이러한 소스와 게임 콘텐츠의 법적 구분은 고전 게임의 보존과 엔진 재사용에서 중요한 사례다.[5]