Bevy 0.19, 게임 엔진의 새로운 기준을 제시하다!
Bevy 0.19가 출시되어 차세대 씬 시스템(Next Generation Scenes)과 BSN(Bevy Scene Notation)을 도입함
GPU 기반 렌더링 최적화로 대규모 씬 처리 속도가 획기적으로 향상됨
텍스트 입력, 풍부한 텍스트, 접촉 그림자(Contact Shadows) 등 다양한 신규 기능이 추가됨
ECS 스케줄 기반 렌더링으로 전환하여 개발자 편의성과 성능을 개선함
차세대 씬 시스템과 BSN(Bevy Scene Notation)의 등장
Bevy 0.19의 핵심은 차세대 씬 시스템(Next Generation Scenes)과 이를 위한 새로운 BSN(Bevy Scene Notation) 형식입니다. 이 시스템은 복잡한 엔티티 스폰 과정을 선언적이고 인체공학적인 Rust 코드로 단순화하며, 향후 에셋 기반 워크플로우 지원을 목표로 합니다. 컴포넌트 기반의 계층적 구조 정의와 옵셔널 필드, 관계 표현 등은 기존 번들(Bundle) 방식의 복잡성을 크게 줄여 개발 생산성을 향상시킬 것으로 기대됩니다.
GPU 중심 렌더링 최적화로 인한 성능 대폭 향상
이번 릴리스는 GPU 기반 렌더링 최적화에 집중하여 상당한 성능 개선을 이루었습니다. 특히 멀티 드로우 인디렉트(Multi-Draw Indirect) 기법을 GPU로 이관하고, 배치 렌더링(Batched Rendering) 및 병렬 처리(Parallelization)를 강화했습니다. 벤치마크 결과, 160만 개의 큐브 씬에서 프레임당 렌더링 시간이 49.47ms에서 18.77ms로 단축되는 등 대규모 씬 처리 능력이 크게 향상되었습니다.
다양한 렌더링 및 UI 기능 추가: 접촉 그림자, 텍스트 입력 등
Bevy 0.19는 접촉 그림자(Contact Shadows)를 도입하여 씬의 시각적 품질을 높였으며, 이는 화면 공간 레이캐스팅(Screen-space Raycasting)을 통해 구현됩니다. 또한, EditableText 컴포넌트를 통한 텍스트 입력 지원과 변수 폰트(Variable Fonts), 반응형 폰트 크기 등 풍부한 텍스트 기능이 추가되었습니다. Feathers 위젯 컬렉션의 확장과 BSN으로의 마이그레이션은 UI 개발 경험을 더욱 향상시킬 것입니다.
ECS 스케줄 기반 렌더링 전환 및 리소스 통합
기존의 RenderGraph 아키텍처가 ECS 스케줄(Schedules)로 대체되었습니다. 이는 렌더링 파이프라인을 일반적인 Bevy 시스템으로 표현할 수 있게 하여 보일러플레이트 코드 감소와 유연성 증대를 가져왔습니다. 또한, 리소스(Resource)가 싱글톤 엔티티의 컴포넌트로 통합되어 데이터 관리의 일관성을 높이고, 네트워킹 및 디버깅 도구 개발을 단순화했습니다.
개발자 경험 개선: 지연 명령어, 텍스트 기즈모, 에셋 저장
이번 릴리스는 개발자 편의성을 위한 여러 기능을 포함합니다. 지연 명령어(Delayed Commands)를 통해 특정 시간 후에 명령을 실행할 수 있으며, 텍스트 기즈모(Text Gizmos)는 디버깅 시 월드 공간에 텍스트를 쉽게 표시할 수 있게 합니다. 또한, 에셋 저장(Asset Saving) 기능이 개선되어 절차적으로 생성된 에셋을 런타임에 저장하는 것이 가능해졌습니다. 취소 가능한 웹 태스크(Cancellable Web Tasks) 지원은 WASM 환경에서의 안정성을 높였습니다.