> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 可持续性开发者概览

> 如何着手分析和优化作品的功耗 —— 哪些组件重要,如何解读 Power Load %,以及哪里能挖出最大的节能空间。

XBOX 认为,以可持续性为出发点开发的游戏能让更多玩家有机会选择以环境友好的方式玩游戏。除了合规要求之外,我们也期望玩家在保有他们熟悉的高品质体验的同时,主动寻求降低能耗。

本页描述如何思考 XBOX Series 主机上的功耗使用,并为作品分析提供工具与方法上的指导。

## 主机功耗 vs. 游戏性能

一边打造强大的游戏主机,一边要求开发者考虑降低功耗,乍看似乎矛盾 —— 其实并不矛盾。将硬件推向极限能提供高保真、沉浸式的体验,这也是 XBOX Series 主机的核心承诺。

同时,围绕能效为玩家提供**选择**,或应用玩家不会察觉的**被动**措施,与该承诺完全兼容。

<Note>
  XBOX 没有计划基于游戏功耗特征引入额外的 [XBOX Requirements(XR)](/publishing/certification/xbox-requirements)。
</Note>

## 哪些组件功耗最大?

主机内各组件的功耗差异很大。相对功耗大致对比(各组件满载运行时):

| 组件         | 功耗比  |
| ---------- | ---- |
| GPU        | 6    |
| 所有 CPU 核心  | 1    |
| 内存访问       | 1    |
| Wi-Fi / 网络 | 0.05 |
| SSD        | 0.05 |

**GPU 是目前最大的功耗来源。** 可持续性工具包中的大多数建议都围绕 GPU 节能,因为它们最容易调整、影响也最大。

## Power Load % 指标

由于制造差异,每台主机的绝对功耗略有不同,因此精确的瓦特数难以给出。XBOX 将功耗表示为主机最大功耗的百分比 —— **Power Load %** —— 该值经过归一化,可在不同开发主机间进行比较。

当 Power Load % 下降时,主机相比之前正在节省能耗。

<Warning>
  Power Load % 只能在 **XBOX Series X|S** 主机上采集。更早的主机缺少所需的硬件计数器。
</Warning>

## GDK 工具

自 2022 年 6 月的 GDK 起,开发者可以在游戏运行时查看 Power Load %:

* **开发主机前面板主屏幕** —— 默认显示 Power Load %。
* **开发主机前面板电量屏幕** —— 显示最近约 20 秒的滚动图表(滚动 0.5 秒平均)。通过前面板控制器上移即可显示。
* **PIX System Monitor 计数器** —— 添加 **Power Load** 计数器(信息与前面板图表相同)。
* **PIX Timing Captures** —— 以 1 ms 粒度采集 Power Load %;单帧内可能会出现较大波动,因为 GPU 在忙碌与空闲之间切换。可在 Metrics 标签页中查看。
* **`PIXGetPowerMetrics` API**(2023 年 3 月的 GDK) —— 返回滚动平均的 Power Load %,方便集成到你自己的分析工具中。

分步说明参见 [可持续性 PIX 指南](/build/game-principles/sustainability/sustainability-pix-guide) 和 [可持续性开发主机指南](/build/game-principles/sustainability/sustainability-devkit-guide)。

## 如何开始对作品进行分析

功耗分析对大多数团队来说是一个新的维度。团队通常已经投入大量精力在 CPU 与 GPU 上达到目标帧率 —— 这里的建议是把**功耗**作为第二个调优维度加进来。

GPU 变更的影响最大。最有效的调整通常是**帧率**和/或**渲染分辨率**。

寻找玩家不会受到影响(或不会察觉)的场景。先从下述状态下的功耗概览着手:

* 加载 —— 从启动到主菜单,或任何较大的流式加载。
* 角色创建或设置界面。
* 空闲玩法。
* 战斗或作品中的高压区域。
* 覆盖大部分可见画面的 UI —— 物品栏、装备栏、物品管理。
* 暂停菜单或游戏中的上下文菜单。

对每个场景查看 Power Load %,并思考它是否合理。有些作品在全屏 UI 之后仍然完整渲染游戏世界 —— 这是没有可见收益的功耗浪费。可以考虑停止世界渲染或降低其分辨率。

思考诸如暂停菜单或全屏 UI 这类区域是否需要满帧率。将全屏 UI 从 60 FPS 降至 30 FPS 一般不会被察觉,却能带来显著节省。

### 空闲检测

遥测显示玩家经常处于空闲状态 —— 等待事件或离开一会儿。空闲期间主机仍在耗电。基于玩家最后一次输入进行简单的空闲检测是值得的。超过时间阈值后逐步降低分辨率或帧率,可以在无感的情况下增加节省。

### 病态功耗

不设上限的帧率可能让 GPU 长时间接近 100% 利用率。可考虑设 60 FPS 或 120 FPS 的帧率上限,给 GPU 留出空闲时间。

<Tip>
  如果你的作品作为在线服务持续更新,请在上述场景周围添加遥测,以了解玩家所花时间的分布。这些数据在规划哪里加入节能功能时非常宝贵。
</Tip>

## 给玩家选择:Eco 模式

玩家已经理解“Quality”和“Performance”模式。可以考虑加入一个 **Eco 模式**,以少量视觉质量**和**性能换取显著的功耗节省。

每款作品情况不同 —— 具体做法由开发者决定。常见的可选项包括:

* **60 FPS vs. 30 FPS 模式**
* **4K vs. 1080p vs. 960p 模式** —— 如果你的作品内部以 4K 渲染,尤其有价值,因为没有 4K 电视(或希望在 4K 电视上省电)的玩家目前无法降低分辨率。
* **空闲超时** —— 让玩家设置一个时间,超过后游戏逐步降低分辨率或帧率。

利用 GDK 工具确认节能效果,让玩家能自主决定他们的游戏环境影响。

## 如果你的作品不再更新或仍在开发中

在工作室内部尽早开启这一讨论。据我们经验,大多数工作室都支持可持续性主题,只是尚未开始讨论。可选项包括:

* 作品直接的节能(Eco 模式、被动优化)。
* 工作室层面的节能 —— 晚上关灯、关电脑、关打印机和开发主机;减少空调等大功率设备使用。

## 下一步

* [如何使用 PIX 进行可持续性分析](/build/game-principles/sustainability/sustainability-pix-guide)
* [可持续性开发主机指南](/build/game-principles/sustainability/sustainability-devkit-guide)
* [动态电源状态](/build/game-principles/sustainability/dynamic-power-states)
* [能效基础要点](/build/game-principles/sustainability/energy-efficiency-essentials)


## Related topics

- [可持续性概览](/zh-CN/build/game-principles/sustainability/sustainability-overview.md)
- [使用 PIX 进行可持续性分析](/zh-CN/build/game-principles/sustainability/sustainability-pix-guide.md)
- [XBOX 游戏能效基础要点](/zh-CN/build/game-principles/sustainability/energy-efficiency-essentials.md)
- [动态电源状态(DPS)](/zh-CN/build/game-principles/sustainability/dynamic-power-states.md)
- [使用开发主机测量功耗](/zh-CN/build/game-principles/sustainability/sustainability-devkit-guide.md)
