ゲーム エンジン
ゲームには通常、図 1 に示すように、ユーザーの入力を受け取ってから結果のフレームをレンダリングするまでの間にいくつかの段階があります。ゲームによっては、これは 1 桁のミリ秒から数百ミリ秒までの範囲になる可能性があります。 ゲーム エンジンのレイテンシーは、ストリーミング サーバーと XBOX コンソールで違いはありませんが、ストリームの残りのレイテンシーと組み合わされたとき、ユーザーはより大きな影響を体験する可能性があります。ゲーム エンジンのレイテンシーとフレーム レートを最適化することで、ユーザーがゲームで体験するレイテンシーを減らすことができます。サーバー
図 1 において、XBOX Streaming Server の残りの時間はクライアントに送信するフレームを準備するために費やされます。これは主に、GPU からフレームを取得する Capture 段階と、ネットワーク帯域幅のために最適化されるようフレームをスケールし圧縮する Encode 段階です。ネットワーク
XBOX サーバーはビデオをストリーミング クライアントに送信し、インターネットから入力を受け取ります。そのネットワーク接続は、以下の要因に基づいて可変のレイテンシーを持ちます。- クライアント デバイスとサーバー間の物理的距離。
- Microsoft は、距離をできるだけ最小化するため、世界中の Azure データセンターにサーバーを展開しています。XBOX コンソールからストリーミングしているユーザーは、より遠くにいるかもしれません。
- ユーザーのインターネット接続の速度。
- ユーザーのインターネット接続の種類とハードウェア。
- たとえば、2.4 ギガヘルツ (GHz) の無線ネットワーク接続は、5 GHz 接続よりもレイテンシーが高いことがよくあります。一部のインターネット サービス プロバイダー (ISP) には、レイテンシーを増加させるバッファリング戦略もあります。
XGameStreamingGetStreamAddedLatency はレイテンシーの標準偏差 (「ジッター」とも呼ばれる) を返します。
ストリーミング ネットワーク レイテンシーのシミュレーションの詳細については、ゲームのテスト中にレイテンシーをシミュレートする を参照してください。
クライアント
クライアントはビデオ フレームを受信すると、それをデコードし、自身のグラフィックス スタックを通して提示する必要があります。 そのデコードにかかる時間は、クライアントのグラフィカル ハードウェアによって決まります。加えて、ほとんどのクライアントは、次のフレームを提示するためにローカルのvSync タイマーを待たなければなりません。60 ヘルツ (Hz) の画面を持つクライアントでは、これは平均で 8 ms かかる可能性があります。
TV に接続された XBOX コンソール上でプレイするゲームと同様に、ストリーミング クライアントは独自のレイテンシーを持つディスプレイを使用します。
ディスプレイのレイテンシーは、レイテンシーがわずか数ミリ秒の高速なゲーミング モニターから、ゲーム モードのない安価なモバイル ディスプレイや TV で数百ミリ秒かかるものまで多岐にわたります。ディスプレイは常にレイテンシーを報告するわけではないため、XBOX Game Streaming API にはクライアント ディスプレイのレイテンシーは含まれていません。
コントローラーやタッチなどの他の入力方法にもレイテンシーがあります。コントローラーの Bluetooth® 接続は、顕著なレイテンシーを追加する可能性があります。ディスプレイ レイテンシーと同様に、入力レイテンシーはクライアント側で測定できないため、XBOX Game Streaming API では表現されていません。
