Rustでコードを書くゲームエンジンのBevyを使ってインベーダーゲームを作る動画を紹介

2022年12月14日(水)
ゲームエンジンBevyとRustでインベーダーゲームを作る動画を紹介する。

Rustはメモリーセーフを目指すシステムプログラミングとして知られているが、用途はそれだけに限らない。今回は、Rustがゲームにも使えるプログラミング言語であることを、インベーダーゲームを作りながら解説する動画を紹介する。これはBevyというゲームエンジンを利用して開発するもので、RustのマスコットであるFerrisがシューターとして、ランダムに飛来してくるインベーダーをレーザーで攻撃して撃墜するというゲームだ。

動画は1時間20分程度という長さであるが、ゲーム開発の手法のひとつであるEntity Component System(ECS)によって徐々にゲームの要素を組み上げていくという内容になっている。ソースコードの構造はゲームの要素であるシューターをPlayer、インベーダーをEnemy、シューターが使うレーザー光線をLaserなどに分離して、それぞれ属性やロジックを組み上げていくという内容になっており、ゲーム開発をしたことがないエンジニアにとっても理解しやすい内容になっている。

動画:Bevyのチュートリアル:Rust Bevy Full Tutorial - Game Development with Rust

タイトルは「Rust Bevy Full Tutorial - Game Development with Rust」というもので、Bevyの0.8というバージョンを使って解説している。解説を行っているのはJeremy Chone氏だ。

Chone氏は他にも、Rustを使ってデスクトップアプリを開発するTauriの解説やWebアプリを作る解説なども公開しているので、興味がある場合は公式ページを参照されたい。

公式ページ:https://jeremychone.com/

Rustを使ってゲームを作るチュートリアル

Rustを使ってゲームを作るチュートリアル

前述の通り1時間以上もある動画ではあるが、以下のようにゲームのどの部分を書いているのかを順を追って解説しているので、わかりやすいだろう。何よりもECSによってロジックとゲームのコンポーネントがキレイに分離されているのがこの動画の特徴と言える。

動画のチャプターリスト。丁寧に章立てがされている

動画のチャプターリスト。丁寧に章立てがされている

最初の約2分のイントロでゲームの概要を理解すれば、後はどうやってそれを組み上げているのかを理解するだけだ。

BevyとRustによってインベーダーゲームの作り方を解説

BevyとRustによってインベーダーゲームの作り方を解説

この動画で使われているBevy 0.8については以下の動画で紹介されているので参照して欲しい。

動画:Bevy 0.8の紹介:Bevy Rust Game Engine Release Version 0.8

ここではマテリアルやシェーダー、カメラを視点とするレンダリングなどの多数の新機能が紹介されている。Bevy 0.8については以下の公式ページを参照されたい。

参考:Bevy 0.8

Bevyのシェーダーについても以下の動画で簡単に紹介されている。

動画:マテリアルシェーダーの解説:Making a material shader in Bevy 0.8

ちなみにBevyのサンプルはWebAssemblyにコンパイルされブラウザー上で安全に実行されるようになっている。

BevyのExamples:https://bevyengine.org/examples/

またゲーム開発ではPCが対象となることが想定されるが、すでにRust 1.64で任天堂Switchがティア3という優先順位ではあるがサポートされているという。

任天堂SwitchがRust 1.64のコンパイラーでサポートされたというツイート

任天堂SwitchがRust 1.64のコンパイラーでサポートされたというツイート

元のツイートは以下を参照。ツイートしたのはRustのLibrary Team LeadのMara Bos氏だ。

GitHubの公式リポジトリーでもマージされている。

GitHubで任天堂Switchサポートが7月にマージされている

GitHubで任天堂Switchサポートが7月にマージされている

なおRust 1.64については以下の動画で解説が行われている。

動画:Rust 1.64の解説:Rust 1.64.0 Release Train

Rust 1.64では、ビルド時のターゲットを複数指定できるという地味ながら便利な機能追加もされていることがわかる。

Cargoビルドで複数のターゲットプラットフォームを指定できるようになった

Cargoビルドで複数のターゲットプラットフォームを指定できるようになった

ゲームという高い性能が要求される領域がRustのターゲットになっていること、よりシンプルなゲームエンジンとしてMacroquadというソフトウェアも公開されていることなどから、ゲーム分野でもメモリーセーフで高速なRustの特徴が評価されていることがわかる。レガシーなコードに囚われずに新規にゲーム開発を行うなら、BevyとRustは候補に挙げるべきだろう。

Macroquadの公式ページ:Macroquad

連載バックナンバー

OSSイベント

Open Source Summit Japan 2022開催。車載からストレージ、Kubernetesまで幅広いトピックをカバー

2023/4/26
2022年12月、横浜でOpen Source Summit Japanが開催された。リアルでは約500名が参加し、車載システムからSBoM、AIまで広範なセッションが行われた。
開発言語イベント

WASM Meetup@ByteDanceで垣間見たWebAssemblyの静かな広がり

2023/4/11
ByteDanceのシリコンバレーオフィスで開催されたWebAssemblyのミートアップを紹介。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています