Heaps
Heaps는 Haxe로 개발되는 고성능 크로스 플랫폼 2차원·3차원 게임 엔진 프레임워크다. Nicolas Cannasse와 Shiro Games를 비롯한 개발자들이 구축한 기술로, GPU 가속 렌더링과 자산 관리, 실행 환경을 재사용하면서 게임별 규칙과 제작 도구를 자유롭게 구성할 수...
| 분류 | 게임 엔진, 고성능 2D·3D 게임 프레임워크 |
|---|---|
| 개발 주체 | Nicolas Cannasse, Shiro Games 및 공개 기여자 |
| 구현 언어 | Haxe |
| 주요 실행 환경 | HashLink, JavaScript |
| 기술 목표 | GPU 가속 그래픽과 크로스 플랫폼 개발 |
| 2D API | h2d |
| 3D API | h3d |
| 공통 기능 | hxd (자산·입력·플랫폼 추상화) |
| 셰이더 언어 | HXSL (hxsl) |
| 대표 게임 | Dead Cells, Northgard, Evoland 계열 |
| 렌더링 | OpenGL, Direct3D, WebGL 등 대상별 |
| 대상 플랫폼 | Windows, macOS, Linux, HTML5, 모바일·콘솔 |
| 자산·제작 도구 | Heaps 라이브러리와 Haxe 기반 도구 |
| 공개 라이선스 | MIT License |
| 공식 웹사이트 | heaps.io |
| 공식 소스 | HeapsIO/heaps |
| 기술 문서 | Heaps Documentation |
Heaps는 Haxe로 개발되는 고성능 크로스 플랫폼 2차원·3차원 게임 엔진 프레임워크다. Nicolas Cannasse와 Shiro Games를 비롯한 개발자들이 구축한 기술로, GPU 가속 렌더링과 자산 관리, 실행 환경을 재사용하면서 게임별 규칙과 제작 도구를 자유롭게 구성할 수 있도록 설계됐다. 《Dead Cells》와 《Northgard》 등 2D와 3D 상용 게임에 적용된 기술 계열이며, 소스는 자유·오픈 소스로 제공된다.[1]
Heaps의 핵심 구성은 2D 장면을 담당하는 h2d, 3D 모델·장면 렌더링을 제공하는 h3d, 플랫폼에 공통으로 사용하는 리소스·이미지와 입력을 다루는 hxd, 셰이더 컴파일 시스템인 hxsl로 나뉜다. 이 구분은 하나의 그래픽스·게임플레이 모델을 모든 프로젝트에 강제하지 않고 각 게임에서 필요한 렌더링과 상위 시스템을 선택하게 한다. 자산 관리 계층은 그래픽 리소스의 로딩과 캐싱, 데이터 변환을 처리하여 실행 코드와 게임 자산의 경계를 설정한다.[2]
h2d는 스프라이트·비트맵 타일, 텍스트, 2D 장면과 사용자 인터페이스 같은 화면 요소를 표현하는 데 사용된다. h3d는 3차원 공간의 카메라·메시·재질·광원·애니메이션 및 렌더링 장면을 다룬다. HXSL은 Haxe와 유사한 형태로 셰이더를 작성하고 여러 그래픽스 백엔드용 프로그램을 생성하는 기술이며, CPU에서 실행되는 게임 규칙과 GPU에서 처리되는 셰이더의 역할을 구분한다. 따라서 Heaps는 전통적인 2D 스프라이트 게임부터 복잡한 3D 전략 게임의 그래픽스 실행 환경까지 활용된다.
게임은 Haxe 언어로 객체와 실행 구조를 작성하며, 네이티브 환경에서는 HashLink 또는 C++ 출력 경로와 플랫폼별 라이브러리를 조합할 수 있다. 웹에서는 JavaScript 및 WebGL을 활용한다. 프로젝트의 공식 지원 대상에는 HTML5, 데스크톱의 OpenGL·Direct3D, iOS·Android를 포함한 모바일 기기와 별도 SDK가 필요한 콘솔도 언급된다. 특정 빌드 타깃의 실제 적용 가능 여부는 엔진 버전과 대상 운영체제의 개발 도구 및 그래픽스 드라이버에 따라 달라진다.[3]
Shiro Games는 Heaps 기반으로 제작한 게임과 도구들을 하나의 개발 스택으로 소개하고 있다. 이 개발 스택은 엔진과 별도의 Haxe 언어 라이브러리, 자산 변환·빌드 도구를 연결하여 코드와 리소스를 처리한다. Dead Cells처럼 2차원 게임과 Northgard처럼 3차원 전략 게임이 같은 기술 스택의 일부를 재사용할 수 있지만 작품별 게임 규칙·렌더링과 도구가 동일하다는 뜻은 아니다. 엔진의 공통 기술과 개별 게임 제작 코드를 구분하는 것이 중요하다.[4]
Heaps는 MIT License로 배포되며 전체 코드를 GitHub에서 열람·수정하고 재사용할 수 있다. 같은 Haxe 기반인 HaxeFlixel이나 HaxePunk이 2차원 게임 객체와 장면 관리의 고수준 API를 중심으로 발전한 것과 달리, Heaps는 2D·3D 렌더링 및 자산·셰이더 처리의 공통 기반을 강하게 강조한다. 개발자가 게임별 도구와 실행 모델을 구성할 수 있는 프레임워크로서 그래픽스 성능·이식성·엔진의 모듈화를 결합한 사례다.[5]