PC ゲームの Xbox サービス ネットワーク トラフィックのトラブルシューティング
GDK ゲームが Xbox サービスを使用するように設定されているが、Xbox サービスとやり取りしていないように見える場合は、ゲームによって生成されたネットワーク トラフィックを調べることで、問題が発生している場所を特定できます。
Fiddler を使用してネットワーク トラフィックを調査する
ゲームから xboxlive.com へのネットワーク トラフィックと xboxlive.com からの応答を確認するには、Fiddler をインストールする必要があります。
想定されるネットワーク トラフィック
Fiddler をインストールしたら、Xbox サービスの機能について、ゲームのネットワーク トラフィックと想定されるネットワーク トラフィックを比較できます。
サインインに想定されるネットワーク トラフィック
ゲームがユーザーのサインインに成功すると、userpresence.xboxlive.com に以下のようなパケット表示されます。
POST https://userpresence.xboxlive.com/users/xuid(2814616665093727)/devices/current/titles/current HTTP/1.1
ここで、xuid(XXXXXX) は、サインインしているテスト アカウントの Xbox ユーザー ID です。
このパケットが表示されない場合は、以下の手順をお試しください。
- (microsoftgame.config でまたはエンジンを使用している場合には UE などのエンジンの IDE で) プロジェクトに設定した値が、パートナー センターのプロジェクトの値と一致していることを確認します。
- コンピューターがパートナー センターでプロジェクトに指定したサンドボックスに設定されていることを確認します。
GDK コマンド プロンプトを開いて XBLPCSandbox.exe を実行することで、コンピューター上の現在のサンドボックスを確認できます。サンドボックスが一致しない場合は、XBLPCSandbox.exe [サンドボックス名] を実行して、同じ GDK コマンド プロンプトで設定できます。以下に例を示します。
XBLPCSandbox.exe XDKS.1
- テスト アカウントがサインイン済みであることを確認してください。 これを行う簡単な方法は、Xbox アプリを開き、テスト アカウントが表示されているかどうかを確認することです。
実績のクエリ実行と設定で想定されるネットワーク トラフィック
ゲームでテスト アカウントの実績状況に関する情報が正常に要求された場合は、以下のような achievements.xboxlive.com へのパケットが表示されます。
GET https://achievements.xboxlive.com/users/xuid(2814616665093727)/achievements?titleId=1794603332&orderBy=title HTTP/1.1
要求が成功した場合、パケットには、テスト ユーザーのゲームの実績の現在の状態を一覧表示した応答が表示されます。
ゲームでテスト アカウントの実績が正常に更新された場合は、以下のような achievements.xboxlive.com へのパケットが表示されます。
POST https://achievements.xboxlive.com/users/xuid(2814616665093727)/achievements/00000000-0000-0000-0000-00006af77944/update HTTP/1.1
...
{"action":"progressUpdate","serviceConfigId":"00000000-0000-0000-0000-00006af77944","titleId":1794603332,"userId":"2814616665093727","achievements":[{"id":"1","percentComplete":100}]}
これらのパケットが表示されなかったり、期待した応答が得られなかったりした場合は、以下の操作を行ってください。
- テスト アカウントがサインイン済みであることを確認してください。 これを行う簡単な方法は、Xbox アプリを開き、テスト アカウントが表示されているかどうかを確認することです。
- 実績がパートナー センターのサンドボックスに公開されていることを確認します。
- UE などのエンジンを使用している場合、エンジン固有の構成ファイルが存在し、その値が正しいことを確認してください。 たとえば、UE では、WinGDKEngine.ini と Achievements.json が存在し、「タイトル管理された実績とイベントベースの統計情報を持つ GDK オンライン サブシステムを使用するための Unreal の設定」で指定された値があることを確認してください。
クラウド保存で想定されるネットワーク トラフィック
クラウド保存呼び出しでは、必ずしもすぐにネットワーク トラフィックが生成されるわけではありません。代わりに、gamingservices プロセスが titlestorage.xboxlive.com に以下のようなパケットを送信します。
PUT https://titlestorage.xboxlive.com/connectedstorage/users/xuid(2814616665093727)/scids/00000000-0000-0000-0000-00006AF77944/lock HTTP/1.1
Fiddler で gamingservices プロセスからのネットワーク トラフィックを確認するには、管理者特権を持つコマンド シェルで次のコマンドを使用して winhttphttp を Fiddler にリダイレクトする必要があります。
netsh winhttp set proxy localhost:8888
リダイレクトをクリアするには、次のコマンドを使用します。
netsh winhttp reset proxy