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/Apache 2.0 Crates.io 錆 iOS cron CI 不和

ビービーとは何ですか?

Bevyは、Rustに組み込まれたさわやかでシンプルなデータ駆動型ゲームエンジンです。それは永遠に無料でオープンソースです!

警告

Bevyはまだ開発の初期段階にあります。APIは変更される可能性があり、今後も変更されます(今こそ提案をする時です!重要な機能が欠落しています。ドキュメントはまばらです。APIの絶え間ない変更によって壊れる準備ができていない限り、Bevyで深刻なプロジェクトを構築しないでください。

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

設計目標

  • 対応可能:完全な2Dおよび3D機能セットを提供
  • シンプル:初心者にとっては簡単に習得できますが、パワーユーザーにとっては無限に柔軟です
  • データフォーカス:エンティティコンポーネントシステムパラダイムを使用したデータ指向アーキテクチャ
  • モジュール式:必要なものだけを使用してください。気に入らないものを置き換える
  • 高速: アプリのロジックをすばやく実行し、可能な場合は並列で実行する必要があります
  • 生産的:変更はすぐにコンパイルする必要があります...待つのは楽しくない

に関しては

  • 特徴:Bevyの機能の概要。
  • ニュース:私たちの進捗状況、計画、そして光沢のある新機能をカバーする開発ブログ。

ドキュメント

  • ビービーブック:Bevyの公式ドキュメント。Bevyを学び始めるのに最適な場所です。
  • Bevy Rust API Docs:このリポジトリのドキュメントコメントから自動的に生成される Bevy の Rust API ドキュメント。
  • 公式の例:Bevyの専用で実行可能な例は、特定の概念を掘り下げるのに最適です。
  • コミュニティが作成した学習リソース:Bevyコミュニティによって作成されたより多くのチュートリアル、ドキュメント、および例。

コミュニティ

コミュニティに貢献したり、コミュニティとのディスカッションに参加したりする前に、私たちの行動規範をよく理解しておく必要があります。

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

Bevyの構築を手伝いたい方は、寄稿者ガイドをご覧ください。 単純な問題については、問題やPRを自由に開いて、自分で取り組んでください。

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

はじめ

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

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

# 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の機能を拡張するために大歓迎です。統合と使用に役立つガイドラインが用意されています。

ありがとうと代替案

さらに、Rustでのゲームエンジン開発の確かな例を提供してくれたアメジストマクロクワッドコーヒーゲズファイロックスピストンのプロジェクトに感謝します。Rustゲームエンジンをお探しの場合は、すべてのオプションを検討する価値があります。各エンジンには異なる設計目標があり、一部のエンジンは他のエンジンよりも共鳴する可能性があります。

ライセンス

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

あなたのオプションで。 これは、お好みのライセンスを選択できることを意味します。 このデュアルライセンスアプローチは、Rustエコシステムの事実上の標準であり、両方を含める理由は非常にあります

エンジンのコードの一部には、外部からの出所により、追加の著作権表示とライセンス条項が含まれています。 これらは一般的にBSDに似ていますが、正確な詳細はクレートによって異なります。 クレートのREADMEに「ライセンス」ヘッダー(または同様のもの)が含まれている場合、そのクレートに適用される追加の著作権表示とライセンス条項が一覧表示されます。 上記のライセンス要件は、これらのクレートへの投稿にも適用され、それらのクレートのセクションにはそれらのライセンス条項が含まれます。 各クレートのライセンスフィールドにもこれが反映されます。 たとえば、bevy_mikktspaceにはZlibライセンスのコードがあります(MITライセンスを選択する際の著作権表示もあります)。

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

あなたの貢献

特に明記しない限り、 あなたが作品に含めるために意図的に提出された貢献、 Apache-2.0ライセンスで定義されているように、 上記のようにデュアルライセンスされるものとします。 追加の利用規約なし。