Windows ゲーム開発ガイド
Windows ゲーム開発ガイドへようこそ。
Note
UWP フレームワークに基づくゲームの開発に時間を費やす前に、UWP がアクティブな開発を行っていないことに注意してください。 さらに、UWP ベースのゲームは Xbox ストアでは受け入れなくなりました。
このガイドでは、ユニバーサル Windows プラットフォーム (UWP) ゲームの開発に必要なリソースと情報のエンドツーエンドのコレクションを提供します。 このガイドの英語 (米国) 版は PDF 形式で入手できます。
ユニバーサル Windows プラットフォーム (UWP) 向けゲーム開発の概要
このガイドは、ゲームの開発時に役立つ情報とリソースのエンドツーエンドのコレクションを提供します。 セクションはゲーム開発の段階に従って編成されているので、必要なときにどこで情報を探せばよいかがわかります。
Windows でのゲーム開発を初めて使用する場合は、「 作業の開始 ガイド」を参照してください。 「ゲーム開発のリソース」セクションでは、ゲームの作成時に役立つドキュメント、プログラム、その他のリソースの概要も示します。 代わりに UWP コードを確認することから始める場合は、「ゲームのサンプル」を参照してください。
ゲーム開発のリソース
ドキュメントから開発者プログラム、フォーラム、ブログ、サンプルまで、ゲーム開発の過程で役立つリソースが数多くあります。 ここでは、Windows ゲームの開発を始めるにあたって役立つリソースをまとめています。
Note
一部の機能は、さまざまなプログラムを通じて管理されます。 このガイドでは幅広いリソースを取り上げているため、参加しているプログラムや特定の開発の役割によっては、一部のリソースにアクセスできない場合があります。 Microsoft との提携の詳細については、「開発者プログラム」を参照してください。
ゲーム開発ドキュメント
このガイド全体を通して、タスク、テクノロジ、ゲーム開発のステージ別に整理された関連ドキュメントへの詳細なリンクが掲載されています。 利用可能なドキュメントのさまざまなビューを提供するために、Windows ゲーム開発用の主要なドキュメント ポータルを次に示します。
Windows デベロッパー センター メイン ポータル | Windows デベロッパー センター |
Windows アプリの開発 | Windows アプリの開発 |
ユニバーサル Windows プラットフォーム アプリの開発 | ユニバーサル Windows プラットフォームのドキュメント |
UWP ゲームの攻略ガイド | ゲームと DirectX |
DirectX リファレンスと概要 | DirectX のグラフィックスとゲーム |
ゲームのための Azure | Azure を使ったゲームの構築とスケーリング |
Azure PlayFab | ライブ ゲーム用の完全なバックエンド ソリューション |
Mixer Interactive のドキュメント | ゲームに対話機能を追加する |
パートナー センター
Windows ゲームの公開に向けての最初の一歩は、パートナー センターで開発者として登録することです。 開発者アカウントでは、ゲームの名前を予約することや、すべての Windows デバイスに対応する無料ゲームと有料ゲームを Microsoft Store に申請することができます。 開発者アカウントを使って、ゲームとゲーム内製品を管理し、詳細な分析を入手し、世界各地のプレーヤーにすばらしいエクスペリエンスを提供するサービスを実現できます。
また、Microsoft は、Windows ゲームの開発と公開を支援するいくつかの開発者プログラムも提供しています。 パートナー センター アカウントに登録する前に、自分にとって適切なものがあるかどうかを確認することをお勧めします。 詳細については、「開発者プログラム」を参照してください
開発者プログラム
Microsoft Store でゲームを公開するには、さらにパートナー センターで開発者アカウントを作成する必要があります。
ゲームのサンプル
Windows ゲームとアプリのサンプルが数多く用意されており、Windows のゲーム機能を理解して、ゲーム開発をすぐに始めることができます。 サンプルは開発され、定期的に公開されるため、ときどきサンプル ポータルをチェックして、新機能を確認することを忘れないでください。 GitHub リポジトリをウォッチして、変更と追加の通知を受け取ることもできます。
ユニバーサル Windows プラットフォームのサンプル アプリ | Windows-universal-samples |
Direct3D 12 グラフィックス サンプル | DirectX-Graphics-Samples |
Direct3D 11 グラフィックス サンプル | directx-sdk-samples |
Direct3D 11 の一人称ゲーム サンプル | DirectX によるシンプルな UWP ゲームの作成 |
Direct2D のカスタム画像効果のサンプル | D2DCustomEffects |
Direct2D のグラデーション メッシュのサンプル | D2DGradientMesh |
Direct2D の写真調整のサンプル | D2DPhotoAdjustment |
Windows ゲームのサンプル (MSDN コード ギャラリー) | Microsoft Store ゲームのサンプル |
JavaScript 2D ゲームのサンプル | JavaScript で UWP ゲームを作成する |
JavaScript 3D ゲームのサンプル | three.js を使って 3D JavaScript ゲームを作成する |
開発者フォーラム
開発者フォーラムは、ゲームの開発に関する質疑応答を行ったり、ゲーム開発コミュニティで交流を深めたりするのに適した場所です。 フォーラムは、開発者が過去に直面して解決した困難な問題に対する既存の答えを見つけるためのすばらしいリソースでもあります。
アプリとゲームの公開開発者フォーラム | 公開とアプリ内広告 |
UWP アプリ デベロッパー フォーラム | ユニバーサル Windows プラットフォーム アプリの開発 |
デスクトップ アプリケーション デベロッパー フォーラム | Windows デスクトップ アプリケーション フォーラム |
DirectX Microsoft Store ゲーム (アーカイブされたフォーラムの投稿) | DirectX を使った Microsoft Store ゲームの構築 (アーカイブ) |
Windows 10 対象パートナー デベロッパー フォーラム | XBOX デベロッパー フォーラム: Windows 10 |
PlayFab フォーラム | PlayFab フォーラム |
開発者ブログ
開発者ブログは、ゲーム開発に関する最新情報を入手できるもう 1 つの優れたリソースです。 新機能、実装の詳細、ベスト プラクティス、アーキテクチャの背景などに関する投稿が見つかります。
Windows 用アプリのビルド (ブログ) | Windows 用アプリのビルド |
Windows 10 (ブログ記事) | Windows 10 の投稿 |
Visual Studio エンジニアリング チームのブログ | Visual Studio ブログ |
Visual Studio 開発者ツールのブログ | 開発者ツールのブログ |
Somasegar の開発者ツールのブログ | Somasegar のブログ |
DirectX 開発者のブログ | DirectX 開発者のブログ |
DirectX 12 の概要 (ブログ記事) | DirectX 12 |
Visual C++ ツール チームのブログ | Visual C++ チーム ブログ |
PIX チームのブログ | Windows と Xbox 上の DirectX 12 ゲームのパフォーマンス チューニングとデバッグ |
ユニバーサル Windows アプリ展開チームのブログ | UWP アプリのビルドと展開チームのブログ |
概念と計画
概念と計画の段階では、ゲームの全体像とそれを実現するために使用するテクノロジやツールを決定します。
ゲーム開発技術の概要
UWP 用ゲームの開発を始める場合、グラフィックス、入力、オーディオ、ネットワーク、ユーティリティ、ライブラリについて複数のオプションが用意されています。
ゲームで使うすべてのテクノロジを既に決定しているのであれば、準備は完了です。 そうでない場合は、「UWP アプリのゲーム テクノロジ」ガイドには、使用できる多くのテクノロジがよくまとまっており、オプションとそれらをどのように組み合わせるかを理解するために役立つので、参照することを強くお勧めします。
UWP ゲーム テクノロジの概要 | UWP アプリのゲーム テクノロジ |
ゲームの計画
これらは、いくつかの高レベルの概念と、ゲームを計画するときに考慮する計画のトピックです。
ゲームをアクセシビリティ対応にする | ゲームのアクセシビリティ |
クラウドを使ってゲームを構築する | ゲーム用のクラウド |
ゲームを収益化する | ゲームの収益化 |
グラフィックス テクノロジとプログラミング言語の選択
Windows ゲームでは、複数のプログラミング言語やグラフィックス テクノロジを使うことができます。 どれを選ぶかは、開発しているゲームの種類、開発スタジオの経験や好み、ゲームの具体的な機能要件によって決まります。 使うのは C#、C++、または JavaScript ですか? DirectX、XAML、または HTML5 ですか?
DirectX
Microsoft DirectX は、最高パフォーマンスの 2D および 3D グラフィックスとマルチメディアを実現するための選択肢です。
DirectX 12 は、以前のバージョンよりも高速かつ効率的になっています。 Direct3D 12 は、より豊かなシーン、より多くのオブジェクト、より複雑な効果を実現し、Windows PC や Xbox One の最新の GPU ハードウェアを十分に活用できます。
Direct3D 11 の使い慣れたグラフィックス パイプラインを使う場合でも、Direct3D 11.3 に追加された新しいレンダリングおよび最適化機能を活かすことができます。 さらに、Win32 をルーツとする実証済みのデスクトップ Windows API の開発者は、Windows ゲーム用にそのオプションを選ぶこともできます。
DirectX の広範な機能と深いプラットフォーム統合により、最も要求の厳しいゲームに必要なパワーとパフォーマンスが提供されます。
UWP 開発用 DirectX | DirectX プログラミング |
チュートリアル: UWP DirectX ゲームを作成する方法 | DirectX によるシンプルな UWP ゲームの作成 |
DirectX の概要とリファレンス | DirectX のグラフィックスとゲーム |
Direct3D 12 プログラミング ガイドとリファレンス | Direct3D 12 グラフィックス |
グラフィックスと DirectX 12 開発に関する動画 (YouTube チャンネル) | Microsoft DirectX 12 とグラフィックスに関する教育 |
XAML
XAML は、使いやすい宣言型 UI 言語です。アニメーション、ストーリーボード、データ バインディング、スケーラブルなベクトルベースのグラフィックス、動的なサイズ変更、シーン グラフなどの便利な機能を備えています。 XAML は、ゲーム UI、メニュー、スプライト、2D グラフィックスに最適です。 UI レイアウトを簡単にするために、XAML は Expression Blend や Microsoft Visual Studio などの設計および開発ツールと互換性があります。 XAML はよく C# と同時に使用されますが、希望する言語が C++ の場合や、ゲームが多くの CPU を必要とする場合は、C++ も適しています。
XAML プラットフォームの概要 | XAML プラットフォーム |
XAML UI とコントロール | コントロール、レイアウト、テキスト |
HTML 5
ハイパーテキスト マークアップ言語 (HTML) は、Web ページ、アプリ、リッチ クライアントに使われる一般的な UI マークアップ言語です。 Windows ゲームでは、HTML の使い慣れた機能、ユニバーサル Windows プラットフォームへのアクセス、AppCache、Web Workers、キャンバス、ドラッグアンドドロップ、非同期プログラミング、SVG などのモダン Web 機能のサポートを備えたフル機能のプレゼンテーション レイヤーとして HTML5 を使用できます。 HTML レンダリングはバックグラウンドで DirectX ハードウェア アクセラレーションの機能を利用するので、追加のコードを記述することなく、DirectX のパフォーマンス上の恩恵を受けることもできます。 Web 開発に熟練している場合、Web ゲームを移植する場合、または他の選択肢よりアプローチしやすい言語およびグラフィックス レイヤーを使う場合は、HTML5 が最適です。 HTML5 は JavaScript と共に使われますが、C# または C++/CX を使って作成されたコンポーネントを呼び出すこともできます。
HTML5 とドキュメント オブジェクト モデルの情報 | HTML と DOM のリファレンス |
HTML5 W3C の推奨事項 | HTML5 |
プレゼンテーション テクノロジの組み合わせ
Microsoft DirectX Graphic Infrastructure (DXGI) には、複数のグラフィックス テクノロジにおける相互運用性と互換性が備わっています。 高パフォーマンスのグラフィックスを実現するため、メニューや他のシンプルな UI には XAML を使い、複雑な 2D および 3D シーンのレンダリングには DirectX を使うことで、XAML と DirectX を組み合わせることができます。 DXGI は、Direct2D、Direct3D、DirectWrite、DirectCompute、Microsoft メディア ファンデーション間の互換性も提供します。
DirectX Graphic Infrastructure (DXGI) プログラミング ガイドとリファレンス | DXGI |
DirectX と XAML の組み合わせ | DirectX と XAML の相互運用機能 |
C++
C++/WinRT はオーバーヘッドの低い高パフォーマンスな言語であり、速度、互換性、プラットフォーム アクセスがうまく組み合わせられています。 C++/WinRT により、DirectX や Xbox Live など、Windows のすばらしいゲーム機能すべてが使いやすくなります。 既存の C++ コードとライブラリを再利用することもできます。 C++/WinRT を使うと、ガベージ コレクションのオーバーヘッドを生じさせない高速なネイティブ コードが作成されるため、ゲームのパフォーマンスが向上し、電力消費が低くなり、結果としてバッテリ寿命が延びます。 C++/WinRT を DirectX または XAML と同時に使うか、両方の組み合わせを使って、ゲームを作成することができます。
C#
C# ("C シャープ" と発音) は、シンプル、強力、タイプセーフ、オブジェクト指向の現代的で革新的な言語です。 C# を使うと、C スタイル言語の使いやすさと表現力を維持しながら、迅速な開発が可能になります。 C# は使いやすい言語ですが、ポリモーフィズム、デリゲート、ラムダ、クロージャ、反復子メソッド、共変性、統合言語クエリ (LINQ) 式など、多くの高度な言語機能が備わっています。 XAML を対象としている場合、ゲームの開発をすぐに始めたい場合、または過去に C# の経験がある場合は、C# が最適な選択肢です。 C# は主に XAML と併用されるので、DirectX を使う場合は、代わりに C++ を選ぶか、ゲームの一部を DirectX とやり取りする C++ コンポーネントとして記述します。 または、C# および C++ 用のイミディエイト モードの Direct2D グラフィックス ライブラリである Win2D を検討します。
C# プログラミング ガイドとリファレンス | C# 言語リファレンス |
Windows ランタイム コンポーネントを使って言語を組み合わせる
ユニバーサル Windows プラットフォームでは、異なる言語で記述されたコンポーネントを簡単に組み合わせることができます。 C++、C#、Visual Basic で Windows ランタイム コンポーネントを作成した後、JavaScript、C#、C++、Visual Basic から呼び出すことができます。 これは、選んだ言語でゲームの一部をプログラムするのに最適な方法です。 コンポーネントにより、特定の言語でのみ使用可能な外部ライブラリや、既に記述しているレガシ コードを使うこともできるようになります。
Windows ランタイム コンポーネントを作成する方法 | C++/WinRT を使用した Windows ランタイム コンポーネント |
ゲームに使うべき DirectX のバージョン?
ゲームで DirectX を使うことを選んだ場合、使うバージョン (Microsoft Direct3D 12 または Microsoft Direct3D 11) を決定する必要があります。
DirectX 12 は、以前のバージョンよりも高速かつ効率的になっています。 Direct3D 12 は、より豊かなシーン、より多くのオブジェクト、より複雑な効果を実現し、Windows PC や Xbox One の最新の GPU ハードウェアを十分に活用できます。 Direct3D 12 は非常に低いレベルで動作するため、専門的なグラフィックス開発チームや経験豊富な DirectX 11 開発チームは、グラフィックスの最適化を十分に活かすために必要となるすべてのコントロールを利用することができます。
Direct3D 11.3 は、使い慣れた Direct3D プログラミング モデルを使う低レベルのグラフィックス API であり、GPU レンダリングに伴う複雑な部分の多くを開発者に代わって処理します。 また、Windows と Xbox One でもサポートされています。 Direct3D 11 で記述された既存のエンジンがあり、Direct3D 12 に移行する準備がまだ整っていない場合は、Direct3D 11 on 12 を使ってパフォーマンスをある程度向上させることができます。 バージョン 11.3 以降には、Direct3D 12 でも有効な新しいレンダリングと最適化の機能が含まれています。
Direct3D 12 または Direct3D 11 の選択 | Direct3D 12 の概要 |
Direct3D 11 の概要 | Direct3D 11 グラフィックス |
Direct3D 11 on 12 の概要 | Direct3D 11 on 12 |
ブリッジ、ゲーム エンジン、ミドルウェア
ゲームのニーズに応じて、ブリッジ、ゲーム エンジン、またはミドルウェアを使うと、開発とテストの時間とリソースを節約できます。 ここでは、ブリッジ、ゲーム エンジン、ミドルウェアの概要とリソースについて紹介します。
Azure PlayFab
Microsoft ファミリの一部となった Azure PlayFab は、ライブ ゲームの完全なバックエンド プラットフォームであり、独立系のスタジオが開発を開始するための強力な手段です。 ゲーム サービス、リアルタイム分析、LiveOps により、コストを削減しつつ、収益、顧客エンゲージメント、顧客維持率を飛躍的に高めることができます。
PlayFab | ツールとサービスの概要 |
作業の開始 | PlayFab とは? |
動画チュートリアル シリーズ | PlayFab のコア システムに関するデモ動画シリーズ |
レシピ | レシピ |
GitHub リポジトリ | Android、iOS、Windows、Unity、Unreal など、さまざまなプラットフォーム用のスクリプトと SDK を入手できます。 |
API ドキュメント | REST API の概要 |
フォーラム | PlayFab フォーラム |
Unity
Unity には、美しく魅力的な 2D、3D、VR、AR のゲームやアプリを作成するためのプラットフォームが用意されています。 クリエイティブな構想をすばやく実現することができ、事実上、あらゆるメディアやデバイスにコンテンツを提供できます。
Unity 5.4 以降、Unity は Direct3D 12 開発をサポートします。
Unity ゲーム エンジン | Unity - ゲーム エンジン |
Unity を入手する | Unity を入手する |
Windows 用 Unity のドキュメント | Unity のマニュアル / Windows |
PlayFab を使って LiveOps を追加する | クイックスタート: Unity の C# 用 PlayFab クライアント ライブラリ |
Mixer Interactive を使ってゲームに対話機能を追加する方法 | ファースト ステップ ガイド |
Unity 用 Mixer SDK | Mixer Unity プラグイン |
Mixer SDK for Unity のリファレンス ドキュメント | Mixer Unity プラグインの API リファレンス |
.NET API に関連するアセンブリ リファレンスが見つからない場合のトラブルシューティング | Unity や UWP で不足している .NET API |
Unity ゲームをユニバーサル Windows プラットフォーム アプリとして公開する (動画) | Unity ゲームを UWP アプリとして公開する方法 |
Unity を使って Windows ゲームとアプリを作成する (動画) | Unity を使った Windows ゲームとアプリの作成 |
Visual Studio を使った Unity ゲーム開発 (動画シリーズ) | Visual Studio 2015 での Unity の使用 |
Havok
Havok のモジュール化された一連のツールとテクノロジによって、ゲーム クリエーターは新しいレベルの対話式操作と没入感を提供できます。 Havok を使うと、非常にリアルな物理演算、対話型のシミュレーション、魅力的な映画を実現できます。 Version 2015.1 以降では、x86、64 ビット、ARM 上の Visual Studio 2015 で UWP を正式にサポートします。
Havok の Web サイト | Havok |
Unreal Engine
Unreal Engine は、あらゆる種類のゲームや開発者に適したゲーム開発ツールがすべて揃ったスイートです。 最も要求の厳しいコンソール ゲームや PC ゲームの場合、世界各地のゲーム開発者は Unreal Engine を使っています。
Unreal Engine の概要 | Unreal Engine |
BabylonJS
BabylonJS は、HTML5、WebGL、WebVR、Web Audio を使って 3D ゲームを構築するための機能がそろった JavaScript フレームワークです。
BabylonJS | BabylonJS |
BabylonJS を使ったクロスプラットフォーム WebGL ゲームの構築 | BabylonJS を使ってクロスプラットフォーム ゲームを開発する |
プロトタイプと設計
作成するゲームの種類と、ゲームの構築に使うツールとグラフィックス テクノロジが決まったら、すぐに設計とプロトタイプを開始できます。 ゲームの中核となるのはユニバーサル Windows プラットフォーム アプリなので、そこから始めます。
ユニバーサル Windows プラットフォーム (UWP) の概要
ユニバーサル Windows プラットフォーム (UWP) は、Windows デバイス間で共通の API プラットフォームを提供します。 UWP を対象とするゲームは、すべてのデバイスに共通の WinRT API を呼び出すことができます。 UWP により保証された API 層が提供されるため、あらゆる Windows デバイスにインストールできる 1 つのアプリ パッケージを作成することもできます。 また、必要に応じて、ゲームが実行されるデバイスに固有の API (Win32 や .NET のいくつかの従来の Windows API を含む) をゲームから呼び出すこともできます。
ユニバーサル Windows プラットフォーム アプリについて詳しく説明した優れたガイドを次に示します。このプラットフォームを理解するために読むことをお勧めします。
ユニバーサル Windows プラットフォーム アプリの概要 | ユニバーサル Windows プラットフォーム アプリとは |
UWP 開発の概要
ユニバーサル Windows プラットフォーム アプリを開発する設定と準備は、短時間で簡単に完了できます。 次のガイドでは、プロセスを段階的に説明します。
UWP 開発の概要 | Windows アプリの概要 |
UWP 開発の準備 | 準備 |
UWP プログラミングのまったくの初心者であり、ゲームで XAML を使うことを検討している場合 (「グラフィックス テクノロジとプログラミング言語の選択」を参照) は、まずまったくの初心者向けの Windows 10 開発動画シリーズをご覧になることをお勧めします。
XAML を使った Windows 10 のまったくの初心者シリーズの発表 (ブログ記事) | 初心者のための Windows 10 の開発 |
UWP 開発の概念
ユニバーサル Windows プラットフォーム アプリ開発 | Windows アプリの開発 |
UWP でのネットワーク プログラミングの概要 | ネットワークと Web サービス |
ゲームでの Windows.Web.HTTP と Windows.Networking.Sockets の使用 | ゲームのネットワーク |
UWP での非同期プログラミングの概念 | 非同期プログラミング |
Windows デスクトップ API と UWP
デスクトップと UWP コード間の相互運用に役立つリンクをいくつか紹介します。
UWP ゲーム開発に既存の C++ コードを使う | 方法: UWP アプリで既存の C++ コードを使う |
Win32 および COM API 用の Windows ランタイム API | UWP アプリ用の Win32 API と COM API |
UWP でサポートされていない CRT 関数 | ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数 |
Windows API の代替手段 | ユニバーサル Windows プラットフォーム (UWP) アプリでの Windows API の代替手段 |
プロセス ライフタイム管理
プロセス ライフタイム管理 (アプリのライフサイクル) は、ユニバーサル Windows プラットフォーム アプリが遷移する可能性があるさまざまなアクティブ化状態を表します。 ゲームはアクティブ化、中断、再開、または終了されることがあり、さまざまな方法でこれらの状態を遷移する可能性があります。
アプリ ライフサイル遷移の処理 | アプリのライフサイクル |
Microsoft Visual Studio を使ったアプリ遷移のトリガー | Visual Studio で UWP アプリの中断、再開、バックグラウンド イベントをトリガーする方法 |
ゲーム UX の設計
優れたゲームは、インスピレーションを受けた設計から始まります。
ゲームは、共通のユーザー インターフェイス要素と設計原則をアプリと共有していますが、ユーザー エクスペリエンスの外観、機能、設計目標が独特であることがよくあります。 ゲームはテスト済みの UX をいつ使う必要があるか、いつ分岐して刷新する必要があるか、という両方の側面に思慮深い設計を適用すると、ゲームは成功します。 ゲーム用に選んだプレゼンテーション テクノロジ (DirectX、XAML、HTML5、またはその 3 つの組み合わせ) は実装の詳細に影響しますが、適用する設計原則はその選択とはほとんど関係ありません。
UX 設計とは別に、レベル設計、ペーシング、ワールド設計、その他の側面などのゲームプレイ設計は、それ自体が 1 つの芸術形式です。これはあなたとあなたのチーム次第であり、この開発ガイドでは取り上げません。
UWP 設計の基本とガイドライン | UWP アプリの設計 |
アプリのライフサイクル状態の設計 | 起動、中断、再開に関する UX ガイドライン |
色のガイドラインとパレット
ゲーム内で一貫した色のガイドラインに従うと、美観が向上し、ナビゲーションが容易になり、メニューと HUD の機能をプレーヤーに知らせる強力なツールになります。 警告、ダメージ、XP、成績などのゲーム要素の色が一貫していると、UI がわかりやすくなるため、ラベルによって説明する必要性が減ります。
色のガイド | Windows 11 の色 |
タイポグラフィ
文字体裁を適切に使うと、UI レイアウト、ナビゲーション、読みやすさ、雰囲気、ブランド、プレーヤーの没入感など、ゲームのさまざまな側面が向上します。
文字体裁ガイド | ベスト プラクティス: 文字体裁 |
UI マップ
UI マップは、ゲーム ナビゲーションとメニューのレイアウトをフロー チャートで表したものです。 UI マップを使うと、すべての関係者が、ゲームのインターフェイスとナビゲーション パスを理解しやすくなり、開発サイクルの初期段階で潜在的な障害や行き詰まりが明らかになります。
UI マップ ガイド | ベスト プラクティス: UI マップ |
ゲームのオーディオ
XAudio2、XAPO、Windows Sonic を使ってオーディオをゲームで実装するためのガイドとリファレンスをここに示します。 XAudio2 は、パフォーマンスの高いオーディオ エンジンを開発するための、信号処理とミキシングの基盤を提供する低水準のオーディオ API です。 XAPO API を使用すると、XAudio2 を使用するクロスプラットフォーム オーディオ処理オブジェクト (XAPO) を、Windows と Xbox の両方で作成できます。 Windows Sonic オーディオのサポートにより、Dolby Atmos for Home Theater、Dolby Atmos for Headphones、Windows HRTF のサポートをゲームまたはストリーミング メディア アプリケーションに追加できます。
XAudio2 API | XAudio2 のプログラミング ガイドと API リファレンス |
クロスプラットフォーム オーディオ処理オブジェクトを作成する | XAPO の概要 |
オーディオの概念の紹介 | ゲームのオーディオ |
Windows Sonic の概要 | 立体音響 |
Direct3D 12
Direct3D 12 の新着情報と相違点 (Direct3D 11 との比較)、Direct3D 12 を使ってプログラミングを始める方法について説明します。
Direct3D 12 プログラミング ガイドとリファレンス | Direct3D 12 グラフィックス |
プログラミング環境を設定する | Direct3D 12 プログラミング環境のセットアップ |
基本的なコンポーネントを作成する方法 | Direct3D 12 の基本的なコンポーネントの作成 |
Direct3D 12 の変更点 | Direct3D 11 から Direct3D 12 への移行に関する重要な変更 |
Direct3D 11 から Direct3D 12 に移植する方法 | Direct3D 11 から Direct3D 12 への移植 |
リソース バインドの概念 (記述子、記述子テーブル、記述子ヒープ、ルート署名について説明します) | Direct3D 12 でのリソース バインディング |
メモリの管理 | Direct3D 12 でのメモリ管理 |
DirectX 開発
DirectX ゲーム開発のガイドとリファレンス。
UWP 開発用 DirectX | DirectX プログラミング |
チュートリアル: UWP DirectX ゲームを作成する方法 | DirectX によるシンプルな UWP ゲームの作成 |
DirectX と UWP アプリ モデルの対話 | アプリ オブジェクトと DirectX |
DirectX の概要とリファレンス | DirectX のグラフィックスとゲーム |
DirectX 12 の基礎 (動画) | 機能の向上、パフォーマンスの向上: DirectX 12 でのゲーム |
DirectX ツール キットとライブラリ
DirectX ツール キット、DirectX テクスチャ処理ライブラリ、DirectXMesh ジオメトリ処理ライブラリ、UVAtlas ライブラリ、DirectXMath ライブラリには、DirectX 開発用のテクスチャ、メッシュ、スプライト、その他のユーティリティ機能とヘルパー クラスが用意されています。 これらのライブラリは、開発の時間と労力を減らすために役立ちます。
DirectX 12 用 DirectX ツール キットを入手する | DirectXTK 12 |
DirectX 11 用 DirectX ツール キットを入手する | DirectXTK |
DirectX テクスチャ処理ライブラリを入手する | DirectXTex |
DirectXMesh ジオメトリ処理ライブラリを入手する | DirectXMesh |
isochart テクスチャ アトラスを作成してパッケージ化するために UVAtlas を入手する | UVAtlas |
DirectXMath ライブラリを入手する | DirectXMath |
DirectXTK での Direct3D 12 のサポート (GitHub の issue) | DirectX 12 のサポート |
パートナーからの DirectX リソース
外部のパートナーによって作成された補足の DirectX ドキュメントを次に示します。
Nvidia: DX12 の注意事項 (ブログ記事) | DX12 の注意事項 (更新されました) |
Intel: DirectX 3D 12 による並列処理 | DirectX 3D 12 による並列処理 |
Intel: DirectX 12 を使った明示的なマルチ アダプターアプリケーションを実装する方法 | DirectX 12 でのマルチアダプターのサポート |
Intel: Suzhou Snail、Microsoft によって共同制作されたホワイト ペーパー | チュートリアル: DirectX 12 へのアプリの移行 - パート 1 |
実稼働
この段階で制作スタジオの準備が整ったら、チーム全体に作業を分散して制作サイクルに移行します。 プロトタイプを磨き、リファクタリングし、拡張して、完全なゲームを作り上げます。
通知とライブ タイル
タイルとは、[スタート] メニュー上でゲームを表すものです。 現在ゲームをプレイしていなくても、タイルと通知を使ってプレーヤーの興味を引くことができます。
タイルとバッジの開発 | タイル、バッジ、通知 |
ライブ タイルと通知を示すサンプル | 通知のサンプル |
アダプティブ タイル テンプレート (ブログ記事) | アダプティブ タイル テンプレート - スキーマとドキュメント |
タイルとバッジの設計 | タイルとバッジのガイドライン |
ライブ タイル テンプレートを対話形式で開発するための Windows 10 アプリ | Notifications Visualizer |
Visual Studio 用 UWP Tile Generator 拡張機能 | 1 つの画像を使ってすべての必要なタイルを作成するためのツール |
Visual Studio 用 UWP Tile Generator 拡張機能 (ブログ記事) | UWP Tile Generator ツールの使用に関するヒント |
アプリ内製品 (アドオン) の購入を有効にする
アドオン (アプリ内製品) は、プレイヤーがゲーム内で購入できる補助アイテムです。 アドオンには、ゲームのレベル、アイテム、プレーヤーを楽しませるその他のものが含まれます。 適切に使用すると、アドオンはゲームのエクスペリエンスを向上させると共に、収益の増加につながります。 パートナー センターでゲームのアドオンを定義して公開し、ゲームのコードでアプリ内購入を有効にします。
永続的なアドオン | アプリ内製品購入の有効化 |
コンシューマブルなアドオン | コンシューマブルなアプリ内製品購入の有効化 |
アドオンの詳細と申請 | アドオンの申請 |
アドオンの売り上げとゲームの人口統計の監視 | アドオン取得レポート |
デバッグ、パフォーマンスの最適化、監視
パフォーマンスを最適化するには、Windows のゲーム モードを活用し、ハードウェアの機能を最大限に活用して、ゲーマーに可能な限りのゲーム エクスペリエンスを提供します。
Windows Performance Toolkit (WPT) は、Windows オペレーティング システムとアプリケーションの詳細なパフォーマンス プロファイルを作成するパフォーマンス監視ツールで構成されています。 これは、メモリ使用量を監視し、ゲームのパフォーマンスを向上させるために特に便利です。 Windows Performance Toolkit は、Windows SDK と Windows ADK に含まれています。 このツールキットは、Windows Performance Recorder (WPR) と Windows Performance Analyzer (WPA) という 2 つの独立したツールで構成されています。 Windows Sysinternals の一部である ProcDump は、CPU のスパイクを監視し、ゲームのクラッシュ時にダンプ ファイルを生成するコマンドライン ユーティリティです。
コードのパフォーマンス テスト | Azure Test Plans |
ゲーム モード API を使ってハードウェア リソースへの排他的または優先的アクセスを取得することでパフォーマンスを向上させる | ゲーム モード |
Windows Performance Toolkit (WPT) を入手する | Windows パフォーマンス ツールキット |
Windows ADK から Windows Performance Toolkit (WPT) を入手する | Windows ADK |
ProcDump を入手する | ProcDump |
高度な DirectX の手法と概念
DirectX の開発には微妙で複雑な部分があります。 運用環境で、DirectX エンジンの詳細を掘り下げる必要がある、または難しいパフォーマンスの問題をデバッグする必要があるという問題が生じたら、このセクションのリソースと情報が役に立ちます。
Windows 上の DirectX 12 のパフォーマンス チューニングとデバッグ ツール | Windows 上の PIX の概要 |
Direct3D 12 プログラミング ガイド | Direct3D 12 グラフィックス |
DirectX と XAML の組み合わせ | DirectX と XAML の相互運用機能 |
ハイ ダイナミック レンジ (HDR) コンテンツ開発
HDR のフル カラー機能を使うゲーム コンテンツを構築します。
HDR コンテンツをレンダリングし、現在のディスプレイでサポートされているかどうかを検出する方法を確認する | Direct3D 12 HDR サンプル |
DirectX を使って高度な色を作成して構成する | Direct2D の高度なカラー画像レンダリングのサンプル |
グローバリゼーションとローカリゼーション
Windows プラットフォーム用の多言語対応ゲームを開発し、Microsoft の有力製品に組み込まれている地域と言語の機能について説明します。
ゲームをグローバル市場に向けて準備する | グローバライズとローカライズ |
ゲームの申請と公開
次のガイドと情報は、公開と申請のプロセスをできるだけスムーズに進めるために役立ちます。
公開
パートナー センターを使用して、ゲーム パッケージの公開と管理を行います。
パートナー センターでのアプリの公開 | Windows アプリを公開する |
Azure Active Directory (AAD) を使用して、ユーザーをパートナー センター アカウントに追加する | ユーザー グループを作成する |
ゲームを評価する (ブログ記事) | 公開中: アプリの申請を簡略化する単一の年齢区分システム |
パッケージ化とアップロード
コンテンツを分割し、グループ化してストリーミング インストールを可能にする | UWP アプリ ストリーミング インストール |
DLC ゲーム コンテンツなどのオプション パッケージを作成する | オプション パッケージと関連セットの作成 |
UWP ゲームをパッケージ化する | アプリのパッケージ化 |
UWP DirectX ゲームをパッケージ化する | UWP DirectX ゲームをパッケージ化する |
サード パーティ開発者としてゲームをパッケージ化する (ブログ記事) | 発行元のストア アカウント アクセスを使わずにアップロード可能なパッケージを作成する |
MakeAppx を使ったアプリ パッケージとアプリ パッケージ バンドルの作成 | アプリ パッケージ ツール MakeAppx.exe を使ってパッケージを作成する |
SignTool を使ってファイルにデジタル署名する | SignTool を使ってファイルに署名し、ファイル内の署名を確認する |
ゲームのアップロードとバージョン管理 | アプリ パッケージのアップロード |
ポリシーと認定
認定の問題によってゲームのリリースが遅れないようにします。 ここでは、注意すべきポリシーと一般的な認定の問題について説明します。
Microsoft Store アプリ開発者契約 | アプリ開発者契約 |
Microsoft Store でアプリを公開するためのポリシー | Microsoft Store ポリシー |
アプリの認定に関する一般的な問題を回避する方法 | 一般的な認定エラーを回避する |
Store マニフェスト (StoreManifest.xml)
Store マニフェスト (StoreManifest.xml
) は、アプリ パッケージに含めることができる省略可能な構成ファイルです。 Store マニフェストには、AppxManifest.xml
ファイルに含まれていないその他の機能が用意されています。 たとえば、ターゲット デバイスが指定された DirectX の最小機能レベルまたは指定された最小システム メモリの条件を満たしていない場合に、Store マニフェストを使ってゲームのインストールをブロックできます。
Store マニフェストのスキーマ | StoreManifest のスキーマ (Windows 10) |
ゲームのライフサイクル管理
開発が終了し、ゲームを出荷しても、"ゲーム オーバー" というわけではありません。 バージョン 1 の開発は終了ですが、マーケットプレースでのゲームの旅は始まったばかりです。 使用状況とエラーのレポートを監視し、ユーザーのフィードバックに対応し、ゲームの更新プログラムを公開する必要があります。
パートナー センターの分析と販売促進
パートナー センターの分析 | アプリのパフォーマンスの分析 |
顧客のレビューへの対応 | 顧客のレビューへの対応 |
ゲームを宣伝する方法 | 顧客を引き付け、アプリを宣伝する |
Visual Studio Application Insights
Visual Studio Application Insights には、公開したゲームのパフォーマンス、テレメトリ、使用状況の分析機能があります。 Application Insights は、リリース後のゲームの問題の検出と解決、使用状況の継続的な監視と向上、プレイヤーがゲームを操作する方法の把握に役立ちます。 Application Insights は SDK をアプリに追加することで動作し、テレメトリを Azure ポータルに送信します。
アプリケーションのパフォーマンスと使用状況の分析 | Application Insights の概要 |
Azure Monitor | Azure Monitor の概要 |
分析とプロモーションのためのサード パーティ ソリューション
GameAnalytics を使ってプレーヤーの行動を理解する | GameAnalytics |
UWP ゲームを Google Analytics に接続する | Google Analytics 用 Windows SDK を入手する |
Facebook アプリ インストール広告を使って Facebook ユーザーにゲームを宣伝する | Windows SDK for Facebook を入手する |
Vungle を使ってゲームに動画広告を追加する | Windows 用 Vungle SDK をダウンロード |
コンテンツの更新プログラムの作成と管理
公開されたゲームを更新するには、バージョン番号が大きい新しいアプリ パッケージを申請します。 パッケージの申請と認定を完了すると、自動的に更新プログラムとして顧客にリリースされます。
ゲームの更新とバージョン管理 | パッケージ バージョンの番号付け |
ゲーム パッケージ管理のガイダンス | アプリ パッケージ管理のガイダンス |
ゲームへの Xbox Live の追加
Xbox Live は、世界各地の何百万人ものゲーマーをつなぐ最高のゲーム ネットワークです。 開発者は、Xbox Live プレゼンス、ランキング、クラウド保存、ゲーム ハブ、クラブ、パーティー チャット、ゲーム DVR など、ゲームの対象ユーザーを組織的に拡大できる Xbox Live の機能にアクセスできます。
Note
Xbox Live 対応タイトルを開発する場合、いくつかのオプションが用意されています。 さまざまなプログラムの詳細については、Xbox Live 開発者プログラムの選択に関する記事を参照してください。
Xbox Live の概要 | Xbox Live のドキュメント |
Xbox Live クリエーターズ プログラムの開発者向け
概要 | クリエーターズ プログラムへの参加 |
対象パートナーおよび ID@Xbox プログラムの開発者向け
概要 | 対象パートナー向けの Xbox Live の概要 |
サンプル | Xbox ゲーム開発サンプル |
その他のリソース
GDC や //build などの主要なカンファレンスの動画 | ゲーム開発ビデオ |