この記事の3行まとめ
- オープンソースのゲームエンジン「Bevy Engine」、バージョン0.16にアップデート
- Rustで開発されたゲームエンジン。データ指向型のソフトウェアアーキテクチャ「ECS」に基づき構成されている
- 3Dモデルに対するGPU駆動レンダリングのサポートや、各Entityに自由な関係性を定義できる機能などが導入
2025年4月24日(現地時間)、オープンソースのゲームエンジン「Bevy Engine」がバージョン0.16にアップデートしたことが発表されました。
(画像はGitHubより引用)
「Bevy Engine」は、データ指向型のソフトウェアアーキテクチャ「ECS(Entity Component System)」(※)に基づき構成された2D/3D向けゲームエンジン。
※ 実装単位を、IDとなる「Entity」、データ構造を定義する「Component」、Component同士の振る舞いを定義する「System」に分離する設計手法。並列処理の活用により大量のオブジェクトを高速に処理できるといった特徴を持つ
Rustをベースに開発されており、ソースコードの大半はMITライセンスまたはApache License 2.0のデュアルライセンスにより提供されています。
(画像はニュースリリースより引用)
バージョン0.16ではGPU駆動レンダリングに対応したほか、Entity同士の関係性を自由に定義できる機能や、Entityを無効化できるComponentの導入など、多岐にわたるアップデートが実施されています。
3DモデルをGPU駆動でレンダリング可能に
3Dモデルに対してGPU駆動のレンダリングがサポート(※)されるようになりました。
※ モーフターゲットを持つ3Dモデルなどには対応していない
Activisionが無料で公開している、『Call of Duty: Warzone Caldera』のマップ「Caldera」に関するデータセットを用いた検証では、GPU駆動レンダリングの使用により、バージョン0.15と比較してレンダリングのパフォーマンスが約3倍に向上したと述べています。
Bevy Engineのバージョン0.15/0.16を同条件のPCで動かし、「Caldera」データセットに含まれるホテルのステージをレンダリングしたところ、0.15では約30FPSで動作したのに対し、0.16では約101FPSを記録したと報告している(画像はニュースリリースより引用)
Entity同士の関係性を管理できるComponent「ECS Relationships」
従来、Entity同士をリンクするためには親子関係の設定が必要でしたが、この方法は拡張性が低く再利用に適さないといった欠点を有していたとのこと。
バージョン0.16より、Entity同士の関係性を定義するComponent「ECS Relationships」が導入。親子関係に限らず多彩な関係性をユーザーが独自に定義できます。
Entityを無効化するComponentが導入
Entityを無効化できるComponent「Disabled」が導入されました。無効化されたEntityはシステムやクエリから検知されなくなります。
併せて、無効化されたEntityのみを取得するクエリフィルタも実装。なお、DisabledによりEntityを無効化した際、その子など関連するEntityは無効化されません。
アップデート内容に関する詳細は、ニュースリリースやGitHubをご確認ください。
「Bevy 0.16」Bevy Engine公式サイト「Bevy Engine」GitHubリポジトリ