游戏引擎
游戏通常在接收用户输入和渲染结果帧之间有几个阶段(如图 1 所示)。根据游戏不同,这可能需要从个位数毫秒到数百毫秒不等。 虽然串流服务器和 XBOX 主机之间的游戏引擎延迟没有差别,但当它与其余串流延迟叠加时,用户可能会更明显地感受到其影响。优化游戏引擎延迟和帧率可减少用户在您游戏中体验到的延迟。服务器
在图 1 中,XBOX 串流服务器的其余时间用于准备将帧发送到客户端。这主要发生在 Capture 阶段(从 GPU 中检索帧)和 Encode 阶段(缩放并压缩帧以优化网络带宽)。网络
XBOX 服务器将视频发送到串流客户端,并通过 Internet 接收返回的输入。该网络连接的延迟根据以下因素而变化。- 客户端设备与服务器之间的物理距离。
- Microsoft 将服务器部署到世界各地的 Azure 数据中心,以尽可能减小距离。从他们的 XBOX 主机进行串流的用户可能距离更远。
- 用户互联网连接的速度。
- 用户的互联网连接类型和硬件。
- 例如,2.4 GHz 无线网络连接的延迟通常高于 5 GHz 连接。某些互联网服务提供商 (ISP) 也有增加延迟的缓冲策略。
XGameStreamingGetStreamAddedLatency 返回延迟的标准差(也称为 “抖动”)。
有关模拟串流网络延迟的更多信息,请参阅 在测试游戏时模拟延迟。
客户端
当客户端接收到视频帧时,它必须解码该帧并通过自己的图形栈呈现它。 客户端的图形硬件决定该解码需要多长时间。此外,大多数客户端必须等待本地vSync 计时器来呈现下一帧。在具有 60 Hz 屏幕的客户端上,这可能平均花费 8 ms。
与在连接到电视的 XBOX 主机上运行的游戏一样,串流客户端使用具有自己延迟的显示器。
显示延迟可以从只有几毫秒延迟的快速游戏显示器,到没有游戏模式的廉价移动显示器或电视花费数百毫秒不等。显示器并不总是报告延迟,因此 XBOX 游戏串流 API 不包括客户端显示延迟。
控制器和其他输入方法(如触控)也有延迟。控制器的蓝牙® 连接可能会增加明显的延迟。与显示延迟一样,输入延迟无法由客户端测量,因此 XBOX 游戏串流 API 不予表示。
