🦀
ゲームエンジンBevy【Rust言語】やってみた
まえがき
Rust言語が人気といわれて数年経つと思いますがさわってみようと調べていたら
Bevyというゲームエンジンもあるようなので一緒にさわってみました。
使用環境
・Windows 11 (24H2)
・Rust 1.85.1 (edition:2024)
・Bevy 0.15.3
Rust環境のインストール
Playgroundというインストールなしでブラウザ上で実行できる環境もあります。
BevyはRust言語で開発するためまずはRust環境をセットアップします。
- 以下から「RUSTUP-INIT.EXE(64-BIT)」をダウンロードしてインストールします。
- エディタはVSCodeにRust拡張機能(rust-analyzer)が用意されているため一緒にインストールすると便利です。
プロジェクトフォルダの作成
- Rust環境と一緒に
Cargo
という構築システムがインストールされます。これを使用すると開発するためのプロジェクトフォルダを作成してくれます。
ターミナルから実行("bevy_test"は作成するプロジェクトフォルダ名です)
cargo new bevy_test
- プロジェクトフォルダ内に
Cargo.toml
というファイルが生成されていますが、Bevyエンジンを使用するためこのファイルに以下を追加します。
Cargo.toml
[dependencies]
bevy = "0.15.3"
- cargoコマンドによりデフォルトのRustのソースコード(bevy_test/src/main.rs)が生成されているので、以下のコマンドでビルドして実行までできれば環境が整ったことになります。
ターミナルから実行
cargo run
Bevyでのプログラミング
ここまででBevyエンジンで作成する環境が整いましたので生成されたmain.rsを書き換えてみます。
「Hello world」の表示
コンソールに出力されます。
main.rs
use bevy::prelude::*;
fn main() {
App::new()
.add_systems(Startup, hello_world_system)
.run();
}
fn hello_world_system() {
println!("Hello world");
}
ウィンドウの表示
これだけで表示できてしまいます。
main.rs
use bevy::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.run();
}
スプライトの表示
PNG画像を以下に配置しておきます。
プロジェクトフォルダ/assets/bevy_bird_dark.png
main.rs
use bevy::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_systems(Startup, setup)
.run();
}
fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
commands.spawn(Camera2d);
commands.spawn(Sprite::from_image(
asset_server.load("bevy_bird_dark.png"),
));
}
Discussion