Storm Engine
Storm Engine은 러시아 게임 개발사 Akella가 《Sea Dogs》와 《Pirates of the Caribbean》 및 《Age of Pirates》 계열을 제작하기 위해 개발한 3차원 게임 엔진이다. 대규모 해양 공간과 선박·항구, 육상 탐험 및 해적 전투를 하나의 게임에...
| 분류 | 게임 엔진, 3차원 해양·해적 게임 엔진 |
|---|---|
| 원 개발사 | Akella |
| 초기 작품 | 《Sea Dogs》 (2000년) |
| 대표 세대 | Storm 1.0, Storm 2.0 |
| 후속 작품 | 《Pirates of the Caribbean》 (2003년), 《Age of Pirates》 계열 |
| 주요 기능 | 선박 조종·항해·전투, 3D 도시·섬과 캐릭터 |
| 환경 | 바다 파도·바람·날씨와 선박 효과 |
| 엔진 구현 | C++ 기반 |
| 게임 스크립팅 | C 유사 독자 스크립트와 런타임 컴파일러 |
| 실행 구조 | 엔티티 계층의 execute·realize 단계 |
| 원본 운영체제 | Windows |
| 렌더링 | Direct3D·DirectX 계열 |
| 현대 공개 포크 | storm-devs/storm-engine |
| 라이선스 | 공개 포크 GPL v3, 과거 상용 게임 자산 별도 |
| 공개 소스 | storm-devs/storm-engine |
| 기술사 | Storm Engine History |
| 스크립트 자료 | Storm Scripting Overview |
Storm Engine은 러시아 게임 개발사 Akella가 《Sea Dogs》와 《Pirates of the Caribbean》 및 《Age of Pirates》 계열을 제작하기 위해 개발한 3차원 게임 엔진이다. 대규모 해양 공간과 선박·항구, 육상 탐험 및 해적 전투를 하나의 게임에 결합하도록 설계됐다. Storm 1.0은 2000년의 《Sea Dogs》를, Storm 2.0은 2003년 《Pirates of the Caribbean》 게임의 기반을 이루었다.[1]
엔진은 실시간 3D 바다와 선박의 움직임, 풍향·파도·날씨 및 해상 전투를 처리하고 항구·도시에서 인물과 NPC의 행동 및 게임 진행을 관리한다. 선박 조종과 해상 전투, 지상 이동은 게임플레이 규칙이 크게 달라서 엔진의 여러 시스템과 콘텐츠를 나누어 구성한다. 그래픽스는 당시의 Direct3D·DirectX 기반으로 제작됐다.
Storm의 스크립팅 체계는 program 디렉터리의 게임 로직을 실행 시점에 C와 유사한 자체 언어로 컴파일한다. resource에는 모델·텍스처·음악·오디오·영상 등 미디어 자료를 저장하며 스크립트는 캐릭터·아이템과 게임 상태·이벤트를 정의한다. 정식 C 컴파일러를 게임 런타임에 내장했다는 의미가 아니라 고유 문법·게임 API를 갖는 스크립트 인터프리터 구조다.[2]
실행 모델에서는 엔티티를 여러 계층에 등록하고 매 프레임 EXECUTE 단계에서 게임 상태를 갱신한 다음 REALIZE 단계에서 그래픽스·오디오 처리를 실행한다. 계층과 우선순위가 호출 순서를 결정하고 삭제할 엔티티는 프레임 끝에 정리된다. 개발 도구에서 게임 오브젝트를 구성하고 스크립트·미디어 자원을 수정하면 게임별 세계·규칙을 확장할 수 있다.[3]
원래 Storm의 상용 버전은 공개되지 않은 내부 코드였지만 커뮤니티가 현대적인 C++ 코드베이스와 빌드 절차로 이식·보존하는 작업을 추진했다. 공개 storm-devs/storm-engine 저장소는 CMake와 Conan을 사용하고 《Sea Dogs: To Each His Own》 등 원본 게임 자산을 필요로 한다. 최신 Windows에서 실행하더라도 역사적인 DirectX 9 런타임과 여러 종속성을 설치해야 한다. 보관 처리된 공개 저장소와 후속 포크의 상태는 구분해서 설명해야 한다.[4]
현대 공개 포크의 소스에는 GNU GPL v3가 적용되지만 《Sea Dogs》·《Pirates of the Caribbean》의 원본 게임 콘텐츠는 별도의 권리를 가진다. 오픈 소스 엔진이 공개되었다고 해서 원작 모델·사운드·시나리오를 자유롭게 배포할 수 있는 것은 아니다. Storm은 해양·육상 시뮬레이션 엔진을 커뮤니티가 유지보수하면서 과거 게임의 자료와 실행 구조를 복원하는 사례다.