Iron Engine

Iron Engine 또는 Iron은 Armory3D 프로젝트에서 사용되는 Haxe 기반 3차원 게임 엔진 코어 라이브러리다. 멀티미디어·그래픽스 추상화 프레임워크인 Kha를 기반으로 하며 장면과 게임 오브젝트, 리소스의 관리 및 렌더링·애니메이션 등을 처리하는 핵심 런타임 기능을 제공...

분류게임 엔진, Haxe 기반 3D 엔진 코어
개발 조직Armory3D 프로젝트
기술적 역할Armory3D의 3차원 장면·게임 실행 코어
구현 언어Haxe
기반 프레임워크Kha
핵심 구성장면 그래프·노드·오브젝트·메시·카메라
렌더링플랫폼별 Kha 렌더링 백엔드 연동
자산Blender 장면·모델 데이터 처리
게임 로직Haxe 스크립트, Armory3D 로직 노드
물리·AIArmory3D와 외부 Bullet 등 시스템 연동
주요 이용Blender 통합 크로스 플랫폼 게임 제작
지원 대상Windows, Linux, macOS, 웹·모바일(Armory 설정별)
저장소 변경2024년 12월 2일 별도 저장소 보관
현재 소스 경로Armory 주 저장소의 Sources/iron
라이선스zlib License
이전 코드armory3d/iron
현행 코드armory3d/armory/Sources/iron
프로젝트 소개Armory3D

Iron Engine 또는 Iron은 Armory3D 프로젝트에서 사용되는 Haxe 기반 3차원 게임 엔진 코어 라이브러리다. 멀티미디어·그래픽스 추상화 프레임워크인 Kha를 기반으로 하며 장면과 게임 오브젝트, 리소스의 관리 및 렌더링·애니메이션 등을 처리하는 핵심 런타임 기능을 제공한다. Blender와 통합된 Armory3D가 게임 제작에 필요한 편집기·물리·로직 노드와 배포 도구를 제공하는 반면, Iron은 그 기반이 되는 엔진 코어에 해당한다.[1]

Iron의 엔진 구조는 게임 세계를 장면과 오브젝트 및 하위 노드의 계층 관계로 표현한다. 카메라·메시·재질과 애니메이션 자산을 관리하고, 장면에 존재하는 객체가 렌더링과 게임의 갱신 과정에 참여하게 한다. 게임 코드는 Haxe 언어로 작성되며 엔진 코어의 클래스를 이용해 객체의 변환·상태를 바꿀 수 있다. Armory3D를 사용할 때에는 Haxe 기반 로직과 Blender의 노드 그래프에서 지정한 동작도 Iron의 런타임 객체에 연결된다.

렌더링과 플랫폼별 그래픽스 차이를 처리하는 기반에는 Kha가 사용된다. 게임 제작자는 Blender의 모델과 장면·재질, 텍스처, 애니메이션 등의 데이터를 준비하고 Armory의 빌드·자산 변환 도구를 이용해 게임 런타임이 읽을 수 있는 자료로 변경한다. Haxe 소스와 렌더링 파이프라인을 결합하면 하나의 게임을 데스크톱과 모바일·웹 등으로 배포할 수 있으며, 실제 백엔드와 기능은 Kha·Armory의 버전 및 설정에 따라 달라진다.[2]

Armory3D는 Blender와의 긴밀한 통합을 특징으로 한다. 개발자는 Blender에서 3D 세계를 편집하고 오브젝트 및 재질을 구성한 다음 Haxe 코드나 시각적 로직 노드로 동작을 추가할 수 있다. 물리와 경로 탐색, 인터페이스 및 입자 시스템은 Armory의 기능과 외부 라이브러리를 통해 확장된다. Iron 코어가 이 모든 외부 하위 시스템을 독자적으로 구현한 것은 아니므로 코어와 전체 Armory 제작 환경을 같은 제품으로 취급하지 않는 것이 정확하다.

2024년 12월 2일 armory3d/iron 독립 저장소는 소유자에 의해 보관(archived) 처리되어 읽기 전용이 됐다. 기존 코드와 라이선스는 역사적 자료로 남았고 이후 Iron의 주요 소스는 Armory3D의 주 저장소에 Sources/iron 디렉터리로 통합되어 있다. 따라서 armory3d/iron 저장소가 보관되었다는 사실만으로 전체 Armory3D 프로젝트의 개발이 중단되었다고 볼 수는 없다.[3]

Iron의 독립 저장소는 zlib License로 공개되며 Haxe 기반 엔진 코드의 열람과 수정·재배포를 허용한다. Armory와 Blender, Kha 및 외부 물리·UI 라이브러리는 별도로 관리되는 프로그램이므로 이들의 라이선스와 사용 조건을 각각 구분해야 한다. Iron은 3D 장면·게임 런타임을 재사용 가능한 라이브러리로 분리하고 Blender 기반 제작 도구와 연결하는 오픈 소스 게임 엔진 설계의 사례다.[4]

역사

기술 계보와 개발 목적

엔진 아키텍처

실행 루프·게임 객체

개발 언어와 스크립팅

렌더링과 그래픽스

월드·애니메이션·물리

입력·오디오·네트워크

자산 처리 및 제작 도구

지원 플랫폼·빌드

라이선스와 소스 공개

대표 게임 및 기술적 영향

관련 문서

  1. Iron 원본 저장소의 프로젝트 설명 ↩
  2. Armory3D: 엔진·그래픽스 및 플랫폼 ↩
  3. Iron GitHub: 보관 상태와 새 소스 위치 ↩
  4. Iron 소스 및 라이선스 ↩