HaxePunk

HaxePunk은 Flash 시대에 제작된 ActionScript 3 기반 2차원 게임 프레임워크 FlashPunk를 Haxe 언어와 OpenFL에 이식한 자유·오픈 소스 게임 엔진이다. 원래 FlashPunk는 Chevy Ray Johnston이 설계했고, HaxePunk는 2010년...

분류게임 엔진, 크로스 플랫폼 2D 엔진
원형 엔진FlashPunk
원형 개발자Chevy Ray Johnston
후속 개발HaxePunk 오픈 소스 기여자
초기 공개2011년경
구현 언어Haxe
기반 기술OpenFL, Lime
핵심 요소World, Entity, Graphic, Mask
게임 실행Engine, World 업데이트 및 그리기
주요 기능스프라이트, 이미지·타일맵, 충돌, 애니메이션
입력키보드·마우스·게임패드·멀티터치
그래픽스하드웨어 가속 2D, 텍스처 아틀라스
배포 대상HTML5(WebGL), Windows, Linux, macOS, iOS, Android
후기 공개판4.0.1 (2018년)
공개 라이선스MIT License
공식 소스HaxePunk/HaxePunk
배포 기록Haxelib: HaxePunk

HaxePunk은 Flash 시대에 제작된 ActionScript 3 기반 2차원 게임 프레임워크 FlashPunk를 Haxe 언어와 OpenFL에 이식한 자유·오픈 소스 게임 엔진이다. 원래 FlashPunk는 Chevy Ray Johnston이 설계했고, HaxePunk는 2010년대 초 Haxe의 다중 플랫폼 출력 기능을 활용하도록 별도의 코드베이스로 발전했다. 복잡한 시각적 제작 도구보다 코드로 게임 세계와 객체를 정의하고 스프라이트·충돌·애니메이션·입력 등의 재사용 가능한 기능을 조합하는 방식에 중점을 둔다.[1]

HaxePunk은 실행 흐름을 정의하는 엔진과 게임 세계를 나타내는 World, 화면·논리 객체인 Entity, 이미지 표현을 담당하는 Graphic 및 충돌 영역을 나타내는 Mask 등의 개념을 중심으로 구성된다. 개발자는 월드에 엔티티를 등록하고 객체별 갱신과 그리기를 구현해 게임 동작을 작성한다. 월드를 전환해 타이틀 화면과 여러 스테이지를 분리할 수 있으며, 게임 객체의 충돌 영역과 표시 이미지를 따로 구성하여 그림이 없는 논리 객체도 다룰 수 있다.

기본 게임 기능에는 스프라이트와 타일맵·이미지·텍스트, 애니메이션 및 파티클과 같은 화면 요소가 포함된다. 객체는 충돌 마스크와 속성으로 영역 판정을 수행할 수 있고, 키보드·마우스·게임패드 및 멀티터치 입력을 이용해 상태를 변경한다. 실행 대상에 따라 하드웨어 가속 렌더링과 텍스처 아틀라스를 활용해 여러 2D 객체를 효율적으로 그린다. 엔진의 물리 모델은 고수준 2D 게임 객체의 이동·충돌을 중심으로 하며 외부 범용 강체 엔진과 동일하지 않다.[2]

Haxe와 OpenFL은 기존 Flash용 게임 코드를 데스크톱·모바일·웹에 다시 사용할 수 있는 기반을 제공했다. HaxePunk의 후기 배포 자료는 HTML5의 WebGL 출력, Windows·macOS·Linux의 네이티브 실행, iOS·Android의 모바일 빌드를 지원한다고 설명한다. 이식 과정은 대상 플랫폼의 SDK, Haxe 컴파일러와 OpenFL 및 Lime 버전에 따라 달라진다. 초기 Haxe 2를 지원하는 버전과 Haxe 3 기반으로 전환된 후기 엔진 사이에도 프로젝트 파일과 API 차이가 존재한다.

Haxelib 저장소에는 여러 세대의 HaxePunk 릴리스와 의존성 기록이 보존돼 있다. 4.0.1은 2018년에 등록된 후기 버전으로, 당시의 문서는 텍스처 아틀라스·하드웨어 가속과 크로스 플랫폼 개발을 주요 기능으로 소개한다. 2010년대 Flash 중심 게임에서 다른 운영체제로 이식하는 개발 흐름을 보여주지만, 오래된 엔진의 코드가 오늘날의 Haxe·OpenFL 최신 툴체인에서 수정 없이 빌드된다는 뜻은 아니다.[3]

프로젝트는 MIT License로 공개됐으며 코드 수정과 상업적 게임 제작에 사용할 수 있다. 이름이 비슷한 HaxeFlixel은 Flixel에서 발전한 별개의 엔진이고, HaxePunk은 FlashPunk의 World·Entity 계통을 계승한다. 두 프로젝트는 같은 Haxe/OpenFL 환경을 활용하지만 객체 모델과 API, 개발 도구·버전 역사에서 차이가 난다. HaxePunk은 초기 Flash 2D 게임 프레임워크를 네이티브·브라우저용 크로스 플랫폼 게임 제작 기술로 확장한 사례다.[4]

역사

기술 계보와 개발 목적

엔진 아키텍처

실행 모델과 게임 객체

프로그래밍과 스크립팅

렌더링과 그래픽스

물리와 충돌

입력·오디오 및 네트워크

자산 파이프라인과 제작 도구

플랫폼 지원과 배포

라이선스와 소스 공개

주요 작품과 기술적 영향

관련 문서

  1. HaxePunk 배포본 소개 ↩
  2. HaxePunk의 플랫폼 및 기능 명세 ↩
  3. Haxelib: HaxePunk 버전 기록 ↩
  4. HaxePunk 공식 소스 저장소 ↩