Windowsゲーム開発ガイドへようこそ。
注記
UWP フレームワークに基づくゲームの開発に時間を費やす前に、UWP がアクティブな開発を行っていないことに注意してください。 さらに、UWP ベースのゲームは、Xbox ストアでは受け入れなくなりました。
このガイドでは、ユニバーサル Windows プラットフォーム (UWP) ゲームを開発するために必要なリソースと情報のエンド ツー エンドのコレクションを提供します。 このガイドの英語 (米国) 版は PDF 形式で入手できます。
ユニバーサル Windows プラットフォーム (UWP) のゲーム開発の概要
このガイドは、ゲームの開発時に役立つ情報とリソースのエンドツーエンドのコレクションを提供します。 セクションはゲーム開発の段階に従って編成されているので、必要なときにどこで情報を探せばよいかがわかります。
Windowsでのゲーム開発が初めての場合は、入門ガイドから始めると良いでしょう。 「ゲーム開発のリソース」セクションでは、ゲームの作成時に役立つドキュメント、プログラム、その他のリソースの概要も示します。 代わりに UWP コードを確認することから始める場合は、「ゲームのサンプル」を参照してください。
ゲーム開発のリソース
ドキュメントから開発者プログラム、フォーラム、ブログ、サンプルまで、ゲーム開発の過程で役立つリソースが数多くあります。 Windows ゲームの開発を開始するときに知っておくべきリソースのまとめを次に示します。
注記
一部の機能は、さまざまなプログラムを通じて管理されます。 このガイドでは幅広いリソースを取り上げているため、参加しているプログラムや特定の開発の役割によっては、一部のリソースにアクセスできない場合があります。 Microsoft との提携の詳細については、「開発者プログラム」を参照してください。
ゲーム開発ドキュメント
このガイド全体を通して、タスク、テクノロジ、ゲーム開発のステージ別に整理された関連ドキュメントへの詳細なリンクが掲載されています。 Windowsゲーム開発に関する全体像を提供するために、主要なドキュメントポータルをご紹介します。
| Windows デベロッパー センター メイン ポータル | Windows デベロッパー センター |
| Windows アプリの開発 | Develop Windows apps |
| ユニバーサル Windows プラットフォーム アプリ開発 | ユニバーサル Windows プラットフォーム ドキュメント |
| UWP ゲームの攻略ガイド | ゲームと DirectX |
| DirectX リファレンスと概要 | DirectX のグラフィックスとゲーム |
| ゲーム向けの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 アプリ 展開チームのブログ | 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 Worker、キャンバス、ドラッグ アンド ドロップ、非同期プログラミング、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
Azure PlayFab は、Microsoft ファミリの一員として、ライブ ゲーム用の完全なバックエンド プラットフォームであり、独立したスタジオが開始するための強力な方法です。 ゲーム サービス、リアルタイム分析、LiveOps により、コストを削減しつつ、収益、顧客エンゲージメント、顧客維持率を飛躍的に高めることができます。
| PlayFab | ツールとサービスの概要 |
| 作業の開始 | PlayFab とは? |
| 動画チュートリアル シリーズ | PlayFab のコア システムに関するデモ動画シリーズ |
| レシピ | レシピ |
| GitHub リポジトリ | |
| API ドキュメント | REST API の概要 |
| フォーラム | PlayFab フォーラム |
Unity
Unity には、美しく魅力的な 2D、3D、VR、AR のゲームやアプリを作成するためのプラットフォームが用意されています。 クリエイティブな構想をすばやく実現することができ、事実上、あらゆるメディアやデバイスにコンテンツを提供できます。
Unity 5.4 以降、Unity は Direct3D 12 開発をサポートします。
| Unity ゲーム エンジン | Unity - ゲーム エンジン |
| Unity を入手する | Unity を入手する |
| Windowsの Unity ドキュメント | Unity Manual / 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 ゲーム開発 (ビデオ シリーズ) |
Havok
Havok のモジュール化された一連のツールとテクノロジによって、ゲーム クリエーターは新しいレベルの対話式操作と没入感を提供できます。 Havok を使うと、非常にリアルな物理演算、対話型のシミュレーション、魅力的な映画を実現できます。 バージョン 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 デバイス間でインストールされる単一のアプリ パッケージを作成することを選択できます。 また、必要に応じて、ゲームが実行されているデバイスに固有の API (Win32 および .NET の一部のクラシック Windows API を含む) を引き続き呼び出すことができます。
以下は、ユニバーサル Windows プラットフォーム アプリについて詳しく説明する優れたガイドであり、プラットフォームの理解に役立つ読み取りをお勧めします。
| ユニバーサル Windows プラットフォーム アプリの概要 | ユニバーサル Windows プラットフォーム アプリとは |
UWP 開発の概要
ユニバーサル Windows プラットフォーム アプリをセットアップして開発する準備は、すばやく簡単です。 次のガイドでは、プロセスを段階的に説明します。
| UWP 開発の概要 | Windows アプリの使用を開始します |
| UWP 開発の準備 | 設定を始める |
UWP プログラミングの初心者で、ゲームでの XAML の使用を検討している場合 (グラフィックス テクノロジとプログラミング言語の詳細を参照)、初心者向けのビデオ シリーズのWindows 10開発を開始することをお勧めします。
| XAML を使用したWindows 10初心者向けシリーズの発表 (ブログ記事) | Windows 10初心者向けの開発 |
UWP 開発の概念
| ユニバーサル Windows プラットフォーム アプリ開発の概要 | Develop Windows apps |
| 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 関数 | CRT 関数は、ユニバーサル Windows プラットフォーム アプリではサポートされていません |
| Windows API の代替手段 | ユニバーサル Windows プラットフォーム (UWP) アプリにおける Windows API の代替手段 |
プロセスの寿命管理
プロセスの有効期間管理 (アプリの有効期間) では、ユニバーサル Windows プラットフォーム アプリが移行できるさまざまなアクティブ化状態について説明します。 ゲームはアクティブ化、中断、再開、または終了されることがあり、さまざまな方法でこれらの状態を遷移する可能性があります。
| アプリ ライフサイクル遷移の処理 | アプリのライフサイクル |
| Microsoft Visual Studio を使用してアプリの切り替えをトリガーする |
ゲーム 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 を使用すると、WindowsとXboxの両方で XAudio2 で使用するクロスプラットフォーム オーディオ処理オブジェクト (XAPO) を作成できます。 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の問題) | 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 アプリ | 通知ビジュアライザー |
| Visual Studio用の UWP タイル ジェネレーター拡張機能 | 1 つの画像を使ってすべての必要なタイルを作成するためのツール |
| Visual Studio用の UWP タイル ジェネレーター拡張機能 (ブログ記事) | UWP Tile Generator ツールの使用に関するヒント |
アプリ内製品 (アドオン) の購入を有効にする
アドオン (アプリ内製品) は、プレイヤーがゲーム内で購入できる補助アイテムです。 アドオンには、ゲームのレベル、アイテム、プレーヤーを楽しませるその他のものが含まれます。 適切に使用すると、アドオンはゲームのエクスペリエンスを向上させると共に、収益の増加につながります。 パートナー センターでゲームのアドオンを定義して公開し、ゲームのコードでアプリ内購入を有効にします。
| 永続的なアドオン | アプリ内製品購入の有効化 |
| コンシューマブルなアドオン | コンシューマブルなアプリ内製品購入の有効化 |
| アドオンの詳細と申請 | アドオンの申請 |
| アドオンの売り上げとゲームの人口統計の監視 | アドオン取得レポート |
デバッグ、パフォーマンスの最適化、監視
パフォーマンスを最適化するために、Windowsのゲーム モードを利用して、現在のハードウェアの容量を十分に活用することで、ゲーマーに可能な限り最高のゲーム エクスペリエンスを提供できます。
Windows Performance Toolkit (WPT) は、Windowsオペレーティング システムとアプリケーションの詳細なパフォーマンス プロファイルを生成するパフォーマンス監視ツールで構成されています。 これは、メモリ使用量を監視し、ゲームのパフォーマンスを向上させるために特に便利です。 Windows Performance Toolkitは、Windows SDK と Windows ADK に含まれています。 このツールキットは、Windows Performance Recorder (WPR) と Windows パフォーマンス アナライザー (WPA) の 2 つの独立したツールで構成されています。 ProcDump は、Windows Sysinternals の一部であり、CPU スパイクを監視し、ゲームのクラッシュ時にダンプ ファイルを生成するコマンド ライン ユーティリティです。
| コードのパフォーマンス テスト | Azure Test Plans |
| ゲーム モード API を使ってハードウェア リソースへの排他的または優先的アクセスを取得することでパフォーマンスを向上させる | ゲーム モード |
| Windows Performance Toolkitを取得する (WPT) | Windows Performance Toolkit |
| 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 マニフェスト () は、アプリ パッケージに含めることができる省略可能な構成ファイルです。 Store マニフェストには、 ファイルに含まれていないその他の機能が用意されています。 たとえば、ターゲット デバイスが指定された DirectX の最小機能レベルまたは指定された最小システム メモリの条件を満たしていない場合に、Store マニフェストを使ってゲームのインストールをブロックできます。
| ストア・マニフェストのスキーマ | StoreManifest スキーマ (Windows 10) |
ゲームのライフサイクル管理
開発が終了し、ゲームを出荷しても、"ゲーム オーバー" というわけではありません。 バージョン 1 の開発は終了ですが、マーケットプレースでのゲームの旅は始まったばかりです。 使用状況とエラーのレポートを監視し、ユーザーのフィードバックに対応し、ゲームの更新プログラムを公開する必要があります。
パートナー センターの分析と販売促進
| パートナー センターの分析 | アプリのパフォーマンスの分析 |
| 顧客のレビューへの対応 | 顧客のレビューへの対応 |
| ゲームを宣伝する方法 | 顧客を引き付け、アプリを宣伝する |
Visual Studio アプリケーション インサイト
Visual Studio Application Insights は、公開されたゲームのパフォーマンス、テレメトリ、使用状況分析を提供します。 Application Insights は、リリース後のゲームの問題の検出と解決、使用状況の継続的な監視と向上、プレイヤーがゲームを操作する方法の把握に役立ちます。 Application Insights は、sdk をアプリに追加することで機能します。このアプリは、テレメトリを Azure ポータルに送信します。
| アプリケーションのパフォーマンスと使用状況の分析 | Application Insights の概要 |
| Azure Monitor | Azure Monitorの概要 |
分析とプロモーションのためのサード パーティ ソリューション
| GameAnalytics を使ってプレーヤーの行動を理解する | GameAnalytics |
| UWP ゲームを Google Analytics に接続する | Get Windows SDK for Google Analytics |
| Facebook アプリ インストール広告を使って Facebook ユーザーにゲームを宣伝する | Get Windows SDK for Facebook |
| Vungle を使ってゲームに動画広告を追加する |
コンテンツの更新プログラムの作成と管理
公開されたゲームを更新するには、バージョン番号が大きい新しいアプリ パッケージを申請します。 パッケージの申請と認定を完了すると、自動的に更新プログラムとして顧客にリリースされます。
| ゲームの更新とバージョン管理 | パッケージ バージョンの番号付け |
| ゲーム パッケージ管理のガイダンス | アプリ パッケージ管理のガイダンス |
Xbox Live をゲームに追加する
Xbox Live は、世界中の何百万人ものゲーマーを接続する最高のゲーム ネットワークです。 開発者は、Xbox Live プレゼンス、ランキング、クラウド セーブ、ゲーム ハブ、クラブ、パーティー チャット、ゲーム録画など、ゲームの対象ユーザーを有機的に拡大できる Xbox Live 機能にアクセスできます。
注記
Xbox Live 対応タイトルを開発する場合は、いくつかのオプションを使用できます。 さまざまなプログラムの詳細については、「Xbox Live 開発者プログラムの使用を参照してください。
| Xbox Live の概要 | Xbox Live ドキュメント |
Xbox Live Creators Program の開発者向け
| 概要 | クリエーターズ プログラムへの参加 |
ID@Xbox プログラムのマネージド パートナーと開発者向け
| 概要 | マネージド パートナー向けの Xbox Live の概要 |
| サンプル | Xbox ゲーム開発サンプル |
その他のリソース
| GDC や //build などの主要なカンファレンスの動画 | ゲーム開発ビデオ |