これまで以上に簡素化された Android ゲームの最適化

3 年ほど前、Arm の開発チームは画期的な事実に気づきました。モバイル向け CPU と GPU を開発するための人気で高度な Arm ツールは、グラフィック アプリケーションの開発とパフォーマンス分析に貴重な洞察をもたらしました。しかし、それらをゲーム業界で導入するには、多くの問題がありました。開発者によると、ゲームスタジオ全体でパフォーマンス分析のエキスパートは人材不足とされているため、パフォーマンス分析の分野で特に問題がありました。そのなかでも、ゲーム業界では、テクニカル アーティストにツールを提供し、可能な限り多くの Android デバイスにおけるグラフィック パフォーマンスに関する早期かつ頻繁なテストを行いたいという要望があることが明らかになりました。そこで、Arm では、Arm Mobile Studio を構築するプロジェクトに着手しました。これは、システム全体で処理されたアクティビティを明らかにし、基盤となるハードウェアを最大限に活用することにより、パフォーマンス分析のエキスパートではない場合でも、モバイル ゲームの効率を予測および改善できるツール スイートです。

Arm Mobile Studio は 2019 年 3 月に GDC (Game Developers Conference) でリリースされ、ゲーム開発者向けの無料ツールとしての認知度や普及率が向上し、フィードバックを集計できました。Arm 社では、これらのパートナーからのフィードバックを反映した 3 つの約束をしました。1 つ目の約束は、ツールの継続的な改善により、使いやすさや効率的なワークフローを実現することです。2 つ目は、ツールを超えて、ゲームの開発者に向けた教育を充実させることです。3 つ目は、主要な開発エンジンである開発環境への貢献です。今回は、これら 3 つの約束について説明したいと思います。

使いやすいツールと効率的なワークフロー

効率的なワークフローを実現する上で成功への鍵を握るのは、パートナーからのフィードバックです。大手ゲーム スタジオの King 社 (キング・デジタル・エンターテインメント) は、モバイル向けのゲーム品質、グラフィックスの忠実度、パフォーマンス、電力効率の水準を引き上げるべく日々開発しています。King 社は Arm Mobile Studio を数か月にわたって広範囲に使用しており、以下ように述べています。

Arm Mobile Studio は、「クラッシュ・バンディクー ブッとび!マルチワールド」でパフォーマンスの最適化を行う機会を特定する作業をサポートしています。Arm Mobile Studio を使用することで、プレーヤーのエクスペリエンスを向上させ、最高クラスのグラフィックスを提供できるようになりました。 

― King 社のスタジオ テクニカル ディレクター Torbjörn Söderman 氏

 

 

このようなフィードバックから、Arm 社のツールが効果的であることが分かりますが、はたして使いやすさはどうでしょうか? 使いやすさを向上することで、開発者は便利な洞察を抽出して活用し、たくさんの恩恵を受けることができます。これは、現在のツールに当てはまるだけではなく、将来、より豊富な機能セットを展開していく際にも当てはまります。

初期のリリースでは、Android デバイスへ接続することはそれほど簡単ではないことを Arm 社では認識していました。現在では、Arm のすべてのツールをプラグアンドプレイで実行できます。USB に接続された Arm Mali™ GPU のテクノロジー上に構築されたチップセットを使用する Arm Mobile Studio でサポートされているデバイスが自動的に検出され、ボタンをクリックするだけでデータのキャプチャを開始できます。また、Streamline の GPU パフォーマンス カウンター テンプレートを改善して、必要なパフォーマンス データを簡単にキャプチャし、視覚化できるようになりました。さらに、シンプルな新しいパフォーマンス バジェットの機能により、開発を通してバジェットを報告したり、バジェットを上回らないように調整したりできます。将来的には、より多くのゲーム開発者向けに、パフォーマンス分析データをより簡単かつ迅速に取得できるようにするための計画がたくさんあります。

Arm Mobile Studio のリリースから 1 年以内に、本スイート製品でおそらく最もユーザー フレンドリーなコンポーネントであるパフォーマンス アドバイザーをリリースしました。Arm コミュニティの間では、このツールのリリースに対する期待がありました。ゲーム開発者は、データ分析を自動化し、時間的制約のあるパフォーマンス分析のエキスパートが生成するには時間が掛かりすぎてしまうであろうレポートを求めていました。下の図は、パフォーマンス アドバイザーから生成される一般的なレポートのスナップチャットであり、多くのパートナーから要求されていたフレームごとのパフォーマンス チャートを含むさまざまなデータを表示します。これは、Arm CPU と Mali™ GPU を搭載したプラットフォームから収集された豊富な技術的パフォーマンスのデータに基づいています。

パフォーマンス アドバイザーは、スイート内の他のツールととても相性が良く、CPU および GPU プロファイラー (Streamline) から収集されたデータに対する正確で簡単なレポートを生成します。このスイートには、OpenGL ES および Vulkan API の呼び出しをフレームごとにトレースするためのツール (グラフィックス アナライザー) も含まれています。パフォーマンス アドバイザーは、継続的インテグレーション (CI) を使用するために 2020 年 3 月に発売された、Arm Mobile Studio の Professional Edition の開発への道も開きました。Professional Edition は、パフォーマンス アドバイザーからのデータの洞察をよりスケーラブルなモデルに適用します。これは、パフォーマンス分析のエキスパートが不足しているために起こるいくつかの問題を対処し、自動化を実現し、効率的に実行できるゲームの開発を支援します。Arm Mobile Studio の Professional Edition は、受賞歴のあるゲーム企業の Wargaming 社を含む、多くの主要なコラボレーターによって広く使用されています。Wargaming 社のテックリードである Busko 氏は、パフォーマンス アドバイザーについて以下のように述べています。

 

 

MS-1 (Wargaming 社) では、積極的に日常業務の自動化に取り組んでいます。パフォーマンス テストは長い間自動化されてきましたが、FPS テストでは特定のビルドでの変更履歴しか分からず、その原因は明らかではありませんでした。原因を特定するには、手動でのプロファイリングが必要でした。
私たちが求めていたものは、FPS が低下した原因を即座に把握するためのテスト レポートでした。内部の軽量 CPU プロファイラーを統合して、CPU で何が起こっているかについての洞察を得ていますが、自動テストでは GPU はブラック ボックスのままでした。ここで Arm Mobile Studio Professional Edition が救済策となりました。Arm Mobile Studio の Professional Edition は、弊社の CI ワークフローにシームレスに統合され、非常に価値のある 2 つの機能が役立ちました。

  1. GPU での変更内容をシンプルかつ包括的な方法で示すパフォーマンス アドバイザー html のレポート
  2. 多くの徹底調査が必要な複雑なケースでは、プロファイラーのキャプチャは、その他のテストラン中のアーティファクトと共にエンジニアを待っています。ローカルでプロファイリングを開始する必要はありません。キャプチャをダウンロードして、Streamline で調査を開始できます。

― MS-1, Wargame 社のテックリード Pavel Busko 氏

 

ツールを超えて、ゲーム開発者の教育を充実させる

使いやすいツールをゲーム開発者に提供してアプリケーションをより効率的にすることは、Arm 社の目的の 1 つであり、パフォーマンスに影響を与える原因に対する一般的な認識レベルを上げています。これには、グラフィックス ハードウェアの操作に関する基本原則、API への影響、およびモバイル ゲーム開発に固有するその他の課題に関する教育も含まれます。教育用コンテンツを定期的なフローでリリースし、Mali™ GPU アーキテクチャの基礎、API のベスト プラクティス、便利なツールとワークフローを取り入れるためのアドバイスといった 3 つの主なテーマについて展開しました。これらの教材は、開発者がグラフィックスを最適化するときに、これらの理論を実践する際にツールがどのように役立つかを説明しています。ゲームとグラフィックス (英語) および Arm Mobile Studio の製品ページは、すべての教育用コンテンツにおける最新んの情報に常にアクセスできる 2 つの優れたリソースです。また、Arm では個々のゲーム スタジオに合わせたトレーニングを定期的に提供しています。このアプローチは、最も効果的な学習体験を提供し、テクニカル アーティストは、グラフィックスの効率や最適化する箇所についてなどのゲーム固有のアドバイスを得ることができます。チームでのトレーニング セッションをご希望の場合は、お問い合わせフォームからご連絡ください。

 

 

ツールのトレーニングは、新しいゲームにおけるいくつかの一見小さな設計上の判断により、フレームレートとデバイスの消費電力に大きな影響を与える可能性があることを理解するのに役立ちました。また、貴重な時間を割り当てて、今後の自動テストのために適切な情報がすべてそろっていることを確認し、ビルド パイプラインを強化することができました。
Nordeus 社のソフトウェア エンジニア Djordje Djurdjevic 氏

開発環境への貢献

大半のゲーム開発者にとって、ゲームを最も直感的に最適化するための理想的な方法は、開発環境を離れることなく最適化することです。Arm 社は、これを実現するために、いくつかの最も人気のある開発エンジンと協力して最適化に取り組んでいます。一例として、Arm は 2019 年 8 月に Unity 社とパートナーシップを結び、デフォルトで 10 億を超える Arm 搭載モバイル デバイスのゲームのパフォーマンスを向上させました。Arm 社のツール チームは、Unity 社とのパートナーシップにより、開発者に向けた一般的な教育についてもさまざまなテーマで範囲を拡大し、Unity 社のパートナー ページ (英語) やその他のチャンネルからアクセスできるようになりました。

ただし、ここでのもう 1 つの重要な目標は、Unity ユーザーが Unity エンジンとツールを通して、Arm のパフォーマンス分析に関するリソースと専門知識をシームレスに利用できるようにすることです。実際、Arm Mobile Studio の機能と使いやすさの改善により、Unity エンジンで作業する Unity 開発者にとって最も単純なワークフローが提供されます。

ゲーム業界で成功するには

 

Arm Mobile Studio との提携により、ハードウェアのパフォーマンスを効率的に最大限引き出す方法に関する詳細な洞察を利用でき、芸術的なビジョンを実現できました。すばらしいのは、ロードマップとツールについて信頼できる洞察や、コンテンツの高まる需要を賄うための自信を得ることができる点です。
― King 社のスタジオ テクニカル ディレクター Torbjörn Söderman 氏

Arm 社は、ゲーム開発者を念頭に置いて設計されたツール スイートの開発において、真の成功を収めています。ゲーム開発者は、パフォーマンスの洞察に簡単にアクセスでき、データを CI にプラグインして分析を継続的かつスケーラブルにすることができるため、効率が大幅に向上したと報告しています。Arm 社では、ユーザーの本質的な働き方に沿った最適化ツールとワークフローを提供するために開発を続けていきます。また、ツールとアドバイスの両方を活用して、ゲーム スタジオにおけるパフォーマンス分析の専門家の枠を超えて開発者にリーチするという目標についても継続します。現在、Arm では Frame Advisor と呼ばれるツールの新機能の開発に取り組んでいます。この機能は、開発チーム全体にフレームごとのパフォーマンスの視覚化と、エクスポート可能なレポートを提供します。今後も継続して取り組んでいきますので、Frame Advisor のベータ テストへの参加をご希望の場合は、こちらの CC フォームよりお問い合わせください。

新しい機能が利用可能になるまでの間、Arm Mobile Studio をダウンロードいただくことをお勧めします。

モバイル ゲームに新しい高度なテクノロジーを統合することで、将来的に新たな課題が出てくるため、最適化の必要性はさらに高まります。ゲーム業界全体において協業や限界への挑戦に取り組むことで、さらに高いパフォーマンス レベルを達成でき、将来的にはより最適なゲーム体験を提供できます。

Arm Mobile Studio を入手する

継続的インテグレーションのワークフローにパフォーマンス解析プロセスを組み込むことができる Arm Mobile Studio Professional Edition は、30 日間無償でお試しいただけます。

Arm Mobile Studio の詳細は、こちらの製品ページからご確認ください。

30 日間無償評価版は、こちらからダウンロードできます。


この記事は、Arm 社の Graphics and Gaming Blog に公開されている「Optimizing Android games has never been easier」の日本語参考訳です。

タイトルとURLをコピーしました