世界を動かす技術を、日本語で。

Bevy 0.20

2026年10月9日原文(bevy.org)

概要

Bevy 0.20 がリリースされ、多数の新機能や改善が追加。 Solariレンダラー の高速化とmacOS対応、 BSN構文の簡素化 などが大きな特徴。 UIウィジェット の拡充や WESLシェーダー言語 の正式採用も実現。 移行ガイド や詳細な新機能一覧が公式ドキュメントで提供。 開発者とコミュニティの協力による オープンソースゲームエンジン の進化。

Bevy 0.20 リリース概要

  • 227人のコントリビューター、 817件のプルリクエスト、 多くのコミュニティレビュワー、 寄付者 の協力によるリリース
  • Bevy はRust製の シンプルかつデータ駆動型のゲームエンジン
  • crates.io で公開、 GitHub でソースコード取得可能、 オープンソース として永久無料
  • クイックスタートガイド や Bevy Assets でプラグイン・学習リソースを提供
  • 既存アプリやプラグインの移行 は 0.19→0.20移行ガイド 参照

主な新機能と改善点

  • Solariリアルタイムパストレースレンダラー の高速化・高精度化・macOS(Metal)対応
  • BSN(Bevy Scene Notation)構文 の大幅な簡素化・可読性向上
  • Readyイベント によるシーン生成完了時のフック追加
  • Bevy Feathers UIツールキット に新ウィジェット(カラー入力、スクロールリスト、ドロップダウン、LazyMenu、NumberInputドラッグ対応、ヘッドレスタブ)追加
  • WESLシェーダー言語 の正式採用によるシェーダー開発体験の向上
  • 2D/3Dマテリアル拡張、 カスタムスプライトマテリアル 作成対応
  • Pan Orbit Camera によるCADライクなシーン操作

SolariとDLSSのアップデート

  • Solari の全体的な最適化による CPUコストの大幅削減
  • ReSTIR の実装改善でライティング精度向上、 動的オブジェクトの影の遅れ・反射のちらつき 低減
  • ReSTIR をデフォルトでオフ化、必要に応じて SolariLighting::restir で再有効化
  • DLSS-RR 4.5 対応による ノイズ除去品質の大幅向上
  • Atmosphere/EnvironmentMapLights のカメラライティング対応、macOSでの動作(MetalFX Ray Reconstructionによる今後のノイズ除去検討中)

BSN構文改善

  • @プレフィックス 必須化でシーン参照の明確化
  • template_valueラッパー廃止 で記述量削減
  • Enum の互換性向上(VariantDefaults不要、Default/Clone必須、全フィールド指定必須)
  • ビルダーパターンやメソッドチェーン でのラッパー不要化
  • リスト構文 の簡素化(区切りに「--」を採用、過剰インデント・ノイズ解消)
  • bsn_list! では{}推奨、[]や()は非推奨

Readyイベントの追加

  • シーン生成完了時 (全子孫エンティティ生成後)に Readyイベント を発火
  • 独立性・再利用性の高いシーン構築 や 外部シーン表現との連携 が容易に

UIウィジェットの拡充(Bevy Feathers)

  • Color Input :カラーピッカーウィジェット(カラーホイール、RGB/HSL、履歴付き)
  • List View / Scrollbar :スクロール可能なリスト表示
  • Dropdown Selection :選択肢をドロップダウンで表示
  • Lazy Menu :開閉時のみメニュー生成/破棄する効率的なUI
  • Number Input :ドラッグ対応、ハード/ソフトリミット、精度・ステップ調整可能
  • ヘッドレスタブ :外部管理型タブリスト、キーボードショートカット・アクセシビリティ対応

WESLシェーダー言語の正式採用

  • WESL は WGSL拡張の標準言語 で、モジュール・インポート・条件コンパイルなどをサポート
  • 独自WGSL方言 を廃止し、 WESLコミュニティ と連携してエコシステム・ツール開発を推進
  • WESL Playground でブラウザ上のシェーダー実験が可能

まとめ

  • Bevy 0.20 は パフォーマンス・利便性・拡張性 の全方位で進化
  • 公式ドキュメント・移行ガイド を活用して最新機能を体験
  • オープンソースコミュニティ の協力による継続的な発展

Hackerたちの意見

https://taintedcoders.com/ が0.20にアップデートされたよ。

└

これが自分の頼りにしてるリソースだよ。

偶然にも最近、Bevyや他のエンジンを見てたんだ。Bevyはライブラリがモジュール化されるように考えられてるみたいだけど、始めるのがすごく難しい。まだビルドすらできてないし。

└

そうそう、すごくよくデザインされてるし、モジュール性のおかげでエディタ(例えば、jackdaw)やLLM支援のコーディングにも対応できてるね。

└

「今のところ、始めるのがすごく難しい。ビルドすらできてない。」 自分はLinux、macOS、Windowsどれでもそんな経験はなかったけど、どんなエラーが出てるの?Bevyはある程度モジュラーだけど、同時に結構結合されてる部分もあるよ。bevy_ecsだけを使うこともできるし、他のものも単独で使えるけど、多くは他の部分も使うことを前提にしてるみたい。とはいえ、レンダラーを除いたすべてを使ってるゲームもあるみたいだから、ある意味ではモジュラーだね。

Bevyチームは素晴らしい仕事をしてるし、常に進化してるのを見るのはいいね。自分はゲーム開発者じゃないけど、シミュレーションを作ってる会社の求人に載ってるのを見ると興味深い。

最近、楽しみでBevyを学んでるんだけど、めちゃくちゃ楽しいよ。彼らは頻繁に破壊的な変更を導入してるけど、重要なことに対処するためだと思う。今のところ商業製品に使うにはまだ未熟すぎるけど、クールなアーキテクチャに惹かれる自分としてはそう思う。

└

0.2のバージョン番号って、普通は大きな変更があるってことを意味するよね。商業プロジェクトにはまだ使えないって感じ。

このリリースには素晴らしいものがいくつかあるよ。自分はレンダリングコードを少し貢献したんだけど、特にCPU上でレンダラーをO(変更されたエンティティの数)に減らすことができたのが、リリースノートには載ってなかった。だけど、BSNの構文は良くないし、どんどん悪化してると思う。シジルが多すぎるし、リスト要素を分けるために「--」を使うのは、設計が行き詰まってる証拠だよ。LR(1)じゃないっていうのは、設計ミスのサインだったはず。シーンフォーマットはエディタ優先で再設計されるべきで、VCSのマージのしやすさが最重要な考慮事項であるべきだね。

└

デザインがどうやって決まったのか気になって、この問題で話されているトレードオフを見つけたんだ。個人的には、エンティティとコンポーネントを区切るのにセミコロンとカンマの組み合わせを使うアイデアが好きだったんだけど、まあ、ダブルダッシュにも慣れるしかないかな。[0]: https://github.com/bevyengine/bevy/issues/25616

└

Bevyでのあなたの仕事が大好きです。あなたのハンドルを基にPRリストをフィルタリングして、どんな大きなグラフィックやパフォーマンスの作業をしているのか見てるよ。残念ながら、BSN構文についてはあなたに同意するけど、トレードオフの問題だと思う。今後しばらくは後方互換性を壊す変更は避けられないと思うから、次のリリースで構文を改善するために何ができるか気になるな。自動フォーマットの構文には特に期待してる。構文の見た目や感じも大事だけど、コードベース全体の一貫性の方がもっと大事だよね。

└

Dioxusがrsxでやってることと似たような感じだね!でも、最初は0.19でリリースされて、今回のリリースで大きな改善があったみたい。どれくらい普及するか楽しみだな。

Hacker Newsで議論の続きを見る