今年、ゲーム開発会話で最も盛り上がったといっても過言ではない話題として、
Unityの新料金体系がありました。
当初、インストール数に対して利用料を徴収される形としていましたが、最終的には
Unity公式が謝罪し、条件緩和の形で収束したという経緯があります。
そのような中で、多くのゲーム開発者が脱Unityの動きを見せており、Unreal Engineなどのゲームエンジンが候補に上がっています。しかし、そのような動きとは全く別方向で大きな発表がありました。
タイトルにある通り、Arete Engineが公表されたのです。
今回はこの新ゲームエンジンであるArete Engineがどのようなものかを紹介しつつ、実際に触っていきます。
Arete Engineとは
Arete Engineは2023年現在、無料で公開されているゲームエンジンです。
Rustベース(Rust-basedなので完全にRust製ではない可能性あり)で開発されており、パフォーマンスや最適化、人間工学にフォーカスしているとのこと。スマホやVRヘッドセット、ノートパソコンなどのユニファイドメモリ上で特に高速動作します。
Arete Engineの特徴
どういった特徴があるかを見ていきましょう。
- とにかく高速
- モダンハードウェアに最適化されている
- ECSアーキテクチャを採用してモジュール分割が容易
- Rustで構築されているがC言語ABI互換性のある言語をサポート可能
- クロスプラットフォーム(パソコン、スマートフォン、VR、M1チップなど)
- フレームタスク依存をグラフ化できる(未実装)
- シンプルなマルチスレッディング
- 実行環境上でのロードバランシング
- 重いAI処理をスタッタリングなしで非同期APIで処理できる(未実装)
この特徴がすべて完備されていると考えると、ゲームエンジンとして非常に有望であると予測されます。
Unityの代替になるのか
現状でUnityの代替になるかと言われれば「No」が回答となります。
歴史の浅さやアーキテクチャ、サポートしている機能の問題というよりも、Unityのゲーム開発環境としての完成度とアセットストアなどのコミュニティが強すぎるという理由です。
Unityが日本で広く使われるようになったUnity 3以後、改良に改良を重ねてきた上に日本語対応済みのUnityなので、やはり強者であることに変わりはありません。ただし、軽量でシンプルなゲーム開発にArete Engineを活用するという未来はあり得ると予想されます。
UnityやUnreal Engineはどうしても大規模開発感が否めませんが、Cocos2d-xのような事例もあるため、今後の
開発ロードマップに期待です。
Arete Engineを触ってみる
何はともあれ、触ってみたい気持ちは満載なので触ってみます。
以下のダウンロードページからダウンロードしてみましょう。
今回はmacOSで試すので、arete-0.1-macos.zip
というファイル名のものをダウンロードしました。
zipファイルを解凍して展開すると、以下のようなディレクトリ構成になっています。
$ tree -L 2
.
├── LICENSE.txt
├── README.txt
├── arete
│ └── game_client
├── arete-cpp
│ ├── arete-codegen
│ └── include
├── arete-ios
│ ├── arete
│ ├── arete-ios
│ └── arete-ios.xcodeproj
├── game-cpp
│ ├── CMakeLists.txt
│ ├── build-ios.sh
│ ├── res
│ ├── run-macos.sh
│ └── src
└── game-rust
├── build-ios.sh
├── game-module
├── res
└── run-macos.sh
まずは実行してみる
今回はC++版で実行します。
game-cpp
ディレクトリに移動し、run-macos.sh
を実行してみましょう。
$ cd arete-0.1/game-cpp
$ ./run-maos.sh
ここで、以下のようなエラーが出たらcmake
をインストールしましょう。
./run-macos.sh:5: command not found: cmake
./run-macos.sh:6: command not found: cmake
cmake
のインストール方法は以下です。(Homebrewを未インストールの人はインストールしましょう)
実行した際に、以下のような画面が出てきたら、システム環境設定→デベロッパーツールで該当のアプリへ許可を追加しましょう。
システム環境設定「プライバシーとセキュリティ」の「デベロッパーツール」
以下のようなゲーム画面が出てきたら完了です。
操作としては以下です。
- キーボードの「A」で左旋回
- キーボードの「D」で右旋回
- キーボードの「W」で前進
- キーボードの「スペース」で発射
開発できそうか
まだドキュメントも整備されていない状態なので、すぐに開発を始められるかといったらかなり苦労するでしょう。
例として、game-rust
ディレクトリを見てみると以下のようになっています。
$ tree
.
├── build-ios.sh
├── game-module
│ ├── Cargo.lock
│ ├── Cargo.toml
│ └── crates
│ ├── arete_public
│ │ ├── Cargo.toml
│ │ └── src
│ │ ├── lib.rs
│ │ └── linalg.rs
│ ├── game_module
│ │ ├── Cargo.toml
│ │ ├── build.rs
│ │ └── src
│ │ └── lib.rs
│ └── game_module_macro
│ ├── Cargo.toml
│ └── src
│ └── lib.rs
├── res
│ ├── cube.glb
│ ├── sphere.glb
│ └── tank.glb
└── run-macos.sh
この中にある
game-module/crates/game_module/src/lib.rs
を見ると、大まかな実装の雰囲気を確認できます。
実際に開発を進めてみたいという人は、
Arete EngineのDiscordやGitHubで情報収集することをおすすめします。
Arete Engineに見るゲーム開発の多様性
直近だと、生成AIの台頭によってゲーム開発のハードルがより下がると予測されていますが、ゲーム開発の世界もピンキリです。
シンプルなゲームから大規模なゲーム、子供向けゲーム開発からプロフェッショナルゲーム開発と、その幅は広く取られています。
このコンテンツの著者である田邉は、過去にUnityを使ったゲーム開発やARアプリ開発に従事していましたが、その頃と比べて抜群に開発環境は向上しています。
その視点から考えると、Arete EngineがRustを採用したこと、ユニファイドメモリ最適化やAIフレンドリーさ(まだ未実装ではあるものの)からさらに発展していくと予想できます。
多様化していくゲーム開発ですが、Arete Engineにもエンドユーザーと開発者、そしてビジネス層に優しいゲームエンジンであり続けてほしいものです。