ORX

ORX 또는 orx는 C로 구현된 자유·오픈 소스 2차원 게임 엔진이다. 게임의 상태와 장면·객체 속성을 가능한 한 설정 파일과 데이터로 정의하는 데이터 중심(data-driven) 설계를 특징으로 한다. 프로그래머는 엔진의 공통 런타임과 리소스·입력·오디오 기능을 사용하고, 객체의 위...

정식 표기orx
분류게임 엔진, 데이터 중심 2D 게임 엔진
개발자iarwain 및 공개 기여자
개발 언어C
개발 방식외부 설정 파일 중심의 데이터 구동 설계
주요 기능스프라이트·물리·애니메이션·입력·오디오
런타임객체·프레임 갱신·이벤트 시스템
설정 형식계층형 구성 파일
그래픽스GPU 가속 2D 출력과 셰이더
자원 처리텍스처·사운드·폰트·로케일
게임 개발 언어C·C++ 등 바인딩 및 확장
기본 플랫폼Windows, Linux, macOS
추가 대상Android·iOS 등
소스 라이선스zlib License
공식 프로젝트orx-project.org
공식 저장소orx/orx

ORX 또는 orx는 C로 구현된 자유·오픈 소스 2차원 게임 엔진이다. 게임의 상태와 장면·객체 속성을 가능한 한 설정 파일과 데이터로 정의하는 데이터 중심(data-driven) 설계를 특징으로 한다. 프로그래머는 엔진의 공통 런타임과 리소스·입력·오디오 기능을 사용하고, 객체의 위치와 계층·애니메이션 및 동작 설정은 소스 코드를 다시 작성하지 않고도 변경할 수 있다.[1]

orx는 계층형 구성 파일을 통해 게임 객체와 카메라, 그래픽·사운드와 애니메이션의 특성을 정의한다. 엔진은 이런 설정을 읽어 객체 인스턴스를 생성하고 갱신 주기마다 이벤트·물리 및 렌더링 시스템에 전달한다. 설정의 상속과 재사용 구조는 여러 게임 객체가 같은 기본 속성을 공유하면서도 특정 값만 변경하도록 하여 코드와 콘텐츠의 경계를 분명히 한다.

화면 처리에는 하드웨어 가속 2D 스프라이트와 텍스처, 회전·확대·투명도·블렌딩과 색상 변환 기능이 포함된다. 카메라와 뷰포트, 렌더 타깃·셰이더 등을 조합하여 복잡한 2D 화면 효과를 구성할 수 있다. 물리 기능은 게임 객체와 충돌·동역학을 연결하고 오디오는 효과음·음악 재생과 공간 및 볼륨 제어에 사용된다.[2]

게임은 엔진의 초기화와 수명 주기에 맞추어 C 함수나 외부 바인딩을 이용해 동작을 추가한다. 객체 속성·애니메이션·리소스가 구성 파일로 관리되므로 일부 변경을 실행 중 반영하는 핫 리로드와 반복적인 콘텐츠 제작이 편리하다. 또한 엔진은 작업 스레드와 이벤트 구독, 장치 입력·저장 기능을 포함해 하나의 게임 코어로 묶을 수 있다.

플랫폼별 창·오디오와 파일 접근은 엔진의 플러그인 계층이 처리한다. 데스크톱 외에도 모바일 실행 환경을 대상으로 소스 빌드 및 도구를 제공하며, 각 플랫폼은 그래픽스 드라이버와 SDK가 지원하는 기능에 따라 제약이 달라진다. 코드와 구성 파일, 게임 자산은 별도로 배포할 수 있다.

orx 소스는 zlib License를 사용하므로 개인 및 상용 프로젝트에서 자유롭게 활용할 수 있다. 구성 중심 엔진의 특성상 통합 편집기 없이도 텍스트 설정과 외부 자산 편집기로 콘텐츠를 제작할 수 있으며, 이 설계는 고수준 장면 편집기에 강하게 종속된 다른 2D 엔진과 차별화되는 사례다.[3]

역사

개발 목적과 기술 계보

엔진 아키텍처

게임 상태와 실행 모델

프로그래밍·스크립팅

렌더링과 그래픽스

게임 규칙·AI·물리

입력·오디오·네트워크

콘텐츠·맵·제작 도구

지원 플랫폼과 빌드

라이선스·원작 콘텐츠

기술적 영향

관련 문서

  1. orx 공식 저장소 ↩
  2. orx README 기능 목록 ↩
  3. orx 라이선스와 배포 안내 ↩