MicrosoftGame.Config の概要
MicrosoftGame.config は、ゲーム固有の構成情報を保存するために使用するマニフェスト ファイルです。 Microsoft Store でのインジェストと公開のためにゲームをパッケージ化する際に使用されるほか、ゲーム開発時においてルース ファイル ビルドでのローカル反復中にゲームに関する情報を登録するためにも使用します。
ここでは、MicrosoftGame.config の目的と使用、およびその AppXManifest.xml との関係について説明します。 また、 Microsoft Game Development Kit (GDK)のこのリリースに含まれる MicrosoftGame.config の使用に関してのいくつかの注意点についても説明します。
MicrosoftGame.config とは?
Microsoft Store を介して配布される各ゲームには、少なくともタイトルの ID、発行者名、ならびにゲームの名前とストアとシェル (コンソールの場合) およびスタート メニュー、タスク バー、および Windows シェル (PC の場合) の他の場所にグラフィックを表示するために使用されるタイトル固有のシェル ビジュアル (文字列、アイコン、および画像) のセットを宣言するマニフェストが含まれている必要があります。 また、ゲームには、ゲームのマニフェストに保存されている構成値に依存する、有料コンテンツ (DLC) などのオプション機能を実装できます。 マニフェスト ファイルの名前は MicrosoftGame.config です。
新しいマニフェスト スキーマを作成する理由は?
Microsoft Store の各パッケージには、 AppXManifest.xml と呼ばれるマニフェストが含まれます。 このスキーマは、広範囲のアプリケーション機能とシナリオに対応するように、何年にもわたって進化してきました。
MicrosoftGame.config では、ゲーム デベロッパーはより単純でゲーム中心のマニフェスト スキーマを利用できます。こうしたマニフェスト スキーマは、アクセスが簡単で、エラーが少なく、より生産的です。 デベロッパーがゲームをパッケージ化または登録するとき、ツールによって MicrosoftGame.config が確認され、適切な形式の AppXManifest.xml が自動的に生成されます。 生成された AppXManifest
は、作成されたパッケージに含まれます。
注意
2022 年 3 月の Microsoft Game Development Kit (GDK) の時点で、この Microsoft Game Development Kit (GDK) および将来のリリースで作成された新しいタイトルのゲーム configVersion が 0 から 1 に更新されました。 既存のタイトルは、これらの改善を利用するためにこのバージョンの更新プログラムをオプトインする場合があります。 詳細については、「MicrosoftGame.config リファレンス (サンプルの MicrosoftGame.config およびスキーマ)」を参照してください。
利用できるドキュメント
Microsoft Game Development Kit (GDK) のオフライン ドキュメント ファイル (GDK.chm) では、次の表に示される場所に MicrosoftGame.config に関する記述があります。
トピックの場所 | 内容 |
---|---|
MicrosoftGame.config | MicrosoftGame.config に関する概要情報、およびおよびゲームの登録とパッケージ化における役割を提供 |
MicrosoftGame.Config エディター | 関連するパートナー センター プロジェクトからのタイトル ID、名前、およびキー値を自動的に同期することに加えて、MicrosoftGame.config ファイルの編集を容易にする UI ツールの概要を提供します |
開発環境とツール | ルース ファイル ビルドを登録してゲームを起動するために wdapp.exe と xbapp.exe (NDA トピック)認可が必須です の使用を検討します |
リファレンス | sample .config とMicrosoftGame.config のスキーマに関する リファレンスの詳細を提供 |
パッケージ化 | コンソールと PC で MicrosoftGame.config を使用してパッケージを生成するために makePkg.exe の使用を検討 |
MicrosoftGame.config の作成
Gaming.Desktop.x64、Gaming.Xbox.XboxOne.x64、または Gaming.Xbox.Scarlett.x64 プラットフォーム用の新しいプロジェクトを作成する場合は、Visual Studio で MicrosoftGameConfig.mgc がプロジェクトに関連付けられます。 このファイルには PC と Xbox における初期段階の開発を可能にする既定値が用意されており、ゲーム ランタイム、Microsoft Store、およびタイトル ID 内の機能を使い始めるまで追加の構成は必要ありません。
プロジェクトがビルドされると、MicrosoftGameConfig.mgc は、プロジェクトの出力ディレクトリにコピーされると名前が MicrosoftGame.config に変更されます。
Xbox 用のこの既定の MicrosoftGameConfig.mgc の例を以下に示します。
<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
<Identity Name="41336PublisherName.ExampleGame"
Publisher="CN=A4954634-DF4B-47C7-AB70-D3215D246AF1"
Version="1.6.0.0"/>
<ExecutableList>
<Executable Name="ExampleGame.exe"
Id="Game"/>
<!-- TargetDeviceFamily="XboxOne" Or "Scarlett" | TargetDeviceFamily specifies what device the executable was built for.
IsDevOnly="false" | IsDevOnly specifies if is a Development only executable.
OverrideDisplayName="Xbox Game Override"
OverrideLogo="GraphicsLogoOverride.png"
OverrideSquare44x44Logo="SmallLogoOverride.png"
OverrideSplashScreenImage="SplashScreenOverride.png" -->
</ExecutableList>
<ShellVisuals DefaultDisplayName="Example Game"
PublisherDisplayName="Example Publisher"
Square150x150Logo="GraphicsLogo.png"
Square44x44Logo="SmallLogo.png"
Description="Example Game"
ForegroundText="light"
BackgroundColor="#000040"
SplashScreenImage="SplashScreen.png"
StoreLogo="StoreLogo.png"/>
<!-- <MSAAppId>0000000000000000</MSAAppId> | Required if TitleId is specified and Game configVersion = 1 is specified in the MicrosoftGame.config -->
<!-- <TitleId>FFFFFFFF</TitleId> | Required if MSAAppId is specified and Game configVersion = 1 is specified in the MicrosoftGame.config -->
<!-- <StoreId>9NTL0QDWZ4FS</StoreId> | StoreID specifies the store identity of this title. Required in development so that commerce related APIs will function. -->
<!-- <Resources> | Resources is a list of Language Locale pairs used to localize Shell Visuals.
<Resource Language="en-us"/>
<Resource Language="de-de"/>
<Resource Language="es-mx"/>
</Resources> -->
<!-- <DevelopmentOnly> | DevelopmentOnly is a list of development-only properties.
<DebugNetworkPortList>
<DebugNetworkPort>4600</DebugNetworkPort> | DebugNetworkPort specifies an additional port to open for development on a Development Kit.
</DebugNetworkPortList>
</DevelopmentOnly> -->
<!-- <PersistentLocalStorage>
<SizeMB>322</SizeMB> | SizeMB specifies the size in MB of Persistent Local Storage.
</PersistentLocalStorage> -->
</Game>
MicrosoftGame.config 要素の詳細については、MicrosoftGame.config にあるオンライン GDK ドキュメントを参照するか、オフライン GDK ドキュメントのシステム セクションにある MicrosoftGame.config トピックを参照してください。
注意
Microsoftgame.config ファイルをプロジェクトに手動で追加する場合は、ファイルの種類が copy
になるようにファイルのプロパティを変更してください。
MicrosoftGame.config ファイルを手動で追加する
1 つ以上の MicrosoftGame.config ファイルをプロジェクトに手動で追加することもできます。 次の 2 つの方法でファイルを手動追加できます。
- Visual Studio によって MicrosoftGame.config ファイルとして認識される既存のファイルで該当するプロパティを設定します。
- Microsoft Game Development Kit (GDK) C++ プロジェクト システムで提供される項目テンプレートを使用する。
既存のファイルを MicrosoftGame.config ファイルとして使用するには:
- 構成を "Gaming.Xbox.XboxOne.x64"、"Gaming.Xbox.Scarlett.x64"、または "Gaming.Desktop.x64" プラットフォームに設定します。
- ゲームの MicrosoftGame.config ファイルを Visual Studio プロジェクト内のファイルとして追加します。
- MicrosoftGame.config ファイルのプロパティで、項目タイプを以下のように Microsoft Game Config に設定します。
項目テンプレートを使用して新しい MicrosoftGameConfig.mgc ファイルを追加するには:
- プロジェクトを右クリックし、[追加]->[新しい項目] を選択します。
- MicrosoftGameConfig.mgc テンプレートは、次に示すように、[Visual C++]->[ゲーム]->[Microsoft Game Development Kit] ツリーの ->[エディション] ノードにあります。
MicrosoftGame.config の Visual Studio プロジェクトのプロパティ
MicrosoftGameConfig.mgc ファイルをプロジェクトに追加すると、プロジェクトが自動作成されるか、手動作成する場合のいずれのときにも、プロパティ (MGCCompile
) が Visual Studio プロジェクトに必ず追加されます。
MGCCompile
プロパティは、プロジェクト システムが以下の処理を自動化するために使用します。
- ローカライズされた文字列リソースがある場合、.pri ファイルを生成する。
- 必要に応じて MicrosoftGameConfig.mgc ファイルの名前を MicrosoftGame.config に変更する。
- MicrosoftGame.config を出力フォルダーにコピーする。
- ビルド後に MicrosoftGame.config を登録する。
- デバッガーで ID のあるゲームを起動する。
追加されたこのプロパティは、Visual Studio プロジェクト ファイルに含まれている必要があります。ファイルを直接検査する場合、このプロパティは次の項目グループとして表示されます。
<ItemGroup>
<MGCCompile Include="MicrosoftGame.Config" />
</ItemGroup>
Visual Studio と MSBuild で複数の MicrosoftGameConfig.mgc ファイルのサポートを管理する
Microsoft Game Development Kit (GDK) Visual Studio プロジェクトには、関連するいくつかの MicrosoftGameConfig.mgc ファイルがあります。 たとえば、さまざまなビルド構成や Xbox および PC のビルドごとに異なる MicrosoftGameConfig.mgc ファイルを使用することは一般的です。 以前にカスタム ビルド ロジックを使用して複数の MicrosoftGameConfig.mgc ファイルを管理していた場合、このシナリオはプロジェクト システムで直接サポートされます。
MicrosoftGameConfig.mgc ファイルは、2 つの方法で個々のビルド構成に割り当てることができます。 最初に、 [Xbox ゲーム プロジェクト コントロール ツール ウィンドウ] には、次に示すように、複数の MicrosoftGame.config ファイルを管理する (NDA トピック)認可が必須です ためのサポートが含まれています。
または、プロジェクト ファイルを直接編集することで、MicrosoftGameConfig.mgc ファイルを構成に割り当てることもできます。 既定の MicrosoftGameConfig.mgc ファイルを指定するには、MGCCompile
プロパティの DefaultApplyTo
要素を使用します。 この既定ファイルは、明示的に上書きされない限り、すべての構成に使用されます。
MGCCompile
プロパティのApplyTo
要素を使用して、構成ファイルを特定のビルド構成に割り当てます。
プロジェクト ファイルの次のスニペットは、既定の構成ファイルとして MicrosoftGameConfig_dev.mgc を指定します。 MicrosoftGameConfig_dev.mgc は、オーバーライド (MicrosoftGameConfig_release.mgc) が指定されているリリース以外のすべてのビルド構成に使用されます。
<ItemGroup>
<MGCCompile Include="MicrosoftGameConfig_release.mgc">
<ApplyTo Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Xbox.XboxOne.x64'">True</ApplyTo>
</MGCCompile>
<MGCCompile Include="MicrosoftGameConfig_dev.mgc">
<DefaultApplyTo">True</DefaultApplyTo>
</MGCCompile>
</ItemGroup>
MicrosoftGame.config での IntelliSense サポート
Visual Studio 内での MicrosoftGame.config の変更は、IntelliSense 機能をサポートするようになりました。 これにより、次の 2 つのスクリーンショットに示すように、さらに詳細な情報が得られます。
要素の作成時には、有効な要素名が自動的に表示されます。
無効な要素または無効な要素値が存在する場合、警告が表示されます。
MicrosoftGame.config に関するプラットフォームの要件
タイトルの MicrosoftGame.config ファイルを作成する場合は、Microsoft Game Development Kit (GDK) プラットフォーム (Gaming.Xbox.XboxOne.x64、Gaming.Xbox.Scarlett.x64、および Gaming.Desktop.x64) ごとに 1 つのファイルを作成する必要があります。 これは、MicrosoftGame.config に格納されている要素の値と実行可能ファイルのビルド対象となるプラットフォームに 1 対 1 のマッピングがあることを確認するために必要です。 これは主に、MicrosoftGame.config ファイル内の Executable
要素で TargetDeviceFamily
属性によって指定されます。 詳細については、リファレンス トピックの「追加の要素の詳細」を参照してください。
タイトルを起動すると、次の表に示すように、プラットフォーム要件、タイトルが起動されているデバイス、実行可能ファイルの種類に基づいて、動作が異なります。
MicrosoftGame.config プレゼンス | TargetDeviceFamily 設定 | 起動デバイス | アクション | 注意事項 |
---|---|---|---|---|
はい | Xbox Series X|S | Xbox Series X|S | Xbox Series X 開発キットでネイティブに起動する | |
はい | Xbox Series X|S | Xbox One | 起動デバイスで不適切なプラットフォームが起動されたことを示すエラー (0x887e0002) を返します。 | |
はい | XboxOne | Xbox Series X|S | Xbox Series X 開発キットで Microsoft Game Development Kit (GDK) の後方互換性 VM を使用して起動する | |
はい | XboxOne | Xbox One | Xbox One 開発キットでネイティブに起動。 | |
はい | 未定義 | Xbox Series X|S | Xbox Series X 開発キットでネイティブに起動する | |
はい | 未定義 | Xbox One | Xbox One 開発キットでネイティブに起動。 | |
いいえ | N/A | Xbox Series X|S | Xbox Series X 開発キットでネイティブに起動する | |
なし | 該当なし | XboxOne | Xbox One 開発キットでネイティブに起動。 | |
はい | PC | PC | PC で ID を使用して Win32 x64 として起動。 | |
はい | 未定義 | PC | PC で ID を使用して Win32 x64 として起動。 | |
いいえ | 該当なし | PC | PC で ID を使用せずに Win32 x64 として起動。 |
注意
Xbox Series X|S のタイトルが MicrosoftGame.config を使わずに Xbox Series X 開発キットで起動するシナリオでは、該当する場合は、既存の Microsoft Game Development Kit (GDK) VM 状態が再利用されます。 たとえば、後方互換性のある Microsoft Game Development Kit (GDK) タイトル (Xbox Series X|S 上の Xbox One) が Xbox Series X|S ネイティブ タイトルを起動しようとする前に起動された場合には、その同じ後方位互換性のある Microsoft Game Development Kit (GDK) VM を使用して実行されます。 このシナリオに遭遇する場合、適切な意図を示すよう構成した TargetDeviceFamily を使用して、MicrosoftGame.config を使用することをお勧めします。 ERA タイトルは別の VM 状態で実行されるため、このシナリオでは Microsoft Game Development Kit (GDK) VM の動作には影響しません。
Visual Studio 以外で MicrosoftGame.config を作成および編集する
前述のように Visual Studio ではさまざまな方法でタイトルの MicrosoftGame.config ファイルを作成し、管理できます。 Visual Studio で作成および編集する方法以外に、MicrosoftGame.config を直接作成したりオーサリングしたりするスタンドアロン型のツールがあります。
MicrosoftGame.config エディター は、.config ファイルを簡単にオーサリングおよび編集できるようにする UI ツールです。 またこのエディターには、ストア関連付けウィザードを使用して、TitleId、MSAAppId、StoreId などの情報を自動的にプルダウンしたり同期したりするための、パートナー センター内のタイトル情報へのフックが含まれています。 フィードバックをお寄せください。エディター内にあるご意見送信のためのツールを使用して、お知らせください。
MicrosoftGame.config を使用せずにゲームを起動する
Microsoft Game Development Kit (GDK) では、MicrosoftGame.config がなくても PC または Xbox ゲームを起動することができます。 これは、MicrosoftGame.config の作成前の初期段階の開発で許可され、ゲーム ランタイム、Microsoft Store、およびタイトル ID 内の機能をオプトインする際の柔軟性を提供することを目的としています。 Microsoft Game Development Kit (GDK) でタイトルを出荷するには、Microsoft Store に提出する前に、タイトル パッケージを作成するのに MicrosoftGame.config が必要です。 ゲームランタイム、Xbox サービス、Microsoft Store、またはタイトル ID を必要とする機能の開発が始まったすぐにタイトルの MicrosoftGame.config を採用して構成することをお勧めします。
MicrosoftGame.config を持っていない PC ゲームは、 ビルド ファイルをダブルクリックしてビルドし、起動することができます。 ゲームのランタイム機能を統合して実行されることはありません。 ゲームのランタイム機能、タイトルの ID、MSIXVC パッケージ化サポート、Microsoft Store に送信する機能をサポートするには、MicrosoftGame.config が必要です。
MicrosoftGame.config を持たない Xbox ゲームには GDK ツールを使用して、ルーズ ファイル ビルドの展開、Microsoft Game Development Kit (GDK) 機能サブセットを追加機能なしで起動、デバッグおよび利用します。 Microsoft Game Development Kit (GDK) の完全な機能、タイトル ID、XVC Packaging のサポート、Microsoft ストアに提出する機能をサポートするには、MicrosoftGame.config が必要です。
Xbox で MicrosoftGame.config を使用せずにタイトルを起動するには、次のコマンドを使用できます。
- xbapp.exe (NDA トピック)認可が必須です を起動します。
- Xbox One Manager の配置/起動機能を使用します。
- Xbox の Developer Home (開発ホーム) からタイトルを開始します。
Win32 PC ゲームの起動の詳細については、次のセクションを参照してください。
Win32 ゲームを起動する
ゲーム ランタイムやゲーム クラウド サービスを使用しない Win32 PC ゲームは、他の Windows 実行可能ファイルと同じように起動またはデバッグすることができます。 マウスでゲームの実行可能ファイルをクリックするか、コマンド プロンプト ウィンドウで実行可能ファイルを直接実行すると、ゲーム プロセスが作成されます。
ゲーム サービスは、ゲームに代わって仕事を行います。 ゲーム ランタイムまたはクラウド サービスを使用するには、ゲームがコンテキスト データを提供する必要があります。 たとえば、ゲームはタイトル ID と呼ばれる一意の識別子を Xbox サービスに渡すことができます。これにより、Xbox Live サービスは、どのゲームがプレーヤーに実績を与えているのかを識別することができます。 タイトル ID などのコンテキスト情報は、登録と呼ばれるプロセスを介して、Windows アプリ リポジトリに恒久的に保存することができます。 スタート メニューのアプリ リストでゲームを表すために Windows シェルが使用する文字列とロゴのゲームによる指定も登録で行われます。
アプリ起動というプロセスを通じて、ゲーム プロセスが作成され、ゲームはアプリ リポジトリからの恒久的なコンテキスト情報にアクセスできるようになります。 ゲームをアプリ起動しない場合は、ゲームを実行するためのプロセスは作成されますが、コンテキストは利用できません。 これにより、ゲームのゲームのランタイムおよびゲーム クラウド サービスが正常に使用されなくなります。
ゲームをアプリ起動するには、次のいずれかの方法を使用します。
- スタート メニュー (アプリ一覧、アプリ タイル)
- タスク バーの検索ウィンドウ (検索結果の一覧/詳細パネル)
- wdapp.exe launch
- Windows デバイス ポータル (WDP) – インストール済みのアプリ> スタート
Win32 ゲームをデバッグする
Microsoft Game Development Kit (GDK) では、F5 キーを押してビルドして実行するときに、Win32 PC ゲームが登録パスとアプリ起動パスを通過します。 これにより、このワークフローが Xbox に存在するのと同じ標準に達します。
Win32 PC の Debug Installed App Package に関して、Visual Studio の Debug Installed App Package は、ゲームのマニフェストが MicrosoftGame.config で指定される場合、デバッグ可能なパッケージのリストにゲームを追加しません。Debug Installed App Package は、AppXManifest.xml という名前のファイルが実行可能ファイルのあるフォルダーに存在する場合にのみ、ゲームをパッケージとして認識します。 これを回避するには、有効な値を含むシンプルな AppXManifest
をゲームのために作成し、そのファイルを実行可能ファイルおよび MicrosoftGame.config と同じフォルダーに手動で保存します。
関連項目
MicrosoftGame.config
MicrosoftGame.config のローカリゼーション
MicrosoftGame.Config エディター
MicrosoftGame.Config リファレンス (サンプルの MicrosoftGame.config とスキーマ)
パッケージ化の概要