Flame Engine

Flame Engine 또는 Flame은 Flutter 애플리케이션 안에서 2차원 게임을 구현할 수 있도록 만든 Dart 기반 오픈 소스 게임 엔진이다. Flutter의 크로스 플랫폼 렌더링과 위젯 체계를 활용하면서 게임 루프, 화면 요소, 충돌과 입력처럼 일반적인 애플리케이션 프레임워...

분류게임 엔진, Flutter 기반 게임 개발 프레임워크
통용 명칭Flame
기반 기술Flutter
개발 언어Dart
개발 주체Flame Engine 커뮤니티, Blue Fire 팀
게임 루프FlameGame, GameWidget
객체 구조Flame Component System(FCS)
렌더링Flutter Canvas 기반 2D
기본 기능이미지, 스프라이트, 애니메이션, 충돌
입력 처리터치, 제스처, 키보드 및 게임패드 연동
확장 패키지flame_audio, flame_bloc, flame_forge2d 등
대상 플랫폼Android, iOS, Windows, Linux, macOS, 웹
공개 라이선스MIT License
공식 웹사이트flame-engine.org
소스 저장소flame-engine/flame

Flame Engine 또는 Flame은 Flutter 애플리케이션 안에서 2차원 게임을 구현할 수 있도록 만든 Dart 기반 오픈 소스 게임 엔진이다. Flutter의 크로스 플랫폼 렌더링과 위젯 체계를 활용하면서 게임 루프, 화면 요소, 충돌과 입력처럼 일반적인 애플리케이션 프레임워크만으로 구현하기 번거로운 기능을 제공한다. 게임을 단독 앱으로 실행할 수도 있고 기존 Flutter 화면의 일부 영역에 포함할 수도 있다.[1]

엔진의 중심에는 게임 상태를 반복해서 갱신하고 화면을 그리는 실행 루프가 있다. FlameGame은 기본적인 게임 구조를 제공하며 GameWidget은 게임 렌더링 영역을 Flutter 위젯 트리 안에 배치한다. 이를 통해 일반적인 앱 위젯과 게임 장면을 결합하고 메뉴·설정·내비게이션은 Flutter로, 실시간 장면은 Flame으로 구현하는 개발 방식을 사용할 수 있다.[2]

Flame Component System(FCS)은 게임 객체를 컴포넌트 트리로 구성한다. 스프라이트와 텍스트, 위치와 크기, 화면상의 계층 관계 및 여러 상호작용을 각 컴포넌트로 표현하며 갱신·그리기 단계에서 처리한다. 위치와 회전·확대 비율을 자식 요소에 전달하는 구조는 캐릭터와 장비·효과처럼 서로 종속된 요소를 그룹으로 관리하는 데 활용된다. 이름은 비슷하지만 데이터 중심의 일반적인 ECS와 동일한 구조는 아니다.

Flame은 스프라이트 시트와 애니메이션, 입자 효과, 카메라, 충돌 검사 및 사용자 입력을 기본 기능으로 제공한다. 오디오 재생과 물리 계산 등은 flame_audio, flame_forge2d 같은 별도 통합 패키지로 확장할 수 있으며 상태 관리 도구인 Bloc과 연결하는 패키지도 존재한다. 각 기능은 독립적으로 선택하여 구성할 수 있도록 모듈 형태로 설계되어 있다.[3]

Flame은 Flutter를 통해 모바일·데스크톱·웹에 빌드할 수 있다. 브라우저에서는 Flutter 웹 렌더러와 해당 환경의 입력·오디오 처리에 따라 실제 기능과 성능이 달라지고, 모바일에서는 Flutter 플러그인과 앱 수명 주기 등 기존 환경의 제약을 함께 고려한다. 다양한 게임 예제와 튜토리얼이 공개되어 있어 작은 2D 게임을 구현하거나 Flutter 앱에 미니게임과 상호작용 콘텐츠를 삽입하는 데 사용할 수 있다.

라이선스는 MIT License이며, 코드·예제·확장 패키지는 GitHub를 통해 관리된다. Flame은 게임용 독립 편집기와 별도 네이티브 렌더링 시스템을 새롭게 제공하는 대신 Flutter 플랫폼의 기존 개발 경험과 도구를 재사용한다는 점에서 다른 범용 엔진과 구별된다. 별도 엔진을 필요로 하지 않는 2D 게임을 애플리케이션 제작 흐름과 통합하는 설계 사례로 다룰 수 있다.

역사

기술 계보와 설계 목표

엔진 아키텍처

실행 루프와 게임 객체

프로그래밍 및 스크립팅

렌더링과 그래픽스

물리·입력·오디오

제작 도구와 자산 관리

지원 플랫폼과 배포

라이선스와 소스 코드

활용 사례와 주요 게임

기술적 영향

관련 문서

  1. Flame 공식 저장소 ↩
  2. Flame 공식 시작 안내 ↩
  3. Flame 기능과 확장 패키지 ↩