この記事の3行まとめ
2023年11月10日(現地時間)、Arete Gamesはゲームエンジン「Arete Engine」のバージョン0.1をリリースしました。
We’ve officially released v0.1 of Arete Engine (and a game demo). Arete Engine is a new type of unified-memory game engine centered on performance.
v0.1 announcement: https://t.co/e7X5yLnRKe
v0.1 download: https://t.co/oR1kw6wTLI
Space Shoot’em up Demo: https://t.co/bA1D0mrNDH pic.twitter.com/YsSOzsyY08
— Arete Engine (@AreteEngine) November 10, 2023
We’ve officially released v0.1 of Arete Engine (and a game demo). Arete Engine is a new type of unified-memory game engine centered on performance.
v0.1 announcement: https://t.co/e7X5yLnRKe
v0.1 download: https://t.co/oR1kw6wTLI
Space Shoot’em up Demo: https://t.co/bA1D0mrNDH pic.twitter.com/YsSOzsyY08
— Arete Engine (@AreteEngine) November 10, 2023
Arete Engineは、Rustベースで開発された2D/3Dゲーム開発向けの汎用ゲームエンジンです。Entity Component System(以下、ECS)(※)を活用しており、ユニファイドメモリを扱う独自のアーキテクチャを特徴としています。
※ 機能単位である「コンポーネント」と、複数のコンポーネントを包含する「エンティティ」を使用する、データ指向に基づくソフトウェアアーキテクチャ
バージョン0.1でサポートされているプログラミング言語は、C、C++、Swift、RustなどのC ABI(※)と互換性のある言語。また、C#もサポート予定です。
※ Application Binary Interface。バイナリレベルでソフトウェアの互換性を保障する規約
Arete Engineでは、一般的なゲームエンジンとは異なり、データがCPUとGPUの両方からアクセスできるユニファイドメモリに保存されます。これにより、フレームごとに実行されていたCPUからGPUへのデータのコピーが不要となります。
公式サイトでは、Unityのデータ指向型技術スタック「DOTS」のチュートリアルデモをArete Engineなどのゲームエンジンで再現した際の実行速度が比較されています。
エンティティのスポーン上限を64,000個に設定した条件下で、GPUカリングのArete Engineが最も早く、1フレームあたり110μsを記録。次いで、CPUカリングのArete Engineが319μs、UnityのDOTSは約6msを記録しています。
また、Arete Engineにはユニファイドメモリを利用した機能「Load Balancing」が搭載予定。フレームごとにCPUとGPUの負荷を鑑みて、タスクをどちらかに振り分けます。これにより、負荷のバランスが改善され、FPSが向上します。
同機能は、ハードウェア構成がまちまちで、ボトルネックがどちらになるか予測できないPCやモバイルなどのプラットフォームで活躍するとしています。
バージョン0.1のリリースに併せ、Arete Engineで制作されたサンプルゲームが2つ公開されています。ひとつは、UnityのDOTS用チュートリアルデモを再現した『Tanks』。もうひとつは、『ギャラガ』や『スペースインベーダー』を参考に制作した『Space』です。
Arete Engineは、学習などの非商用利用であれば無料で利用できます。
商用プロジェクトにおいても、Early Adoption Period (早期採用期間)中は収益が100万ドルを超えるまで無料で利用可能。100万ドル以上の収益を得ている場合は、100万ドルを超える収益に対してのみ1%のロイヤリティが発生します。
なお、追加予定の機能をまとめた開発ロードマップも公開されています。
Arete Engineの詳細はこちら、FAQはこちらをご確認ください。
Arete Engine 公式サイトaretegames / arete-engine|GitHub