HaxeFlixel

HaxeFlixel은 Haxe와 OpenFL을 기반으로 개발되는 자유·오픈 소스 2차원 게임 엔진이다. 2011년 Alexander Hohlov가 Adam Saltsman의 ActionScript 3 기반 Flixel을 Haxe로 이식하면서 시작했으며, 이후 크로스 플랫폼 기능과 개발...

분류게임 엔진, 크로스 플랫폼 2D 엔진
최초 개발자Alexander Hohlov (Beeblerox)
개발 시작2011년
기술적 전신Flixel (ActionScript 3)
개발 언어Haxe
기반 프레임워크OpenFL, Lime
주요 클래스FlxGame, FlxState, FlxSprite, FlxGroup
엔진 요소스프라이트·충돌·타일맵·카메라·오디오
관련 패키지flixel-addons, flixel-ui, flixel-tools
주요 플랫폼Windows, macOS, Linux, Android, iOS, HTML5
레거시 대상Flash, Neko 등 구형 Haxe/OpenFL 타깃
개발 워크플로Haxelib·Lime·프로젝트 XML
렌더링OpenFL 기반 하드웨어 가속 2D
라이선스MIT License
공식 웹사이트HaxeFlixel
공식 소스HaxeFlixel/flixel

HaxeFlixel은 Haxe와 OpenFL을 기반으로 개발되는 자유·오픈 소스 2차원 게임 엔진이다. 2011년 Alexander Hohlov가 Adam Saltsman의 ActionScript 3 기반 Flixel을 Haxe로 이식하면서 시작했으며, 이후 크로스 플랫폼 기능과 개발 도구, 그래픽스·입력·물리 및 확장 패키지가 추가된 독립적인 엔진으로 발전했다. Flash 중심의 원래 Flixel을 계승하면서도 데스크톱·모바일·웹에서 같은 게임 코드를 이용할 수 있도록 하는 것이 특징이다.[1]

HaxeFlixel의 기본 게임 구성은 FlxGame, 상태 화면인 FlxState, 화면 객체를 표현하는 FlxSprite, 객체 집합인 FlxGroup 등으로 이루어진다. 개발자는 상태를 만들고 스프라이트와 그룹·카메라를 추가하여 세계를 구성한 뒤 업데이트 단계에서 입력과 이동·충돌·게임 규칙을 실행한다. 상태 전환을 통해 메뉴와 게임플레이 장면을 분리할 수 있고 공통 API가 자주 사용하는 2D 게임 동작을 처리해 준다.

렌더링과 실행 플랫폼의 차이를 흡수하는 부분은 OpenFL 및 Lime이 담당한다. Haxe 소스는 대상에 따라 네이티브 코드 또는 웹 실행용 코드로 컴파일되며, OpenFL의 입력·그래픽스·리소스 처리 기능을 HaxeFlixel이 고수준 게임 API로 감싼다. 플래시 기반 원본 Flixel의 객체·상태 모델과 유사하지만 새로운 플랫폼 기능과 런타임을 활용하므로 구형 ActionScript 3 코드를 그대로 실행하는 엔진은 아니다.[2]

2차원 게임 제작을 위한 스프라이트·애니메이션·카메라 스크롤과 줌, 충돌 판정, 입자·타일맵, 텍스트와 사용자 인터페이스 및 오디오 기능이 제공된다. flixel-addons는 엔진의 추가 기능을, flixel-ui는 게임 UI 요소를, flixel-tools는 새로운 프로젝트 생성·개발 도구를 담당한다. 공식 문서는 이러한 패키지와 다양한 예제, 단계별 튜토리얼을 제공하여 간단한 플랫폼 게임에서 더 복잡한 게임으로 확장하는 작업 흐름을 설명한다.[3]

플랫폼 지원은 OpenFL 및 Haxe의 컴파일 대상과 도구 체인에 영향을 받는다. Windows·Linux·macOS와 Android·iOS, HTML5를 주요 대상에 포함하며, 과거 Flash와 Neko 타깃도 제공했다. 개발자는 Haxelib로 엔진과 필요한 패키지를 설치하고 Lime 프로젝트 파일과 플랫폼별 빌드 명령을 이용해 실행 결과를 생성한다. 웹 실행 시에는 브라우저와 OpenFL 렌더링 백엔드에 따라 지원 기능이 달라질 수 있다.[4]

HaxeFlixel은 MIT 라이선스로 공개되며 상업적 게임에도 사용할 수 있다. 같은 Haxe 언어를 사용하는 HaxePunk과는 원천 라이브러리와 핵심 객체 모델이 다르다. HaxeFlixel은 Flixel 계열의 게임 상태·스프라이트와 확장 생태계를 중심으로 하고, HaxePunk은 FlashPunk의 세계·엔티티 모델을 계승한다. 이러한 구분은 Haxe 기반 2D 프레임워크가 서로 다른 기존 Flash 엔진에서 발전했음을 보여준다.[5]

역사

기술 계보와 개발 목적

엔진 아키텍처

실행 모델과 게임 객체

프로그래밍과 스크립팅

렌더링과 그래픽스

물리와 충돌

입력·오디오 및 네트워크

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

플랫폼 지원과 배포

라이선스와 소스 공개

주요 작품과 기술적 영향

관련 문서

  1. HaxeFlixel: 공식 프로젝트 역사 ↩
  2. HaxeFlixel: OpenFL과 이식 구조 ↩
  3. HaxeFlixel: 공식 사용 설명서 ↩
  4. HaxeFlixel: 설치와 플랫폼별 빌드 ↩
  5. HaxeFlixel GitHub 및 MIT License ↩