Skip to main content
このトピックを使用して、タイトルを最適化し、ゲーム ストリーミング時の一般的な落とし穴を回避します。XBOX プラットフォーム上のすべてのゲームは、XBOX Remote Play を使用してローカル コンソールから、または XBOX Game Streaming を使用してクラウド経由でストリーミングできます。ゲームはカスタマイズなしでもストリーミング可能ですが、特定の動作や小さな変更によりプレイヤーの体験が改善され、タイトルへのエンゲージメントとプレイ時間が増加します。以下のガイダンスは、ユーザー調査、ビデオ ストリーミングに関する技術的詳細、そしてストリーミングで密接に協力してきたスタジオから得られたインサイトから得られたベスト プラクティスの集まりであり、ゲーム ストリーミング使用時のプレイアビリティと楽しさを向上させることが実証されています。

背景とゲーム ストリーミングの内部

XBOX Game Streaming は、そのコアとして、グローバル ネットワークの Azure データ センター内にサーバー構成 (XBOX サーバー) として配置された数千の XBOX デバイスで構成されています。高レベルでは、XBOX Game Streaming セッションのセットアップは次のように行われます。
  1. ユーザーがプレイしたいゲームを選択します。
  2. XBOX Game Streaming サービスが、利用可能なサーバーのプールから XBOX サーバーをユーザーに割り当てます。
  3. サービスはユーザーをサーバーにサインインさせ、ゲームのセーブ データと PLS を同期し (これはホーム コンソール間でロームしません)、ゲームを起動し、ゲーム ストリーミング セッションを開始します。
  4. ユーザーがプレイを終えた後、ゲームは終了され、保存されたゲーム データは同期され、PLS はアップロードされ、ユーザーはサインアウトされます。

一般

特定のゲーム内特性はユーザー体験に悪影響を及ぼし、XBOX Game Streaming でのユーザー セッションを終了させる可能性があります。ゲームがこれらのリスクを軽減するための適切な措置を講じるようにしてください。
  • ゲームがストリーミングされているタイミングを把握する。 まず、ストリーミング環境でゲームをテストするのは簡単です。XBOX 開発キットのセットアップ方法については、ストリーミング用の XBOX 開発キットのセットアップ を参照し、タイトル用のプライベート クラウド環境にアクセスする方法については、Microsoft アカウント担当者にお問い合わせください。 最も基本的な最適化は、Cloud Aware API 呼び出し を使用してゲームがストリーミング環境で実行されているタイミングを確認することです。これにより、ストリーミングのために動作を変更するタイミングを簡単に把握できます。
このドキュメントの多くの機能と推奨事項は、ゲーム ストリーミングに関係なく、プレイヤーに恩恵を与え、アクセシビリティを向上させる可能性があります。
  • 新規ユーザーができるだけ速くゲームを起動し、飛び込めるようにする。 ストリーミング セッションは長さが多様で、長時間のプレイ セッションを常に許すわけではありません。ユーザーがストリーミング中にのみ再開して先に進めることができる、自動セーブ ポイントを使用できます。
  • 長いカットシーン中に「アイドル」であるとしてユーザーが切断されないようにする。 XBOX Game Streaming は、ユーザーがアイドル状態であることを検出すると、ユーザー セッションを終了します。開発者は、セッションがアイドル状態になってユーザーが切断されるのを避けるため、XDisplayAcquireTimeoutDeferral API を使用する必要があります。

ビデオ

  • 画面サイズに合わせてヘッド アップ ディスプレイ (HUD) と UI レイアウトを適応させる。 プレイヤーは、フォーム ファクター、視聴距離、解像度の異なるさまざまなデバイスにストリーミングできます。大型 TV 画面ではゲーム内テキストや UI 要素が読み取り可能かもしれませんが、より小さなデバイスでは読み取りにくくなる可能性があります。XGameStreamingGetStreamPhysicalDimensions API により、スケーラブルな UI 要素がストリーミングされる特定のデバイスに対して十分な大きさになるよう保証できます。 カスタム解像度の概要 では、これをさらに進めて、TV の従来の 16:9 解像度に一致しないユーザーのデバイスの全画面を活用でき、より没入感のある自然な体験を提供します。これは、ネイティブ タッチを使用するゲームのユーザビリティも向上させます。
  • 可能な限り赤色のテキストを避ける ビデオ圧縮フォーマットと人間の目の赤色に対する感度のため、この色は最も影響を受けると認識されることがよくあります。この色、特にテキストの粗い境界線や細い線を避けることで、認識される圧縮アーティファクトを減らすことができます。
  • 構成可能なガンマおよびその他のビデオ設定を許可する プレイヤーは、フォーム ファクターや画面特性の異なるさまざまなデバイスにストリーミングできます。XGameStreamingGetClients は、ストリーミング対象の各デバイスの一意の識別子を取得するために使用できます。この識別子を使用してデバイスごとにビデオ設定を保存および復元することで、デバイス間の明るさの差を考慮します。
  • ビデオ レイテンシーを削減する ゲームが DirectCapture と互換性があることを確認することで、プレイヤーのビデオ レイテンシーが大幅に減り、より反応の良い楽しい体験が作成されます。詳細については、DirectCapture の概要 を参照してください。

入力

  • ユーザーが自分のデバイスにとって自然な方法でゲームと対話できるようにする。 プレイヤーは、マウスとキーボード、タッチ スクリーンなど、フォーム ファクターや入力タイプが異なるさまざまなデバイスにストリーミングできます。可能な場合、これらの他のモダリティをサポートしてください。Content Test Application (CTA) ストリーム構成の概要 には、コントローラー以外の入力タイプでストリーミングをテストする方法についての詳細情報があります。 タッチ操作とネイティブ タッチの詳細については、タッチ入門 を参照してください。
  • 最新の入力タイプに応答する プレイヤーはさまざまなデバイスでゲームを再開してプレイし続けられ、物理コントローラーを常に持っているとは限りません。これらの場合、プレイヤーはコントローラー、タッチ、マウスとキーボード入力の間をシームレスに切り替えられることを期待します。ゲームは「最後のもの勝ち」ポリシーを使用して、UX とプロンプトをプレイヤーの優先入力タイプに切り替えることができます。可能な限り、プレイヤーを入力タイプに固定したり、別の入力タイプへのモード変更のためにコントローラーの使用を要求したりしないでください。異なる入力タイプの処理の詳細については、GameInput の概要 を参照してください。
  • 入力レイテンシーを考慮する レイテンシーは、ストリーミング環境において避けられない現実です。プラットフォームはできる限りレイテンシーを最小化しようと試みますが、ゲームは入力を解釈する際にレイテンシーをさらに理解し、考慮することができます。プレイヤーによって認識されるレイテンシーを減らすために利用できる技術の詳細については、ゲーム ストリーミング レイテンシーの測定ゲーム ストリーミング レイテンシー補正の概要 を参照してください。

ローカリゼーション

  • 複数のパッケージではなくコンテンツのローカリゼーションに Intelligent Delivery を使用する XBOX Game Streaming は、ユーザーが接続している物理リージョン (別名 国/地域) を検出します。加えて、XBOX Game Streaming は、ユーザーがローカル デバイスに設定したロケールを検出します。これらの検出されたリージョンとロケールの値は、それに一致するように構成するため XBOX サーバーに渡されます。XBOX Game Streaming はさらに、ユーザーにパートナー センターでそのリージョン用に構成されたゲーム パッケージが提供されることを保証します。 このため、開発者には、異なるローカライズされたコンテンツ セットを持つ複数のパッケージではなく、Intelligent Delivery 言語指定子 を活用して、すべてのローカライズされたコンテンツを含む単一のゲーム パッケージを提出することをお勧めします。これにより、ユーザーがどの国/地域からプレイしていても、優先言語でゲームを体験できるようになります。

ストレージ

  • ゲームプレイ セッション間のデータ永続化に一時ドライブを要求することを避ける XBOX Game Streaming はセッション間で一時ドライブ内のすべてのデータをクリアします。その後のゲーム セッションは、別のデータ センターの別の XBOX サーバー上で発生する可能性があります。ゲームは、セッション間で必要なデータを一時ドライブに保存すべきではありません。
  • 永続的ローカル ストレージ (PLS) の大量使用を避ける XBOX Game Streaming は、永続的ローカル ストレージ をセッション間でロームします。PLS を 4 GB を超えて使用すると、XBOX Game Streaming でゲームを起動するまでの時間が増加します。PLS の使用量が 4 GB 増えるごとに、読み込み時間が 20 秒増加すると予想されます。

ネットワーク

  • 異なるネットワーク レイテンシーと特性を予想する XBOX Game Streaming は、Azure データ センターから XBOX コンソールを実行します。これは、1 人のユーザーが複数の IP 範囲からプレイでき、ホーム コンソール ゲーマーよりも短い ping 時間を持つ可能性があることを意味します。
  • ポート 9002 を避ける XBOX Game Streaming はネットワーキングにポート 9002 を使用するため、ゲーム開発者は TCP または UDP 通信のいずれにおいてもポート 9002 を使用すべきではありません。ゲーム用の特定のポートとネットワーク構成の詳細については、開発ネットワーク アクセスの構成 を参照してください。
ポート 9002 は、最近の GDK でブロックされています。

サポートされていないゲーム内シナリオ

XBOX Game Streaming のユーザー エクスペリエンスをゲームプレイのみに制限する設計のため、次のゲーム内シナリオはクラウド ストリーミング中はサポートされていません。ただし、ユーザーがホーム コンソールをストリーミングする場合、これらのシナリオの一部は動作する可能性があります。
  • 他のアプリやゲームの起動を試みるのを避ける XBOX Game Streaming は、Edge ブラウザーの起動以外、別のゲーム/アプリの起動をサポートしません。
  • プレイ中のゲームと同じ物理マシン上に Web ブラウザーがあることを頼りにするのを避ける XBOX Game Streaming で Web ブラウザーやシステム ホスト型 Web blend へのプロトコル アクティベーションは、そのアクティベーションが、ユーザーがプレイしているローカル デバイス上で起動されます。開発者は、それらの体験がゲームと同じデバイス上でブラウザーが実行されていることに依存しないようにする必要があります。例: ゲームがある Web サイトを起動し、そのサイトの「戻る」ボタンがゲームをプロトコル アクティベーションしようと試みる場合。
  • ユーザーに任意のタイミングでゲームを手動で再起動させることを要求するのを避ける これには、ゲームが自身を更新し、ユーザーに手動でゲームを再起動するよう要求するシナリオを含みます。XBOX Game Streaming は、ゲームが閉じられるとユーザー セッションを終了するため、ゲームの再起動はストリームを終了させます。
  • 長時間アイドル状態のユーザーを過度にペナルティを課すのを避ける XBOX Game Streaming は、ユーザーがセッションから予期せず切断された後、5-10 分間ユーザー セッションを維持します。したがって、ゲームがアイドル ユーザーにペナルティを課す場合、XBOX Game Streaming ユーザーに不必要にダメージを与えます。ゲームは XGameStreamingGetClients API を使用して、GameStreaming クライアントの切断を明確に検出できます。

ゲーム サービス

XBOX Game Streaming は、データ センター内の XBOX サーバーを介して、ゲームをより広い視聴者に利用可能にします。これは、ping 時間やデバイス ID などのデバイス特性を利用してゲームの動作を変更するゲーム サービスに影響を及ぼします。
  • BAN/不正検出に XBOX サービス セキュリティ トークン (XSTS) を利用するのを避ける XBOX Game Streaming ユーザーは、各セッションで新しい XBOX サーバーを取得するため、同じデバイスから多数の別々のユーザー セッションが発生することは完全に予想されます。加えて、ゲーム サービスはこの場合にこれらのデバイスを BAN すべきではありません。これらのセッションが XBOX サーバーに由来することを知るため、開発者はゲーム内で XGameStreamingGetServerLocationName GDK API を使用できます。これは XSTS トークンからも検出できます。ゲーム サービスにおけるデバイス ID の処理の詳細については、XBOX サービス セキュリティ トークン (XSTS) クレームでの XBOX Game Streaming サーバーの参照 を参照してください。
  • 同じ XBOX サーバーで多数の人がプレイしている場合、ユーザーがプレイできないように BAN するのを避ける 個々の XBOX サーバーは、異なる時間帯に複数のゲーマーによって使用されます。ゲームがそのようなインスタンスを BAN する場合、これは XBOX Game Streaming ゲーマーの体験にダメージを与えます (例: 同じ IP アドレスやデバイス ID から多くのゲーム セッションが発生するときにゲームに問題が発生する場合)。
  • 同じ IP アドレスから来る多数のセッションを疑わしいものとして扱うゲーム サービスを避ける データ センター内の複数の XBOX サーバーは、発信および受信通信のために同じパブリック IP アドレスを共有する場合があります。ゲーム サービスが同じ IP アドレスで 100 以上の別々の XBOX コンソールを処理できることを確認してください。
  • ゲームが実行されている場所の IP アドレスに依存するロジックを、ユーザーに関するポリシーの決定に使用するのを避ける XBOX サーバーは、必ずしもユーザーの拠点となる国/地域と同じ場所にあるわけではありません。ゲーム内のプレイ判断のために IP アドレスを使用することは、ユーザー体験を低下させます。XGameStreamingGetClientIPAddress 関数は、ストリーミング クライアントの IP アドレスを判定するために使用でき、ゲームプレイ ロジックにより適しています。
    [!IMPORTANT] XGameStreamingGetClientIPAddress は 2604 GDK リリース時点で非推奨 であり、今後のリリースで削除されます。ユーザーの場所を判定するには、代わりに XSTS トークン クレームを使用してください。詳細については、XSTS クレーム内の XBOX Game Streaming サーバーの参照 を参照してください。
  • レイテンシー チェックでゲーマーのレイテンシーが非常に低いと判明したときに、ゲームやゲーム サービスがユーザーを壊す/ペナルティを課すのを避ける データ センター構成のため、XBOX Game Streaming ユーザーの ping 時間はローカル コンソールのユーザーより常に低くなります。0ms の ping 時間を受け取る可能性がありますが、ユーザーを低下させたり BAN したりするために ping 時間を使用しないことが重要です。ping 時間に基づいて内部のゲーム/サーバー ロジックを削除/調整しないでください。

関連項目

Cloud Aware API 呼び出し XGameStreamingGetStreamPhysicalDimensions XGameStreamingGetClientIPAddress XGameStreamingGetClients タッチ入門 DirectCapture の概要 カスタム解像度の概要 XBOX サービス セキュリティ トークン (XSTS) クレームでの XBOX Game Streaming サーバーの参照
最終更新日 2026年8月24日