Halley
Halley는 현대적인 C++17로 개발된 경량 크로스 플랫폼 게임 엔진이다. 턴제 전략 게임 《Wargroove》의 제작과 출시에 사용된 기술로 알려져 있으며, 2D 게임에 필요한 렌더링과 자산 처리, 입력·사운드 및 게임 상태 관리 기능을 재사용 가능한 형태로 제공한다. 대형 통합...
| 분류 | 게임 엔진, 크로스 플랫폼 2D 게임 엔진 |
|---|---|
| 개발자 | amzeratul 및 오픈 소스 기여자 |
| 개발 언어 | C++17 |
| 개발 방식 | 코드 중심, 편집기·자산 도구 병행 |
| 핵심 구조 | 엔티티·컴포넌트·시스템(ECS) |
| 핵심 기능 | 2D 그래픽스, 자산 관리, 입력·오디오, 네트워크 |
| 대표 게임 | Wargroove (2019년) |
| 주요 대상 | Windows, Nintendo Switch, Xbox One, PlayStation 4 |
| 추가 대상 | macOS 시험 지원, Android·iOS 개발 시도 |
| 렌더링 | 셰이더·그래픽스 백엔드 추상화 |
| 개발 도구 | Halley Editor, 자산 파이프라인 |
| 공개 라이선스 | Apache License 2.0 |
| 소스 코드 | amzeratul/halley |
| 공식 문서 | Halley Documentation |
Halley는 현대적인 C++17로 개발된 경량 크로스 플랫폼 게임 엔진이다. 턴제 전략 게임 《Wargroove》의 제작과 출시에 사용된 기술로 알려져 있으며, 2D 게임에 필요한 렌더링과 자산 처리, 입력·사운드 및 게임 상태 관리 기능을 재사용 가능한 형태로 제공한다. 대형 통합 편집기에서 모든 로직을 작성하도록 하는 방식보다 프로그래머가 코드로 게임 시스템을 구성하고 필요한 제작 도구를 결합하는 개발 흐름을 강조한다.[1]
Halley는 엔티티 컴포넌트 시스템(ECS)에 기반한 게임 객체 모델을 제공한다. 게임 세계의 각 엔티티는 상태를 나타내는 컴포넌트를 갖고, 시스템은 특정 종류의 컴포넌트를 가진 엔티티들에 대해 갱신 작업을 수행한다. 데이터와 시스템의 동작을 분리하면 이동, 입력, 애니메이션 및 전투 규칙을 조직하기 쉽고 많은 객체를 효율적으로 갱신할 수 있다. 프로젝트는 이러한 데이터 중심 설계를 장기 유지보수와 실행 성능을 위한 원칙으로 소개한다.
엔진은 현대적인 그래픽스 파이프라인과 셰이더를 지원하며, 이미지·스프라이트·텍스트의 표시를 게임 로직과 분리한다. 플랫폼별 창 관리와 입력·오디오 같은 하위 기능을 추상화하여 동일한 게임 로직을 여러 기기에서 사용할 수 있도록 한다. 에셋 파이프라인은 편집 가능한 원본 그래픽·사운드 자료를 게임 실행에 필요한 형식으로 준비하고, 게임에 필요한 공통 자료를 엔진 런타임으로 전달한다. 이런 분리는 포팅 과정에서 장치·그래픽스 관련 구현을 교체하는 데도 도움이 된다.[2]
공식 프로젝트는 게임 제작을 에디터에 종속시키지 않는 코드 우선(code-first) 방식을 강조한다. 사용자는 객체의 행동과 시스템을 C++로 작성하고, 그래픽스·오디오 등의 기능을 엔진 API로 연결한다. Halley에는 장면과 자산을 다루는 편집 도구도 포함되지만 게임 로직 생성의 필수 전제는 아니다. 자체 게임플레이 프레임워크를 확장하는 데 유리한 구조를 지향하며, 게임 규모가 커져도 코드와 데이터의 경계를 명확하게 유지하려 한다.
《Wargroove》는 Windows와 여러 콘솔로 출시됐고 Halley 저장소는 해당 게임을 출하한 엔진이라는 사실과 함께 Windows, Nintendo Switch, Xbox One, PlayStation 4 지원을 명시한다. macOS는 시험 지원으로, Android와 iOS는 개발 중인 이식 대상으로 설명한다. 따라서 저장소의 지원 플랫폼 목록은 모든 시점의 릴리스가 동일한 제작 도구·실행 성능과 기능을 보장한다는 뜻은 아니며 실제 이식 상태는 개별 프로젝트와 SDK 조건에 따라 다르다.[3]
Halley의 공개 소스는 Apache License 2.0에 따라 배포된다. 외부 개발자는 엔진 코드를 열람하고 수정·재사용할 수 있지만 콘솔용 SDK 및 상용 게임에 포함된 콘텐츠는 별개의 계약과 권리에 따른다. 이 프로젝트는 이미 상용 게임 제작에 사용된 C++ 기반 기술을 소스 공개 형태로 제공하면서 성능·유지보수·크로스 플랫폼 실행을 함께 중시하는 엔진의 사례로 평가할 수 있다.