Rustでコードを書くゲームエンジンのBevyを使ってインベーダーゲームを作る動画を紹介
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/
前述の通り1時間以上もある動画ではあるが、以下のようにゲームのどの部分を書いているのかを順を追って解説しているので、わかりやすいだろう。何よりもECSによってロジックとゲームのコンポーネントがキレイに分離されているのがこの動画の特徴と言える。
最初の約2分のイントロでゲームの概要を理解すれば、後はどうやってそれを組み上げているのかを理解するだけだ。
この動画で使われている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という優先順位ではあるがサポートされているという。
元のツイートは以下を参照。ツイートしたのはRustのLibrary Team LeadのMara Bos氏だ。
Initial support for the Nintendo Switch has been added: aarch64-nintendo-switch-freestanding as a "tier 3" target.
— Mara Bos (@m_ou_se) September 22, 2022
This doesn't include the Rust standard library, but makes it easier to compile no_std Rust programs for this platform.
14/15https://t.co/1CcpNq9DSe
GitHubの公式リポジトリーでもマージされている。
なおRust 1.64については以下の動画で解説が行われている。
動画:Rust 1.64の解説:Rust 1.64.0 Release Train
Rust 1.64では、ビルド時のターゲットを複数指定できるという地味ながら便利な機能追加もされていることがわかる。
ゲームという高い性能が要求される領域がRustのターゲットになっていること、よりシンプルなゲームエンジンとしてMacroquadというソフトウェアも公開されていることなどから、ゲーム分野でもメモリーセーフで高速なRustの特徴が評価されていることがわかる。レガシーなコードに囚われずに新規にゲーム開発を行うなら、BevyとRustは候補に挙げるべきだろう。
Macroquadの公式ページ:Macroquad
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Valveの新VRヘッドセット「Index」5月1日に予約開始
- 新型の超高解像度VR/ARヘッドセット「XR-1」発表
- RustConfで見えてきたRustプロジェクトが最も大事にする価値とは?
- UEI、オープンソースのHTML5ゲームエンジン「enchant.js」を「Nintendo Web Framework」に対応
- Facebookの新型VRヘッドセット「Oculus Rift S」今春発売 国内価格は49,800円
- Rustで書かれたKubernetesのためのWASM実行環境Krustletとは?
- 任天堂とナイアンティックがARアプリを共同開発へ、第1弾はピクミン
- 新型ヘッドセット「VIVE Cosmos」10月11日に税別約9万円で国内発売
- WebAssemblyを取り巻く最新情報をMeetupから紹介(後半)
- 高速でメモリーセーフなプログラミング言語、Rustの特徴を紹介