次の方法で共有


Windows ゲーム開発ガイド

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
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
ユニバーサル 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 リポジトリ Android、iOS、Windows、Unity、Unreal.
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 ゲーム開発 (ビデオ シリーズ) Unity と Visual Studio 2015

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 を使用してアプリの切り替えをトリガーする 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 を使ってゲームに動画広告を追加する Vungle SDK for Windows

コンテンツの更新プログラムの作成と管理

公開されたゲームを更新するには、バージョン番号が大きい新しいアプリ パッケージを申請します。 パッケージの申請と認定を完了すると、自動的に更新プログラムとして顧客にリリースされます。

ゲームの更新とバージョン管理 パッケージ バージョンの番号付け
ゲーム パッケージ管理のガイダンス アプリ パッケージ管理のガイダンス

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 などの主要なカンファレンスの動画 ゲーム開発ビデオ