🦀

ゲームエンジンBevy【Rust言語】やってみた

2025/04/02に公開

まえがき

Rust言語が人気といわれて数年経つと思いますがさわってみようと調べていたら
Bevyというゲームエンジンもあるようなので一緒にさわってみました。

使用環境
・Windows 11 (24H2)
・Rust 1.85.1 (edition:2024)
・Bevy 0.15.3

Rust環境のインストール

Playgroundというインストールなしでブラウザ上で実行できる環境もあります。

BevyはRust言語で開発するためまずはRust環境をセットアップします。

  1. 以下から「RUSTUP-INIT.EXE(64-BIT)」をダウンロードしてインストールします。

https://www.rust-lang.org/ja/tools/install

  1. エディタはVSCodeにRust拡張機能(rust-analyzer)が用意されているため一緒にインストールすると便利です。

https://code.visualstudio.com/
https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer

プロジェクトフォルダの作成

  1. Rust環境と一緒にCargoという構築システムがインストールされます。これを使用すると開発するためのプロジェクトフォルダを作成してくれます。
ターミナルから実行("bevy_test"は作成するプロジェクトフォルダ名です)
cargo new bevy_test
  1. プロジェクトフォルダ内にCargo.tomlというファイルが生成されていますが、Bevyエンジンを使用するためこのファイルに以下を追加します。
Cargo.toml
[dependencies]
bevy = "0.15.3"
  1. 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