Share via


堅牢な Windows ゲームを作成するための主なツールとテクニック

ゲーム ディベロッパー グループ

2006 年 4 月

はじめに

ゲーム製品で直面する望ましくないコストの 1 つが、サポートへの問い合わせです。ユーザーがカスタマー サポートを利用するたびに、ゲームからの利益が減ります。カスタマー サポートへの問い合わせのうち避けられないものもありますが、適切な開発方法を採用することによって排除したり、または減らしたりできるものもあります。サポートへの問い合わせの数を減らすために、この記事で説明するツールとテクニックを使用してください。

ここで説明するツールはすべて無償であり、テクニックはほとんどの開発手法に追加できる簡単なものです。

以下にツールとテクニックを示します。

PREfast

PREfast for Drivers は Microsoft が提供するツールで、コンパイルされた C または C++ の実行パスを分析してランタイム バグの検出を支援します。PREfast はすべての関数のすべての実行パスを調べ、各パスに問題がないかを判定します。このツールは、通常はドライバーやその他のカーネル コードの開発に使用されますが、一部の見つかりにくいバグやコンパイラで無視されるバグを除去することから、ゲーム開発者の時間節約にも役立ちます。

PREfast の使用によって、リリース後の作業量とサポートにかかるコストを削減できます。新しいバージョンの PREfast は、Visual Studio 2005 Team System に同梱されています。

PREfast の詳細については、「PREfast for Drivers」を参照してください。

AppVerifier

Microsoft Application Verifier (AppVerifier) は、テスター向けの複数の機能を 1 つのツールにまとめたものです。AppVerifier は、一般的なプログラミング エラーをより簡単にテストできるように開発されました。AppVerifier では、API 呼び出しに渡されるパラメーターをチェックし、間違った入力を注入してエラー処理機能を確認し、さらにレジストリとファイル システムに対する変更をログに記録することができます。また、AppVerifier はヒープでのバッファー オーバーランを検出し、アクセス制御リスト (ACL) が正しく定義されていることをチェックし、ソケット API が安全に使用されるようにします。

AppVerifier は包括的なツールではありませんが、テスターのツールボックスに入れておけば、開発現場から品質の高い製品をリリースするのに役立ち、リリース後にかかるコストを削減することができます。

AppVerifier の詳細については、「Security Developer Center: Analyzing Your Applications with Windows Application Verifier」を参照してください。AppVerifier は、ダウンロード詳細 : Application Verifier のページからダウンロードできます。

ドライバーに対する同様のツールである Driver Verifier も使用できます。詳細については、「Driver Verifier を使用して Windows ドライバーをトラブルシューティングする方法」を参照してください。

マイクロソフト アプリケーション互換ツールキット

マイクロソフト アプリケーション互換ツールキットは、Microsoft Windows の新しくリリースされたサービス パックで、リリース製品がどのように実行されるかを開発者がすぐに確認できるように補助する無償のツール セットです。新しいサービス パックに対する準備を整えることによって、開発者は問題の回避や、問題に対処する用意ができます。

Application Compatibility Toolkit とその詳細については、「アプリケーション互換性とユーザー アカウント制御」を参照してください。

ユーザー アカウント保護のテスト

Windows Vista には、主に 2 種類のユーザー アカウントがあります。標準ユーザーと管理者です。標準ユーザー アカウントは、悪意のあるアプリケーションによってシステムが損害を受けるリスクが低いため、すべてのユーザーに推奨されるアカウントの種類です。標準ユーザー アカウントには、Program Files フォルダーやレジストリの HKEY_LOCAL_MACHINE (HKLM) に書き込むことができないなどのアクセス制限があるため、標準ユーザー アカウントで動作するようゲームを設計し、テストすることが重要です。

このトピックの詳細については、記事「Windows XP および Windows Vista でのゲーム ソフトウェアの修正プログラムの適用」および「ゲーム開発者向けのユーザー アカウント制御」を参照してください。

PIX for Windows

PIX は、実行しているアプリケーションからパフォーマンスに関する情報を収集して分析するためのツールです。PIX では、一部のフレームが他のフレームよりレンダリングが遅い理由について統計上のデータを収集して、不適切な API の使用方法を特定できます。アプリケーション パフォーマンスについて、ビルドとフラグの日々の急激な変化をテストするよう PIX を自動化することもできます。さまざまなハードウェア構成にわたって PIX を使用することによって、テスターと開発者は、ゲームのパフォーマンスに関するサポートへの問い合わせを最小限に抑えることができます。

PIX の詳細については、「PIX for Windows」を参照してください。

構成の検出

ドライバーが提供するデバイス能力が常に正しいとは限りません。DirectX SDK に含まれるサンプルの ConfigSystem で示されているシステムのように、データベース主導型システムをアプリケーション構成に使用することが、この解決策の 1 つになります。このサンプルと同様の検出モデルを使用すると、ゲームのパフォーマンスの障害となっているデバイス能力を特定することができ、これによって、パフォーマンスに関するサポートへの問い合わせの数を減らすことができます。

すべてのコンパイラ警告の有効化

プロジェクトが安定したら、#pragma warning によって無効になっていたコンパイラ警告を復元することをお勧めします。開発者は、製品をリリースする前に、すべての警告の解決を試みる必要があります。開発者のシステムではクラッシュもエラーも起こさない警告であっても、ユーザーのシステムで問題を引き起こす可能性があります。除去できない警告がある場合、テスト チームは、その警告がユーザーのシステムでエラーを引き起こすのか、それともまったく引き起こさないのかを確認する必要があります。

Microsoft Symbol Server

Microsoft は、Microsoft Windows オペレーティング システムおよびその他の Microsoft 製品にシンボル ファイルを提供する、インターネットからアクセス可能なサーバーを提供しています。このサーバーからは、Windows 製品の現在のベータ版およびリリース候補版、およびホット フィックスとサービス パックに使用するシンボルも入手できます。デバッグ セッションの前に個別にシンボル ファイルをダウンロードするのではなく、デバッグ セッション中に必要に応じてシンボルをダウンロードするようにデバッガーを構成できます。シンボルは、指定したディレクトリの場所にダウンロードされ、デバッガーはその場所からシンボルを読み込みます。

Microsoft Symbol Server の詳細については、「デバッグ ツールとシンボル: はじめに」を参照してください。

Windows エラー報告

Windows エラー報告 (WER) は、開発者がアプリケーションからエラー情報を統一および整理された方法で収集できるようにするための Microsoft が提供するサービスです。このサービスの使用は完全に任意ですが、開発者は、最も頻繁に発生するバグの特定に、このサービスを利用することをお勧めします。WER の使用は、頻繁に報告される問題のデバッグに役立つため、最も一般的なバグに関するサポートへの問い合わせをなくすことにつながります。

WER の詳細については、「クラッシュ ダンプの分析」を参照してください。

パフォーマンス チューニング ツール

開発者は、パフォーマンス アナライザーを使用して、ゲームのパフォーマンスをチューニングできます。PIX のほかに、Intel VTune Performance Analyzer for WindowsAMD CodeAnalyst Performance Analyzer for Windows など、よく使用されている Windows 用のパフォーマンス アナライザーが多数あります。これらのツールは、ボトルネックの特定、およびアプリケーションの全体的なパフォーマンスを向上させる方法の決定に役立ちます。リリース前にパフォーマンスのボトルネックを改善することは、リリース後のコスト削減につながります。

まとめ

設計、開発、およびテストにかかわる人はすべて、自分の作業が製品のリリース後のコストにどれほどの影響を与えるのかを考慮する必要があります。前述のツールおよび方法を作成プロセスで使用することによって、サポートへの問い合わせ件数を減らすことができます。これによって、ゲーム開発のリリース後のコストを削減でき、利益の増加につながります。