GDK の採用
各 GDK は 1 年間のみサポートされます。既存のゲームは、リタイアした GDK を使用して引き続き出荷できますが、これはサービスとして出荷されるゲームにとっては問題となる可能性があります。GDK がリタイアした後に新機能を導入するゲームは、GDK の以前の使用例では見られなかったバグや統合上の問題に遭遇する可能性があります。同様に、ゲームはリリースされている最新の GDK にのみ含まれる機能を活用したい場合もあります。 ゲームは、単一の GDK に対してビルドする必要があります。ゲームは、ある GDK と別の GDK のコンポーネントを混在させることはできません。コンソール上では、ゲームには単一の Game OS のみが含まれ、さまざまな GDK ライブラリはその基盤となる OS への依存関係を持つ場合があります。PC 上では、ゲーミング ランタイムの 1 バージョンのみがゲーム プロセスにロードされるため、コンソールで見られるのと同様の「単一バージョン」環境が作成されます。 GaaS タイトルは、まだサポートされているより最近リリースされた GDK に定期的に更新することを推奨します。Intelligent Delivery
GaaS タイトルは、新しいコンテンツの導入に伴い、年月とともにどんどん大きくなる可能性があります。ゲーマーはストレージ容量が限られている場合があります。これは、ゲームの最新の更新をインストールする能力に影響する可能性があります。ゲーマーは自分のストレージ空間を管理する能力を持っていますが、Intelligent Delivery を用いてビルドされたゲームは、ゲーム全体を丸ごとアンインストールする以上に、ストレージの使い方の柔軟性と選択肢をゲーマーに与え、ゲーマーがより多くのゲームをより長い期間デバイスにインストールしたままにできるようにします。 Intelligent Delivery を使用することで、ゲームは 機能とレシピ を活用し、既定でインストールされるものを選択し、ゲームのどの部分をインストールしたままにするか、また使わなくなったため削除したい部分はどれかを管理できるようになります。 GaaS タイトルは、こうした管理を可能にするために、新しいコンテンツを個別の機能に配置することもできます。考え方としては、新しいコンテンツは durable であるということです。これを管理しやすくするための 1 つの提案は次のとおりです。- ゲームのレイアウト ファイルで、各 durable を Feature に対応させます。
- Feature は 1 つ以上の Tags を宣言し、これを使用してゲーマーがそのコンテンツに対するライセンスを持っている場合にどのチャンクをインストールすべきかを示します。
- レイアウト ファイルに Store ID の子を持つ Recipe が含まれていることを確認します。このレシピは、同じ Store ID に対応する単一の機能を参照する必要があります。レシピを追加することで、ゲーマーが以前にこのコンテンツを購入していれば、自動的にインストールされることが保証されます。
[!NOTE] durable とは関係のない他の機能やレシピが存在することもあります。
- XPackageEnumerateFeatures を呼び出して機能を列挙します。
- XPackageFeature 内の返された Store ID を使用して、ライセンスを確認したり、詳細を照会したり、ストア購入フローを呼び出します。
ダウンロード可能コンテンツ
ベース パッケージを継続的に進化させる代わりに、一部の GaaS タイトルは、ダウンロード可能コンテンツ (DLC) を使用して長年にわたって進化することを選択する場合があります。ゲームはアセットや実行可能コードをその DLC に配置することを選択できます。実行可能コードには、DLL と EXE の 2 つの可能な経路があります。 ゲームが DLC に DLL を配置する場合、次のことができます。- XPackageMountWithUiAsync を使用してその DLC をマウントします。
- LoadLibraryEx を使用します。
- 以前にマウントされたすべての DLC はマウントされたままになります。
- XPackageMountWithUiAsync を使用してその DLC をマウントします。
- マウントされた DLC からのパスを使用して XLaunchNewGames を呼び出します。
- 既存のゲーム プロセスは終了されます。
- XLaunchNewGames のターゲットを除くすべての DLC はアンマウントされます。
- G: ドライブは、新しく起動された EXE ではなく、引き続きベース パッケージのルートを指します。
