Bevy
Bevy는 Rust로 구현된 무료·오픈 소스 게임 엔진이자 범용 실시간 애플리케이션 프레임워크다. 2020년 Carter Anderson이 첫 공개 버전 0.1을 발표했으며, 2D·3D 게임뿐 아니라 시각화·사용자 인터페이스 등의 인터랙티브 프로그램 개발에 사용된다. 엔진의 내부 구조와...
| 분류 | 게임 엔진, 데이터 지향 2D·3D 개발 프레임워크 |
|---|---|
| 개발 주체 | Carter Anderson 및 Bevy 개발 공동체 |
| 최초 공개 | 2020년 8월 10일 |
| 첫 공개 버전 | Bevy 0.1 |
| 작성 언어 | Rust |
| 게임 개발 언어 | Rust |
| 주요 구조 | ECS, 스케줄러, 플러그인 |
| 렌더링 | wgpu 기반 2D·3D 렌더링 |
| 에셋 관리 | 비동기 자산 로딩과 핫 리로드 |
| 개발 플랫폼 | Windows, Linux, macOS 등 |
| 라이선스 | MIT License 또는 Apache License 2.0 |
| 소스 코드 | GitHub |
| 공식 웹사이트 | bevy.org |
Bevy는 Rust로 구현된 무료·오픈 소스 게임 엔진이자 범용 실시간 애플리케이션 프레임워크다. 2020년 Carter Anderson이 첫 공개 버전 0.1을 발표했으며, 2D·3D 게임뿐 아니라 시각화·사용자 인터페이스 등의 인터랙티브 프로그램 개발에 사용된다. 엔진의 내부 구조와 게임 로직을 동일한 Rust 언어로 작성할 수 있도록 설계됐다.[1]
Bevy의 핵심에는 Entity Component System(ECS)이 있다. 엔티티는 게임 객체의 식별자이고, 컴포넌트는 위치·속도·체력처럼 데이터를 보유하며, 시스템은 조건에 맞는 컴포넌트를 찾아 처리한다. 개별 데이터와 처리 코드를 분리하면 게임 객체 계층 구조의 결합도를 낮출 수 있고 서로 충돌하지 않는 시스템을 병렬로 실행하기 쉬워진다.
엔진은 플러그인과 독립적인 구성 요소를 통해 기능을 추가·교체할 수 있다. 렌더링, 오디오, 입력, 자산 로딩, 애니메이션과 사용자 인터페이스는 프로젝트에서 필요한 형태로 통합할 수 있으며, 실행 스케줄은 여러 시스템의 순서와 병렬 실행을 관리한다. 렌더링은 wgpu 등 Rust 그래픽 생태계를 기반으로 하고, 데이터와 GPU 작업 흐름을 분리해 처리한다.
게임 제작자는 Rust의 타입 시스템과 Cargo 패키지 관리 도구를 활용해 로직을 작성하고 외부 라이브러리를 통합할 수 있다. Bevy는 별도 전용 스크립트 언어보다 Rust 기반 API에 중점을 두며, 통합 편집기 중심의 엔진들과 달리 코드 중심 개발 흐름을 제공한다. 기능과 도구의 성숙도는 릴리스별로 다르며, 엔진 API의 변경도 비교적 활발하게 이루어진다.
Bevy 소스는 MIT 및 Apache License 2.0 가운데 선택할 수 있는 허용적 이중 라이선스로 공개된다. Godot과 마찬가지로 공개 개발과 외부 기여를 중심으로 하지만, 자체 ECS와 Rust 생태계를 기반으로 한다는 점에서 개발 모델과 엔진 구조가 구별된다.[2]