次の方法で共有


Microsoft Game Development Kit とは (TL;DR)

Microsoft Game Development Kit (GDK) には、次のような機能があります。

  • ゲーム デベロッパーの皆様によって現在使用されている、最新の PC をターゲットとし、すべての Microsoft Gaming エンドポイント (現在の世代の Xbox 本体を含む) に利用できる共通の、従来の Windows API のセット

  • ゲーム デベロッパーの使いやすいプログラミング モデルとデザインを使用して統合のために設計されたゲーム サービス、ツール、拡張機能のセット。これには以下が含まれます:

    • 標準の Win32 スタイルの C API または DX スタイルの C++ API
    • 例外をスローせず、エラー コードを返す API
    • 慣れ親しんだ非同期プログラミング パターンを使用する API

Xbox の場合、これは以下を意味します。

  • ゲームの実行用に最適化された、小さく高速で安全な OS
  • ゲームで使用できる CPU、GPU、メモリ リソース、I/O レートについての明示的な保証を提供する OS
  • ハードウェア自体に対して最適化され、現在および将来の Xbox プラットフォームでのゲームのパフォーマンスを最大限に高める Xbox 固有の拡張機能 (DX12x など)
  • Game OS がゲームに付属する、現在 Xbox で提供されているのと同じバージョン管理モデル
  • タイトル内のメモリ使用量を把握および追跡するための、よりシンプルなメモリ モデル
  • "F5" 展開、インストール、反復テストの信頼性の大幅な向上と、Xbox One ERA モデルで発生していたアクティベーション エラーの排除
  • 既存の Windows ベースのコードを Xbox に移行して、コードの再利用性と保守容易性を向上するためのより簡単な方法

PC の場合、これは以下を意味します。

  • さまざまな Microsoft ゲーム サービス (接続ストレージ、Xbox サービス、アクセシビリティ機能の完全なセットなど) を Xbox とまったく同じように開発し、テストして使用できること
  • 以前は Xbox 専用だったパッケージ化と取り込みのシステムを使用して、PC ゲームを簡単に Microsoft Store で提供し、PC GamePass などの Microsoft ゲーム イニシアティブに参加するための方法

Microsoft Game Development Kit (GDK) プログラミング モデル

Microsoft Game Development Kit (GDK) プログラミング モデル

  • API は次のいずれかです。
    • フラット C: 従来の Win32 スタイルの C API
    • 単純な C++: D3D スタイルの C++ API
  • API は例外をスローせず、エラー コードを返します。
  • Xbox では、文字列値を受け取るすべての API に対する既定の設定は UTF-8 です。
  • PC と Xbox の両方で、ゲーム ランタイム内の文字列値を受け取るすべての API に対する既定の設定は UTF-8 です。
  • PC の場合、コア Win32 Gaming API は、ゲームに関連するすべての API の文字列値のうち、ゲーム ランタイムの一部ではない ものについては、Windows API の規則に従います。

重要なメモ: Xbox では、Microsoft Game Development Kit (GDK) は D3D12.x のみをサポートしています。
D3D11.x はサポートされません。 ゲームが D3D11.x を使用している場合は、Microsoft Game Development Kit (GDK) への移行の一環として D3D12.x に移行する必要があります。 Windows PC では、D3D11 と D3D12 の両方がサポートされます。

Microsoft Game Development Kit (GDK) プログラミング モデルは、以下のように構成されています。

  • コア Win32 Gaming API: これは Windows PC、Xbox、Xbox ゲーム ストリーミングにわたって動作するゲーム用 Win32 API の共通サブセットです (Windows バージョンとの依存関係があります)。 例としては、既存の Win32 ファイル I/O (CreateFile、OpenFile、ReadFile、WriteFile)、WinSock2、XInput、D3D12 (または Xbox では D3D12.x) API などがあります。 これらの API は、PC では Windows OS、Xbox では Game OS の一部として付属しています。

  • ゲーム ランタイム: Microsoft プラットフォームで最新のクロスデバイス ゲームを実装するのに役立つコンポーネントのセットです。 ゲーム ランタイムには、MSIXVC パッケージ化、インストール管理、接続ストレージ (セーブデータ)、アクセシビリティ、Microsoft Store 商取引のサポートが含まれます。 Xbox サービスのサポートは、ゲーム ランタイムのコンポーネントに依存します。 Windows PC では、ゲーム ランタイムは Microsoft Store に利用できる別個のパッケージとして提供されます。そのため、PC ゲームはゲーム ランタイムに依存します。 Xbox では、ゲーム ランタイムは Game OS の一部として付属しています。

    PC では、ゲーム ランタイムは Windows 10 19H1 リリースに依存します。

領域別の共通プログラミング モデル

領域 API
アプリケーション モデル WinMain と Win32 のメッセージ ループ
アクティベーションは該当なし (アクティベーションはプログラミング モデルに含まれません)
RegisterAppStateChangeNotification API
RegisterForGameInvites API
ネットワーク WinSock2、WinHTTP
ファイル I/O Win32 ファイル I/O API
メモリ Win32 Memory API と Xbox 向け拡張機能 (XMemAlloc認可が必須です)
グラフィックス D3D12 と D3D11 (PC の場合)
D3D12.x (Xbox の場合)
オーディオ XAudio2認可が必須です と Xbox 向け拡張機能および XMA サポート
WASAPI認可が必須です
ISpatialAudioClient認可が必須です
ビデオ PC の場合、ID3D11Video API と Media Foundation の完全サポート
Xbox の場合、MFSourceReader と関連 API (Xbox One ERA と同じ)
Xbox ではエンコードのサポートなし
ゲーム録画/配信 新しいフラット C API: XAppCapture
入力 ゲームパッド用 XInput、または、より高度なユース ケースの場合は GameInput (新しい単純な C++ API)
接続ストレージ 新しいフラット C API: XGameSave
標準 UI (TCUI) 新しいフラット C API: XGameUI
パッケージ化とストリーミング インストール 新しいフラット C API: XPackage
Xbox サービス API (XSAPI) 新しいフラット C API: XSAPI リファレンス
Microsoft Store 新しいフラット C API: XStore

Microsoft Game Development Kit (GDK) ゲームの簡単な例

Microsoft Game Development Kit (GDK) ゲームが "単なるWin32ゲーム" であることを示すために、既定の SDK プロジェクトからのコードスニペットを使用しています。

. . . .
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE, _In_ LPWSTR lpCmdLine, _In_ int) {
. . . .
  if (FAILED(XGameRuntimeInitialize())) return 1;
. . . .
  // Register class
  WNDCLASSEXA wcex = {};
  wcex.cbSize = sizeof(WNDCLASSEXA);
. . . .
  wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  if (!RegisterClassExA(&wcex)) return 1;

  // Create window
  HWND hwnd = CreateWindowExA(. . . .);
  if (!hwnd) return 1;

  ShowWindow(hwnd, nCmdShow);
  SetWindowLongPtr(hwnd, GWLP_USERDATA, reinterpret_cast<LONG_PTR>(g_game.get()));
. . . .
  // Main message loop
  MSG msg = {};
  while (WM_QUIT != msg.message) {
    if (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) {
      TranslateMessage(&msg);
      DispatchMessage(&msg);
    } else {
      g_game->Tick();
    }
  }
. . . .
  XGameRuntimeUninitialize();
  return (int) msg.wParam;
}
. . . .
// Windows procedure
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
  auto game = reinterpret_cast<Game*>(GetWindowLongPtr(hWnd, GWLP_USERDATA));

  switch (message) {
    case WM_CREATE:
    break;
. . . .
  }

  return DefWindowProc(hWnd, message, wParam, lParam);
}

// Exit helper
void ExitGame() {
  PostQuitMessage(0);
}

これは、wWinMain、Message Loop、WndProc を含むクラシックな "Win32" ゲームと似ています。 ただ、以下の点のみが異なります。

  • PC や Xbox でゲーム ランタイムを使用する場合は (Xbox サービスはゲーム ランタイムに依存するため Xbox ではゲーム ランタイムは必須です)、XGameRuntimeInitializeXGameRuntimeUninitialize を呼び出す必要があります。
  • Xbox には、一時停止、制約、再開という PLM の状態のためのコールバックがあります。
  • Xbox は、本体で役に立つ WM_* メッセージのサブセットのみをサポートします。

SDK

Microsoft Game Development Kit (GDK) ゲームを作成するには、以下の SDK をインストールする必要があります。

  • Windows ソフトウェア開発キット (SDK)
    標準のパブリック 20H1 Windows 10 SDK。 こちらからダウンロードできます。

2023 年 10 月のリリースの時点で、代わりに Windows 11 SDK が必要です。 こちらからダウンロードできます。

  • Microsoft Game Development Kit

    • Microsoft Game Development Kit (GDK) は、Microsoft の新しい "アンブレラ SDK" です。 現在は、ゲーム ランタイム開発キット (GRDK) とゲーム拡張機能開発キット (GXDK) が含まれています。 将来的には、追加のゲーム SDK が含まれる予定です。

    • ゲーム ランタイム開発キット (GRDK) には、MSIXVC などのゲーム ランタイム機能を使用する PC および Xbox 向けゲームの開発に必要なヘッダー、ライブラリ、ツールが含まれています。 GRDK には、デベロッパー バージョンのゲーム ランタイムの PC redist も含まれています。

    • ゲーム拡張機能開発キット (GXDK) は、Microsoft Game Development Kit (GDK) バージョンの Xbox 開発キット (XDK) です。 GXDK には、Xbox 向け Microsoft Game Development Kit (GDK) ゲームのビルドに必要なヘッダー、ライブラリ、ツール、Visual Studio 統合が含まれています。 たとえば、D3D12.x ヘッダーと xb* リモート管理ツールは GXDK の一部です。

Microsoft Game Development Kit (GDK) の SDK 構造に関する重要なメモ
2020 年 5 月 GDK の時点で、Microsoft Game Development Kit (GDK) に含まれる更新された Windows のヘッダーとライブラリは、この機能が Windows SDK の19041バージョンに含まれるようになり、削除されました。 GDK を使用してタイトルを作成するには、Windows 19041 SDK および Microsoft Game Development Kit (GDK) をインストールする必要があります (こちらからダウンロード可能)。

Visual Studio のサポート

Microsoft Game Development Kit (GDK) は、Visual Studio 2019認可が必須です または Visual Studio 2022認可が必須です をサポートしています。

開発用 OS の要件

  • 開発用 PC: Windows 7 以降が開発プラットフォームとしてサポートされますが、最新バージョンの Window 10 をお勧めします。

  • PC でのゲーム ランタイムを使用するゲームのテスト: Windows 19H1 は、開発シナリオとリテール シナリオの両方で、ゲーム ランタイム機能を使用する PC ゲームに対する Windows OS の最小バージョンです。

  • Xbox での Game OS とゲーム ランタイムを使用するゲームのテスト:
    Microsoft Game Development Kit (GDK) プレビュー リリースには、Microsoft Game Development Kit (GDK) をサポートする Xbox リカバリが含まれています。 現在リリースされている一般的に利用可能な本体では、Microsoft Game Development Kit (GDK) ゲームはサポートされていません。

Xbox 向け Microsoft Game Development Kit (GDK) ゲームの構築

Microsoft Game Development Kit (GDK) 内のコア Win32 Gaming API のみをターゲットとするゲームをビルドするには、次のことを確認してください。

  1. Windows ヘッダーの WINAPI_FAMILY_GAMES API パーティションに対してコンパイルしていますが、WINAPI_FAMILY_GAMES は 「#defined」です。 たとえば、/D "WINAPI_FAMILY=WINAPI_FAMILY_GAMES" でビルドします。

  2. 標準の Win32 デスクトップ ライブラリ (kernel32、user32、gdi32 など) ではなく、xgameplatform.lib アンブレラ ライブラリにリンクしている (xgameplatform.lib には Microsoft Game Development Kit (GDK) でサポートされる API のみが含まれるため)。 さらに、/NODEFAULTLIB リンカー オプションを使用して、すべての既定のライブラリを削除します。 たとえば、既定の Xbox プロジェクト テンプレートは pixevt.lib、d3d12_x.lib、xgameplatform.lib、xgameruntime.lib にリンクし、/NODEFAULTLIB を指定します。

これらの手順を実行しないと、Xbox のゲームオペレーティング システムに対応していない API を使用する危険があります。

Microsoft Game Development Kit (GDK) のみをターゲットとするゲームをビルドする場合の詳細については、後で説明する「PC でのゲームの提供」と「Xbox 本体でのゲームの提供」を参照してください。

詳細については、「GDK による新しいタイトルの開発」を参照してください。

ゲーム ランタイム

ゲーム ランタイムは、Microsoft プラットフォームで最新のクロスデバイス ゲームを実装するのに役立つコンポーネントのセットです。 ゲーム ランタイムには次のものが含まれます。

コンポーネント 役割
MSIXVC Xbox 本体と PC の両方をサポートする、Xbox パッケージ化システムのアップデート版。MSIXVC の詳細については、「MSIXVC を使用したパッケージ化」を参照してください。
インストール管理 ストリーミング インストールとインテリジェント デリバリー
接続ストレージ Microsoft Game Development Kit (GDK) で "Game Saves" と呼ばれるクラウドベースのゲーム セーブ
Microsoft Store 商取引 アプリ内購入など
アクセシビリティ クローズド キャプション、テキスト音声変換、音声テキスト変換
ゲームへの招待 既に進行中のマルチプレイヤーセッションにゲーマーを参加させる
標準のゲーム UI Xbox サービスを含む一般的なゲーム ワークフロー用の標準化された UI

Windows PC の場合:

  • ゲーム ランタイムの使用はオプションです。 現在は、Microsoft Store で提供されるゲームに対してのみサポートされます。

  • Win32 ゲームを Microsoft Store で提供するには MSIXVC を使用してパッケージ化する必要があり、それにはゲーム ランタイムへの依存が必要です。

  • ゲーム ランタイムの他のコンポーネントを利用するかどうかを決定します。 たとえば、接続ストレージを使用してセーブデータをクラウドに保存することもできます。

  • ゲーム ランタイムは Microsoft Store に利用できるパッケージとしてリリースされます。 そのため、ゲームは新しいバージョンの Windows に依存する必要なく、ゲーム ランタイムに依存します。 また、ゲームのコンテンツ アップデートを必要とせずに、セキュリティ修正などの重要な更新プログラムをランタイムに対して確実に提供できるようになります。

  • ゲーム ランタイムは Windows 10 19H1 リリースに依存します。 将来的には、ゲーム ランタイムに新しい機能を追加するときに Windows の今後のリリースに依存しないことを目指しています。

Xbox の場合:

  • ゲーム ランタイムの使用は必須です。MSIXVC としてパッケージ化すること、接続ストレージを使用すること、Xbox サービスのサポートは、Xbox でゲームをリリースするための要件です。

  • ゲーム ランタイムは Game OS の一部として提供されます。

PC でのゲーム ランタイムのアーキテクチャ

PC でのゲーム ランタイムのアーキテクチャ

XGameRuntime.lib: ゲームにコンパイルされます。 ゲーム ランタイムのバージョン管理の境界です。

ゲーム ランタイム クライアント: ゲーム プロセスに読み込まれます。 ゲーム ランタイム サービスとの通信を管理します。 Windows PC では、Microsoft Store から提供されます。 Xbox では、Game OS の一部として提供されます。

ゲーム ランタイム サービス (GRTS): 別のプロセスで実行されます。 PC では、Microsoft Store から提供されます。 Xbox では、Game OS の一部として提供されます。

GameRuntime UI アプリ: ゲーム ランタイム クライアントまたは GRTS によって呼び出され、ゲームに代わって UI を表示します。 Windows PC では、Microsoft Store から提供されます。 Xbox では、Recovery の一部として提供されます。

Windows PC では、1 つのインストールされたバージョンのゲーム ランタイム クライアントとゲーム ランタイム サービスに加えて GameRuntime UI アプリがあります。 これらはゲームとは別に更新され、さまざまなバージョンのゲーム ランタイム間で下位互換性が維持されます。

Xbox では、ゲーム ランタイム クライアントとゲーム ランタイム サービスは Game OS の一部として Game OS のバージョンで提供されます。 GameRuntime UI アプリは Recovery に付属し、Recovery と共にバージョン管理されます。 Xbox でのバージョン管理と Game OS の詳細については、「Xbox 本体でのゲームの提供」を参照してください。

Windows PC でのゲームの提供

Microsoft Game Development Kit (GDK) では、WINAPI_FAMILY_GAMES API サブセットとアンブレラ ライブラリ (xgameplatform.lib) が提供されます。ゲーム デベロッパーはこれらをターゲットにしてリンクすることで、開発をブートストラップし、PC や Xbox 間で (たとえばミドルウェアとライブラリで) コードを最大限に再利用できます。 ただし、PC ゲームを Microsoft Game Development Kit (GDK) API サーフェス領域のみに制限する必要はありません。

PC ゲーム デベロッパーはこれまで通り、既存の Win32 API やサードパーティーの拡張ライブラリ、またはカーネル モード ドライバーに依存する高度なサービス (不正行為対策など) を含む PC のすべての機能を使用できます。 ゲームとゲーム デベロッパーが PC で実行できる内容を制限することは Microsoft Game Development Kit (GDK) の目標ではありません。 言い換えれば、弊社では、皆様が今後もこれまでと同じように Win32 PC ゲームを開発、ビルド、提供できることを望んでいます。

ただ、もっと簡単に Win32 PC ゲーム、そのミドルウェアと依存関係を取得して MSIXVC でパッケージ化し、Microsoft Store でリリースできるようにしたいと考えているだけです。 MSIXVC でゲームをパッケージ化する方法の詳細については、「MSIXVC を使用したパッケージ化」を参照してください。 したがって、Microsoft Store で PC ゲームを提供する場合は、これまで通りに Desktop API サーフェス領域のすべての機能を使用できるのに加えて、ストリーミング インストール、接続ストレージ、アクセシビリティに対応したゲーム構築のサポートといったゲーム ランタイムの機能も利用でき、さらにXbox サービスのサポートを統合することで Xbox ソーシャル ネットワークも利用できます。

ゲーム ランタイムの他の機能を使用する場合は、ウィンドウ表示モードとタイトルが呼び出せるユーザー インターフェイス ダイアログに関する記事を参照して、ダイアログ エクスペリエンスがゲームとどのように相互作用するかについて理解してください。

MSIXVC としてパッケージ化された Windows PC ゲーム

Xbox 本体でのゲームの提供

Xbox の場合、ゲーム デベロッパーは、Microsoft Game Development Kit (GDK) の WINAPI_FAMILY_GAMES API サブセットをターゲットとするバージョンのゲームをビルドする必要があります。 現在の Xbox One ERA と同じく、Direct3D 12 (D3D12.x) 用の Xbox 拡張機能と Xbox のオーディオおよびメディア拡張機能もターゲットにする必要があります。

また、現在の Xbox One ERA と同じく、Microsoft Game Development Kit (GDK) ゲームはゲーム用に最適化された別個のゲーム オペレーション システム上で実行され、ゲームに利用できる GPU、CPU、メモリ リソースについての明示的な保証が提供されます。さらに、ベスト プラクティス ガイダンスに従っている場合は、I/O パフォーマンス レートも保証されます。

Microsoft Game Development Kit (GDK) のバージョン管理モデルは Xbox One ERA のモデルと似ており、各ゲームは Game OS の特定のバージョンに関連付けられます。

Microsoft Game Development Kit (GDK) ゲームは、現在から将来にわたる世代の Xbox 本体でサポートされます。

重要なメモ: Xbox では、Microsoft Game Development Kit (GDK) は D3D12.x のみをサポートします。
D3D11.x はサポートされません。 ゲームが D3D11.x を使用している場合は、Microsoft Game Development Kit (GDK) への移行の一環として D3D12.x に移行する必要があります。 Windows PC では、D3D11 と D3D12 の両方がサポートされます。

Xbox One 版 D3D12.x と Microsoft Game Development Kit (GDK) の間には、わずかな違いしかありません。 既に D3D12.x ゲームがあれば、大きな変更を加えずにすべてのグラフィックス コードを Microsoft Game Development Kit (GDK) に移行できます。 これは、Microsoft Game Development Kit (GDK) の準備を整えるためには、Xbox One ERA ゲームを D3D12.x に移行することが最善の方法であることも意味します。

MSIXVC としてパッケージ化された Xbox ゲーム

Microsoft Game Development Kit (GDK) 非同期モデル

Microsoft Game Development Kit (GDK) は、非同期 API の新しいパターンを実装しています。これは、Xbox One ERA プログラミング モデルの一部として実装されている非同期パターンに関するゲーム デベロッパーの皆様からのフィードバックにお応えしたものです。 この新しいパターンははるかにゲームに統合しやすく、皆様からご要望のあった高度な制御を可能にします。 また、次のサポートも含んでいます。

  1. 完了コールバック関数 (またはラムダ) を使用した非同期処理
  2. ポーリングを使用して非同期呼び出しがいつ完了したかを調べる非同期処理
  3. 非同期呼び出しが完了するまでのブロッキング
  4. 非同期処理を実行するタイミングと場所の制御
  5. 完了コールバックを実行するタイミングと場所の制御

コールバックを使用する新しい非同期パターンの非常に簡単な例を次に示します。

  XAsyncBlock* b = new XAsyncBlock;
  ZeroMemory(b, sizeof(XAsyncBlock));
  b->context = this;
  b->queue = queue;
  b->callback = [](XAsyncBlock* async)
  {
    UpdateStatus status;
    if (SUCCEEDED(QueryUpdateStatusAsyncResult(async, &status)))
    {
      printf("Update Status : %d\r\n", status);
    }
    delete async;
  };
  QueryUpdateStatusAsync("foo", b);

新しい非同期パターンを使用してブロッキング呼び出しを行う、同じような単純な例を次に示します。

  XAsyncBlock* b = new XAsyncBlock;
  ZeroMemory(b, sizeof(XAsyncBlock));

  if (SUCCEEDED(QueryUpdateStatusAsync("foo", b))) {

    //Block until the call returns
    if (SUCCEEDED(XAsyncGetStatus(b, true /*wait*/))) {

      UpdateStatus status;
      if (SUCCEEDED(QueryUpdateStatusAsyncResult(b, &status)))
      {
        printf("Update Status : %d\r\n", status);
      }
    }
  }

  delete b;

新しい非同期パターンの詳細については、以下を参照してください。

Xbox の Microsoft Game Development Kit (GDK) メモリ モデル

現在の Xbox One ERA メモリ マネージャーはゲームのパフォーマンスのニーズに対応しており、XMemAlloc認可が必須です API を使用することで、メモリ割り当ての追跡や制御を行うことができます。 しかし、Xbox でのゲームのメモリ使用を最適化するために改善を行う必要があります。

皆様からは、ゲームに代わって Game OS で実行されるシステム プロセスの使用するメモリの量を把握および予測するのに苦労したというご意見をいただきました。 使用されるメモリの量を事前に予測することは困難であり、Xbox One Software Development Kit のバージョンごとに異なります。 その結果、システム プロセスのメモリ使用をモデル化するために開発時間を費やす必要が生じ、Game OS でゲームに利用可能なメモリを最大限に活用できなくなります。

私たちは、皆様が慣れ親しんでいる XMemAlloc認可が必須です などの Xbox One ERA メモリ モデルの多くの部分を大幅に変更することなく、この問題に対処しました。 システム プロセスに代わって行われるメモリの割り当てが、ゲームに割り当てられた部分ではない、固定サイズの別個のメモリ パーティションに分離されるようになりました。

これにより、ゲームに利用できるメモリの量を正確に予測することが可能になります。しかも、そのためにシステム プロセスが使用するメモリ バッファーを予約する必要はありません。 これは、Game OS でゲームに利用できるメモリを最大限に活用するのに役立ちます。

新しいメモリ モデルの詳細については、「メモリの概要認可が必須です」を参照してください。

MSIXVC を使用したパッケージ化

MSIXVC は、Xbox 向けに構築されていたパッケージ化システムを Windows 10 の PC ゲームでも使用できるようにアップデートしたものです。 MSIXVC には、ストリーミング インストール、インテリジェント デリバリー、差分コンテンツ アップデートなど、現在サポートされている Xbox の機能がすべて含まれます。 これは次のことを意味します。

  • Xbox ゲーム デベロッパーにとっては、変更の必要がなく、テクノロジとツールは今までと同じです。 現在行っている作業を今後も行うことができます。
  • PC ゲーム デベロッパーにとっては、Xbox 向けに構築されていた機能に加えてゲーム ランタイムに含まれる新しい機能も利用できるようになり、C ランタイム、D3D 再頒布可能ファイル、カスタム ゲーム ランチャー、ゲーム エディター ツール、不正行為対策ソフトウェアなどの再頒布可能コンポーネントを PC ゲームでインストールできます。

PC では、既存の Win32 ゲームを MSIXVC でパッケージ化するのは簡単です。

  1. パートナー センターから製品 ID を取得します。 「Windows アプリとゲームを公開する」を参照して作業を開始します。
  2. MicrosoftGame.config を作成し、ゲームの実行可能ファイルと共にルート フォルダーに配置します。
  3. ゲームの Visual C/C++ ランタイムとの依存関係を確認し、依存関係がある場合は、それを MicrosoftGame.config にリストします。
  4. Microsoft Game Development Kit (GDK) で makepkg ツールを使用して、MSIXVC パッケージを作成します。
  5. Microsoft Game Development Kit (GDK) の wdapp ツールを使用して、Windows 19H1 PC にパッケージを展開し、テストします。
  6. パートナー センターにパッケージを提出します。

詳細については、「パッケージ化」を参照してください。

Microsoft Game Development Kit (GDK) 開発者ツール

Xbox 開発では、現在サポートされているのと同じツールのセットがサポートされます。これには以下が含まれます。

  • xb* リモート管理コマンド ライン ツール、Xbox Manager、xbWatson認可が必須です、その他
  • Visual Studio 2019 および Visual Studio 2022
  • Xbox 用 PIX (ゲームのパフォーマンス チューニング用)

私たちは、信頼性の向上、特にゲームの起動および速度に関する信頼性と、Visual Studio の "F5" に関する信頼性の向上に重点的に取り組んできました。 また、任意の長時間にわたってタイミング キャプチャを取得する新しい機能など、PIX の大幅な機能強化も行いました。

PC ゲーム開発に関しては、皆様が現在使用しているのとまったく同じツールとテクニックを今後も使用されることを想定しています。

  • MSIXVC パッケージの作成とテストをサポートしている "新しい PC" ツールの (makepkgwdapp) があります。

  • 今後も、長期間実行されるタイミング キャプチャの改善を含め、Windows 向け PIX の機能強化をリリースしていきます。

  • 可変レート シェーディング (VRS)、ハードウェア レイ トレーシングをはじめとする、最先端の D3D12 機能も引き続きサポートします。

しかし、それ以上に、Win32 ゲーム開発ツールの既存の強力なエコシステムを活用していきます。