Amethyst

Amethyst는 Rust로 작성된 데이터 지향 2D·3D 게임 엔진이다. 객체의 동작과 데이터를 분리하는 엔티티 컴포넌트 시스템(ECS)을 핵심 구조로 채택하고 병렬 처리, 재사용 가능한 컴포넌트와 게임 로직 구성을 중시했다. 2016년부터 공개 개발됐으며 Rust 생태계에서 비교적...

분류오픈 소스 데이터 지향 2D·3D 게임 엔진
개발 공동체Amethyst Game Engine 개발팀
작성 언어Rust
개발 언어Rust
프로젝트 시작2016년
최종 주요 릴리스0.15.3 (2020년 8월)
아키텍처ECS, Specs
리소스 정의RON 기반 자산·Prefab
렌더링gfx-rs 계열 렌더링 시스템
멀티스레딩ECS 스케줄 기반 병렬 처리
주요 기능입력, 게임 상태, UI·오디오·자산 관리
소스 모델공개 개발
라이선스MIT 또는 Apache License 2.0
개발 상태개발 중단·비활성 유지보수
소스 코드amethyst/amethyst
프로젝트 자료Amethyst Website

Amethyst는 Rust로 작성된 데이터 지향 2D·3D 게임 엔진이다. 객체의 동작과 데이터를 분리하는 엔티티 컴포넌트 시스템(ECS)을 핵심 구조로 채택하고 병렬 처리, 재사용 가능한 컴포넌트와 게임 로직 구성을 중시했다. 2016년부터 공개 개발됐으며 Rust 생태계에서 비교적 이른 시기에 대형 게임 엔진 아키텍처를 연구한 프로젝트다.[1]

Amethyst는 Specs ECS를 이용해 엔티티의 위치·속도·상태 등 데이터를 개별 컴포넌트에 배치하고 시스템이 필요한 컴포넌트 집합을 처리하도록 한다. 서로 충돌하지 않는 시스템을 여러 스레드에 배치함으로써 CPU 코어를 효율적으로 활용하려는 구조다. 개발자는 데이터와 동작을 단일 객체 클래스에 모으는 방식보다 시스템과 컴포넌트의 조합을 중심으로 게임 로직을 구현한다.

게임의 초기 상태와 객체 구성에는 RON(Rusty Object Notation)을 사용하는 Prefab·자산 기술이 활용됐다. 렌더링은 gfx-rs 계열 그래픽스 구성과 연결되며, 게임 상태 관리·입력·오디오·UI·파일 로딩 등의 시스템을 통합하는 것을 목표로 했다. 게임플레이 코드와 런타임 모두 Rust의 타입 시스템과 메모리 안전성 기능을 사용할 수 있다.

Amethyst의 마지막 널리 배포된 릴리스는 2020년 8월의 0.15.3이며 개발이 중단됐다. 공식 저장소는 더 이상 활발히 유지보수하지 않는다고 명시하고 있다. 이후 Rust 게임 엔진 개발의 일부 흐름은 Bevy 등 별도 프로젝트에서 이어졌지만 Amethyst가 그대로 Bevy로 이름을 바꾼 것은 아니다.[2]

엔진의 소스는 MIT License 또는 Apache License 2.0으로 사용할 수 있다. Rust로 작성된 공개 코드와 개발 자료는 ECS·병렬 실행·자산 관리 체계를 연구하는 데 활용할 수 있지만, 비활성 프로젝트라는 특성 때문에 새 OS·컴파일러·그래픽스 드라이버에 대한 호환성 보장을 기대해서는 안 된다.

역사

개발 조직과 계보

엔진 아키텍처

렌더링과 장면 구성

게임 데이터와 객체

프로그래밍 및 스크립팅

에셋·편집·개발 도구

입력·물리·네트워크

지원 플랫폼

라이선스 및 소스 공개

대표 게임·사용 사례

관련 문서

  1. Amethyst 공식 소스 ↩
  2. Amethyst 릴리스 기록 ↩