https://www.rustfinity.com/tutorials/flappy-rust
これをやる!
Part.7 まで分割する
Part 1 - Setting up the project
https://www.rustfinity.com/tutorials/flappy-rust/setting-up-the-project
https://github.com/umaidashi/flappy-rust/releases/tag/Part.1
Bevy
Bevyについて Bevy は、Rust で構築された最先端のゲーム エンジンで、シンプル、高速、拡張性に優れた設計になっています。Rust のパフォーマンスと安全性の機能を活用して、効率的で安全な開発エクスペリエンスを提供します。 Bevy はモジュール式なので、必要なコンポーネントを選択して、プロジェクトの要件に合わせて高度にカスタマイズできます。 リアルタイム レンダリング、強力なエンティティ コンポーネント システム (ECS)、堅牢なプラグイン アーキテクチャなどの最新のゲーム開発機能をサポートしています。 Bevy はまだ開発の初期段階にあり、このチュートリアルの執筆時点ではBevy 0.14 を使用しているため、互換性の問題を回避するために同じバージョンを使用するようにしてください。
ECS
エンティティコンポーネントシステム (ECS) Bevy の中核となるのは、データと動作を切り離すことでゲーム開発の複雑さを管理するのに役立つ設計パターンである強力なEntity-Component System (ECS)です。 ECS では、エンティティはゲーム ワールド内のオブジェクトであり、データを保持するさまざまなコンポーネントで構成されます。 システムは、これらのコンポーネントで動作するロジックです。この分離により、高度にモジュール化され、再利用できるコードが可能になり、大規模で複雑なゲームの管理が容易になります。 ECS を使用すると、何千ものエンティティを効率的に更新およびレンダリングできるため、スムーズでスケーラブルなゲーム パフォーマンスを実現できます。Bevy の ECS は直感的で効率的に設計されており、定型コードに煩わされることなくゲームの構築に集中できます。
プロジェクトの設定
スターターキットを使用
git clone git@github.com:dcodesdev/bevy-starter.git flappy-rust
Bevy プラグインの作成
use bevy::prelude::*;
pub struct MyPlugin;
impl Plugin for MyPlugin {
fn build(&self, app: &mut App) {
app.add_plugins(DefaultPlugins.set(WindowPlugin {
primary_window: Some(Window {
title: "Flappy Rust".to_string(),
resolution: (800., 512.).into(),
resizable: false,
..default()
}),
..default()
}));
}
}
独自のプラグインを作成するには、構造体を定義して、 Plugin トレイトを実装する
ゲームの起動時に Bevy App が最初に作成されたときにビルド メソッドがトリガーされるメソッドを定義できます。
→build(&self, app: &mut App)