独立系ゲーム開発者向けツールとしてのインテル® INDE

同カテゴリーの次の記事

DirectX* 11 のイメージ処理における高速フーリエ変換

この記事は、インテル® デベロッパー・ゾーンに公開されている「Intel® INDE as a Tool for Independent Game Developers」の日本語参考訳です。


この記事の PDF 版はこちらからご利用になれます。

概要

最近のゲーム開発は非常に複雑で困難になっています。開発者は、複数のプラットフォームで製品の「価値が低下する期間」を遅らせるだけでなく、複数の OS バージョンにも対処しなければいけません。システムがますます複雑になる一方、電力がゲームのパフォーマンスで重要な役割を果たすようになっており、単一プラットフォームのゲームを最適化することでさえ、これまでになく困難になっています。しかし、Windows* および Android* デバイスの数は膨大であり、その潜在的なリターンも大きなものです。

この記事では、2014 年にリリースされたクロスプラットフォームのツールスイート、インテル® Integrated Native Development Experience (インテル® INDE) を利用して、Windows* および Android* デバイス上でネイティブ・パフォーマンスで動作する非常に優れたゲームを迅速かつ容易に作成する方法を説明します。インテル® INDE には、アプリケーション開発に必要となる、迅速な環境セットアップと Android* への統合、各プラットフォーム用に最適化された一般的な関数の複数のライブラリー、優れた C/C++ コンパイラー、デバッグツール、解析ツールおよび最適化ツール (インテル® グラフィックス・パフォーマンス・アナライザー (インテル® GPA) がバンドルされています。

インテル® INDE を活用すると、最終的に魅力的なゲーム体験にプレイヤーを没入させる優れたゲームを作成できます。

はじめに

ゲーム開発者は、増大するプラットフォームで商品化に要する時間の短縮に役立つツールを求めています。クロスプラットフォーム開発キットは便利ですが、各プラットフォームのパフォーマンスを引き出すことは容易ではありません。インテル® INDE は、開発者がより広い顧客層 (Android* と Windows* の両方) に到達できるように支援します。また、最適化されたライブラリーとパフォーマンス・ツールにより、魅力的なゲーム体験を実現できます。そのパフォーマンスで、より高速でより一貫したフレームレートを実現できるかもしれません。また、地形をより現実的にしたり、ゾンビ (!) の数を 2 倍にして、ターゲットとしているプラットフォームに関係なく、魅力的なゲーム体験を提供できるかもしれません。つまり、競合がひしめく市場では、ほかの製品とは異なる優れたゲームを提供し、市場で優位に立つことが成功の鍵であるということです。

現在では、多くのゲーム開発者がゲームエンジンを利用して開発を行っていますが、その場合でも、インテル® INDE (特に、インテル® INDE の一部となったインテル® GPA ツールスイートで提供されるデバッグツールと最適化ツール) は大いに役立ちます。インテル® INDE とゲームエンジンの使用については、このシリーズの別の記事で説明します。

独立系ゲーム開発者とインテル® INDE

独自のゲームエンジンを使用する場合のワークフローは、Epic の Unreal Engine* や Unity* のようなゲームエンジンを使用するワークフローとは異なります。独立系ゲーム開発者は、すべてのパフォーマンスを引き出すには、既成のゲームエンジンに含まれていない特別な関数や機能を追加して、システムを「微調整」することが最良の方法であると考えているため、ゼロからあらゆることを行おうとします。

その場合の主な課題は、迅速に環境をセットアップして、ゲームのコーディングとテストを行い、できるだけ多くのプラットフォーム用に最適化することです。インテル® INDE には、この開発ワークフローの重要な部分をカバーするツール (セットアップ、クロスプラットフォーム・ユーティリティー・ライブラリー、デバッグツール、最適化ツール) が含まれています。

Windows* 向けのゲームを開発していて Microsoft* Visual Studio* を IDE として使用する場合、インテル® INDE をインストールする前に Microsoft* Visual Studio* をインストールしてください。Android* 向けのゲームを開発している場合、IDE の選択肢は、Microsoft* Visual Studio*、Android Studio*、Eclipse* になります。インテル® INDE のインストール時に、選択したインストール・オプションに基づいて、IDE と必要なコンポーネントがインストールされます。Microsoft* Visual Studio* を選択した場合、IDE はインストールされず、インテル® INDE コンポーネントのインストール (統合) のみ行われることに注意してください。

次のステップは、プロジェクトを作成して使用するインテル® INDE ライブラリーを選択することです。インテル® INDE には、開発およびターゲット・プラットフォームに応じて選択できる、さまざまなクロスプラットフォーム・ライブラリーが用意されています (このリンクを参照)。これらのライブラリーは各インテル® プラットフォーム用に高度に最適化されており、記述するコードが短くなるだけでなく、より優れた/高速なコードを生成できます。

ゲーム開発者にとって最も興味のあるインテル® INDE ライブラリーは、インテル® インテグレーテッド・パフォーマンス・プリミティブ (インテル® IPP) やインテル® スレッディング・ビルディング・ブロック (インテル® TBB) のようなライブラリーでしょう。インテル® IPP は、一般的な信号/画像処理、コンピューター・ビジョン、データ圧縮、暗号化、ストリング操作、オーディオ処理、ビデオ・コーディング、リアリスティック・レンダリングと 3D データ処理を含む、さまざまなユーティリティー関数の共通 API を提供します。インテル® IPP はインテル® ストリーミング SIMD 拡張命令 (インテル® SSE) とインテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 命令セットを使用して高度に最適化されているため、最適化コンパイラー単独で生成した場合よりも高速なアプリケーションを生成できます。ゲーム開発を行っているのであれば、コードを自分で作成したよりも開発時間とデバッグ時間の両方を短縮できるインテル® IPP ライブラリーを考慮してみる価値はあります。インテル® TBB は、プラットフォームの複数の CPU を活用できるように、スレッド作成と管理にランタイムベースの並列プログラミング・モデルを提供します。複数の CPU 向けのゲームを構築する手法を含む、インテル® TBB のスレッド化手法の詳細は、この記事を参照してください。

次に、Windows* と Android* ターゲットの両方でインテル® ベースのシステム用に最適化される、クラス最高のコンパイラー、インテル® C++ コンパイラーでアプリケーションをビルドします。行列やベクトル演算 (SIMD を含む) を使用するゲームでは、コンパイラーが提供するプラットフォームに応じた最適化の恩恵を受けることができます。ARM* ベースのデバイスをターゲットにしている場合は、インテル® INDE 内のそれらのデバイス向けの GCC* コンパイラーを使用します。

Android* 向けのゲームの基本機能が動作したら、インテル® INDE の Graphics Frame Debugger を使用してゲーム資源や外観 (グラフィックス・プリミティブなど) をデバッグします。例えば、各描画呼び出しをステップ実行し、オブジェクトの座標とデプスバッファーを調べて、意図したとおりにオブジェクトがシーンで表現されていることを確認します。また、ゲームで使用されている OpenGL* ES 拡張が複数のプラットフォームで利用できるかどうか確認できます。多くの開発者は、インテル® バーチャライゼーション・テクノロジー (インテル® VT) を使用してインテル® ホストマシン上でアプリケーションのエミュレーションを高速化する、ハードウェア支援による仮想エンジン (ハイパーバイザー)、インテル® Hardware Accelerated Execution Manager (インテル® HAXM) についてご存じでしょう。さまざまな OS バージョンとハードウェア構成 (潜在的に異なる OpenGL* ES 実装を含む) で、テスト手法の一部としてインテル® HAXM を使用してください。すべてのシステムを購入するよりも大幅にコスト効率が良くなります。

ゲームの最終的な解析と最適化には、インテルが 5 年以上前にゲーム開発者向けに開発したツール (System Analyzer、Graphics Frame Analyzer、Platform Analyzer) を使用してみてください。これらのツールは、以前はインテル® グラフィックス・パフォーマンス・アナライザー (インテル® GPA) の一部として提供されていましたが、現在ではインテル® INDE にのみ含まれています。過去 5 年間に開発された収益上位のゲームの多くは、ワークフローの一部としてこれらのツールを使用して作成されました。これらのツールを使用する場合、インテルとこれらの会社の協力により得られる恩恵を活用できます。

  • System Analyzer を使用すると、アプリケーションが CPU 依存か GPU 依存かを確認できます。また、アプリケーションの電力使用量を確認することもできます。
  • Frame Analyzer を使用すると、単一フレーム内のレンダリング問題を、描画呼び出しレベルまたはレンダリング・パイプラインの特定の部分まで分離して、正確に把握することができます。
  • Platform Analyzer は、CPU と GPU の両方にわたりスレッドを視覚的に表現します (マルチ CPU プラットフォームのスレッド問題をデバッグするときに重要)。

これらのツールを使用した DirectX* 最適化のヒントは、この記事を参照してください (少し古い記事ですが、多くの概念は現在でも当てはまります)。Epic* がインテル® GPA を使用して Windows* 向けゲームエンジンをどのように最適化したかについては、この記事を参照してください。Android* の最適化手法については、この記事 (特に、「IA プラットフォームで Android* NDK ベースのゲームを最適化する」セクション) を参照してください。

インテルは、独立系ゲーム開発者の開発ワークフローの重要な局面で役立つさまざまなツールを提供しています。インテル® INDE を使用すると、より速くゲームを開発できるだけでなく、競合相手がひしめく市場で製品の差別化に役立つ、より高速なゲームを開発できます。Android* 上でゲームを開発している場合は、この記事も参照してください。

次のステップ

製品を使用する前に製品の情報が必要です。インテル® INDE の詳細は、製品のホームページを参照してください。さまざまな製品の「エディション」の違いと、Starter エディション (無料) や Ultimate エディションの無料体験版のダウンロード方法が掲載されています。

この 3 月にサンフランシスコで開催される GDC (ゲーム・デベロッパーズ・カンファレンス) に参加される方は、是非インテルのプレゼンテーションをチェックしてください (一部のプレゼンテーションは著名ゲーム・デベロッパーと共同で行われます)。インテル® INDE のブースでは、最新バージョンのさまざまなパフォーマンス解析ツールと最適化ツールを紹介します。是非お立ち寄りください。

このシリーズのほかの記事では、優れたゲームを迅速かつ容易に開発できるようにインテル® INDE が開発者をどのように支援しているか詳細に説明しています。是非お読みください。現在は、Unity* や Epic の Unreal* のような商用ゲームエンジンを使用している場合にインテル® INDE がどのように役立つかを示す記事に取り組んでいます。

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください

関連記事