bevy - Rust で構築された非常にシンプルなデータ駆動型ゲーム エンジン

(A refreshingly simple data-driven game engine built in Rust)

Created at: 2020-01-19 05:13:55
Language: Rust
License: MIT

群れ

Crates.io MIT/アパッチ 2.0 Crates.io さび iOS cron CI 不和

ベビーとは?

Bevy は、Rust で構築された非常にシンプルなデータ駆動型のゲーム エンジンです。それは永遠に無料でオープンソースです!

警告

Bevy はまだ開発の初期段階にあります。API は変更される可能性があり、変更される予定です (今こそ提案を行うときです)。重要な機能が欠落しています。ドキュメントはまばらです。絶え間ない API の変更によって壊れる覚悟がない限り、Bevy で深刻なプロジェクトをビルドしないでください。

MSRV: Bevy は、Rust 言語とコンパイラの改善に大きく依存しています。その結果、最小サポート Rust バージョン (MSRV) は Rust の「最新の安定版リリース」です。

設計目標

  • 対応可能: 完全な 2D および 3D 機能セットを提供
  • シンプル: 初心者には簡単に習得できますが、パワー ユーザーには無限の柔軟性があります
  • データ重視: Entity Component System パラダイムを使用したデータ指向アーキテクチャ
  • モジュラー: 必要なものだけを使用します。気に入らないものを交換する
  • Fast : アプリのロジックは迅速に実行する必要があり、可能な場合は並行して実行する必要があります
  • 生産的: 変更はすぐにコンパイルされるはずです...待つのは楽しくありません

  • 機能: Bevy の機能の簡単な概要。
  • ニュース: 私たちの進捗状況、計画、輝かしい新機能をカバーする開発ブログ。

ドキュメント

  • The Bevy Book : Bevy の公式ドキュメント。Bevy の学習を開始するのに最適な場所です。
  • Bevy Rust API ドキュメント: Bevy の Rust API ドキュメント。このリポジトリのドキュメント コメントから自動的に生成されます。
  • 公式の例: Bevy の専用の実行可能な例。特定の概念を掘り下げるのに最適です。
  • Community-Made Learning Resources : Bevy コミュニティによって作成されたその他のチュートリアル、ドキュメント、および例。

コミュニティ

コミュニティに貢献したり、コミュニティとのディスカッションに参加したりする前に、行動規範をよく理解してください。

  • Discord : Bevy の公式 Discord サーバー。
  • Reddit : Bevy の公式 subreddit。
  • GitHub ディスカッション: Bevy に関する質問に最適な場所で、ここで答えられます!
  • Bevy アセット:素晴らしい Bevy プロジェクト、ツール、プラグイン、学習教材のコレクション。

Bevy の構築に協力したい場合は、寄稿者ガイドを確認してください。単純な問題については、お気軽にイシューまたは PR を開いて、自分で取り組んでください。

より複雑なアーキテクチャの決定と実験的なマッド サイエンスについては、RFC (Request For Comments) を開いて、効果的に一緒にブレインストーミングできるようにしてください。

入門

完全なチュートリアルについては、The Bevy Bookをチェックすることをお勧めします。

セットアップ ガイドに従って、開発環境が正しくセットアップされていることを確認します。セットアップが完了したら、このレポを複製して次のコマンドを実行することで、サンプルをすぐに試すことができます。

# Switch to the correct version (latest release, default is main development branch)
git checkout latest
# Runs the "breakout" example
cargo run --example breakout

標準機能を有効にしてウィンドウを描画するには、次を使用します。

use bevy::prelude::*;

fn main(){
  App::new()
    .add_plugins(DefaultPlugins)
    .run();
}

高速コンパイル

Bevy は、安定した Rust でデフォルト設定を使用して問題なくビルドできます。ただし、非常に高速な反復コンパイルを行うには、こちらの手順に従って「高速コンパイル」セットアップを有効にする必要があります。

使用ライブラリ

Bevy が可能になるのは、次の基本的なテクノロジに多大な労力が費やされたからです。

  • wgpu : Vulkan に触発された最新の低レベルのクロスプラットフォーム グラフィックス ライブラリ
  • glam-rs : ゲームとグラフィックス用のシンプルで高速な 3D 数学ライブラリ
  • winit : Rust でのクロスプラットフォーム ウィンドウの作成と管理

Bevy貨物の特徴

このリストは、Bevy でサポートされているさまざまな貨物機能の概要を示しています。これらにより、ユースケースに合わせて Bevy 機能セットをカスタマイズできます。

サードパーティのプラグイン

Bevy の機能を拡張するためのプラグインは大歓迎です。統合と使用に役立つガイドラインが用意されています。

感謝と代替案

さらに、 Rust でのゲーム エンジン開発の確かな例を提供してくれたAmethystmacroquadcoffeeggezFyrox、およびPistonプロジェクトに感謝​​します。Rust ゲーム エンジンを探している場合は、すべてのオプションを検討する価値があります。各エンジンには異なる設計目標があり、他のエンジンよりも共鳴するものがあるでしょう。

ライセンス

Bevy は無料で、オープン ソースであり、寛容にライセンスされています。特に明記されている場合を除き (以下および/または個々のファイル内)、このリポジトリ内のすべてのコードは、次のいずれかでデュアル ライセンスが適用されます。

あなたのオプションで。これは、好みのライセンスを選択できることを意味します。このデュアル ライセンス方式は、Rust エコシステムのデファクト スタンダードであり、両方を含める十分な理由があります。

エンジンのコードの一部には、外部からのものであるため、追加の著作権表示とライセンス条項が含まれています。これらは一般的に BSD に似ていますが、正確な詳細はクレートによって異なります: クレートの README に 'License' ヘッダー (または同様のもの) が含まれている場合、そのクレートに適用される追加の著作権通知とライセンス条件が一覧表示されます。上記のライセンス要件は、これらのクレートへのコントリビューションにも引き続き適用され、それらのクレートのセクションにはこれらのライセンス条件が適用されます。各クレートのライセンスフィールドにもこれが反映されます。たとえば

bevy_mikktspace
、Zlib ライセンス (および MIT ライセンスを選択した場合の著作権表示) の下にコードがあります。

このリポジトリに含まれるアセット(サンプル用) は、通常、さまざまなオープン ライセンスに分類されます。これらは (あなたがコピーしない限り) あなたのゲームには含まれず、公開された bevy クレートには配布されません。これらのファイルのライセンスの詳細については、CREDITS.mdを参照してください。

あなたの貢献

明示的に別段の定めがない限り、Apache-2.0 ライセンスで定義されているように、作品に含めるために意図的に提出された寄稿は、追加の条項や条件なしで、上記のようにデュアル ライセンスされるものとします。