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

# Steam Unity 游戏功能：下限保底与上限突破知识库

> **摘要**：这篇文档不聊“营销话术”，只聊 Steam Unity 项目最容易翻车的功能项。核心原则是：先把功能下限做稳（可用、可恢复、可维护），再做体验上限（可扩展、可分享、可长线运营）。除了手柄、多语言、Mod、存档，还补齐成就/排行、联机邀请、DLC/IAP、Steam Deck、Playtest 与分支灰度、崩溃诊断。

## 1. 功能总览：先看全局矩阵

| 模块             | 下限保底（必须做）                                | 上限突破（推荐做）                    | 常见翻车点                 |
| :------------- | :--------------------------------------- | :--------------------------- | :-------------------- |
| 🎮 手柄输入        | 全流程可玩、按键可改、设备热切换稳定                       | Steam Input 深度适配、设备专属图标、高级震动 | 只测 Xbox，PS/Deck 提示图错误 |
| 🌍 多语言         | 文案外置、字体回退、伪本地化测试                         | 复数规则、RTL、社区翻译流程              | 中日韩溢出、德语按钮被截断         |
| 🧩 Mod         | 数据驱动加载、签名/校验、崩溃隔离                        | Workshop 集成、依赖管理、版本约束        | 一份坏 Mod 让游戏无法启动       |
| 💾 存档          | 版本号、原子写入、损坏恢复、云同步基础                      | 冲突合并策略、跨设备一致性、回滚工具           | 覆盖写导致断电坏档             |
| 🏆 成就与排行       | `RequestCurrentStats` -> `StoreStats` 闭环 | 排行榜分赛季、Rich Presence、挑战任务    | 未拉取 stats 就直接写入       |
| 🧑‍🤝‍🧑 联机邀请  | 大厅可进可退、断线恢复、错误提示                         | Relay 优先、跨区匹配、快速重连           | NAT/防火墙下直连失败          |
| 📦 DLC/IAP/库存  | DLC 权限校验、交易授权回调                          | Inventory Service、捆绑包策略      | 只在客户端判定付费权益           |
| 🧪 Playtest/分支 | Child AppID playtest、Beta 分支灰度           | Canary -> Stable 自动推进        | 把测试包直接推默认分支           |
| 🖥️ Steam Deck | 手柄优先、字体可读、无启动器阻断                         | Deck 专属 UI/性能档、云同步无缝         | 默认配置不可玩               |
| 🧯 崩溃诊断        | 崩溃栈、版本号、build hash                       | 自动归因、热修验证闭环                  | 闪退只能靠玩家复述             |
| ♿ 可访问性         | 字号、字幕、色弱、抖动开关                            | 输入辅助、自动化可访问 QA               | 关键信息只靠颜色表达            |

***

## 2. 🎮 手柄支持：从“能用”到“好用”

## 2.1 下限保底清单

* [ ] 全流程（主菜单、战斗、设置、退出）可纯手柄完成
* [ ] 支持按键重绑定（至少主要动作）
* [ ] 键鼠/手柄热切换时 UI 提示同步切换
* [ ] 摇杆死区可调（默认值合理）
* [ ] 震动可单独开关与强度调节

## 2.2 上限突破清单

* [ ] Steam Input Action Set（菜单/战斗/载具等）分组清晰
* [ ] 不同设备显示不同按键图标（Xbox / PlayStation / Steam Deck）
* [ ] 长按、半按、组合键在 UI 内有明确提示
* [ ] 支持 Steam Deck 推荐布局与触摸板辅助

## 2.3 Unity 输入热切换示例

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
using UnityEngine;
using UnityEngine.InputSystem;
using System;

public class InputDeviceWatcher : MonoBehaviour
{
    public static event Action<bool> OnSchemeChanged; // true = gamepad
    private bool _isGamepad;

    private void OnEnable()
    {
        InputSystem.onAnyButtonPress.Call(ctrl =>
        {
            bool nowGamepad = ctrl.device is Gamepad;
            if (nowGamepad == _isGamepad) return;
            _isGamepad = nowGamepad;
            OnSchemeChanged?.Invoke(_isGamepad);
        });
    }
}
```

UI 层只监听 `OnSchemeChanged`，切换一套图标 atlas，不要在每个按钮里写判断。

## 2.4 重绑定存储示例（Input System）

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
using UnityEngine;
using UnityEngine.InputSystem;

public static class RebindStorage
{
    private const string Key = "input_rebind_json";

    public static void Save(InputActionAsset asset)
    {
        string json = asset.SaveBindingOverridesAsJson();
        PlayerPrefs.SetString(Key, json);
        PlayerPrefs.Save();
    }

    public static void Load(InputActionAsset asset)
    {
        if (!PlayerPrefs.HasKey(Key)) return;
        asset.LoadBindingOverridesFromJson(PlayerPrefs.GetString(Key));
    }
}
```

***

## 3. 🌍 多语言：从“能显示”到“真本地化”

## 3.1 下限保底清单

* [ ] 所有文案外置（禁止硬编码 UI 文案）
* [ ] 支持至少中英双语动态切换
* [ ] 字体 fallback 链覆盖 CJK + 西文
* [ ] 伪本地化（Pseudo Loc）跑通，提前发现溢出
* [ ] 日期、数字、货币格式按 `Locale` 输出

## 3.2 上限突破清单

* [ ] 复数规则、性别替换、变量插值走统一语法（Smart String）
* [ ] 支持 RTL 语言（如阿拉伯语）镜像布局
* [ ] 术语库 + 翻译记忆 + 锁词机制
* [ ] 社区翻译工作流（提案 -> 审核 -> 入库 -> 回归测试）

## 3.3 文案表 + 参数化示例

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
using UnityEngine;
using UnityEngine.Localization;
using UnityEngine.Localization.Settings;

public class LocalizedKillTip : MonoBehaviour
{
    [SerializeField] private LocalizedString tip;

    public async void ShowTip(int killCount)
    {
        tip.Arguments = new object[] { killCount };
        string content = await tip.GetLocalizedStringAsync().Task;
        Debug.Log(content); // 例: "你已击杀 120 个敌人"
    }

    public static void SwitchLocale(string code)
    {
        var locale = LocalizationSettings.AvailableLocales.GetLocale(code);
        if (locale != null) LocalizationSettings.SelectedLocale = locale;
    }
}
```

## 3.4 字体回退建议

| 语言区         | 主字体               | 回退字体              |
| :---------- | :---------------- | :---------------- |
| 英文/拉丁       | Inter / Noto Sans | Noto Sans Symbols |
| 简中/繁中/日文/韩文 | Noto Sans CJK     | 思源黑体 / 文泉驿        |
| 俄语/东欧       | Noto Sans         | Noto Sans Display |

***

## 4. 🧩 Mod 支持：从“可扩展”到“可运营”

## 4.1 下限保底清单

* [ ] Mod 与主程序解耦（数据驱动优先）
* [ ] 单个 Mod 加载失败不会阻断游戏启动
* [ ] 有“安全模式启动”（禁用全部 Mod）
* [ ] Mod 元数据包含 `id/version/gameVersion/dependencies`
* [ ] 读取前做 schema 校验与白名单检查

## 4.2 上限突破清单

* [ ] Steam Workshop 订阅/更新/卸载全链路
* [ ] Mod 冲突检测（同资源覆盖、依赖版本冲突）
* [ ] 可视化 Mod 管理器（排序、启用、诊断日志）
* [ ] 热重载（菜单内重载数据类 Mod）

## 4.3 推荐目录结构

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
GameRoot/
  Mods/
    better_loot/
      manifest.json
      tables/loot_table.json
      assets/icons/...
    hard_mode_plus/
      manifest.json
      tables/enemy_scaling.json
```

`manifest.json` 示例：

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "better_loot",
  "name": "Better Loot",
  "version": "1.2.0",
  "gameVersion": "0.9.5",
  "dependencies": [],
  "entry": "tables/loot_table.json"
}
```

## 4.4 Mod 加载与隔离示例

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
using System;
using System.IO;
using UnityEngine;

public static class ModBootstrap
{
    public static void LoadAll(string root)
    {
        if (!Directory.Exists(root)) return;
        foreach (var modDir in Directory.GetDirectories(root))
        {
            try
            {
                string manifestPath = Path.Combine(modDir, "manifest.json");
                if (!File.Exists(manifestPath)) continue;
                string json = File.ReadAllText(manifestPath);
                var manifest = JsonUtility.FromJson<ModManifest>(json);
                ValidateManifest(manifest);
                ApplyMod(modDir, manifest);
            }
            catch (Exception ex)
            {
                Debug.LogError($"[Mod] Load failed: {modDir}\n{ex}");
                // 不抛出，避免单个 Mod 阻断启动
            }
        }
    }

    private static void ValidateManifest(ModManifest manifest)
    {
        if (string.IsNullOrWhiteSpace(manifest.id))
            throw new InvalidDataException("manifest.id is required");
    }

    private static void ApplyMod(string modDir, ModManifest manifest)
    {
        // 只允许覆盖白名单配置表，避免任意文件写入
        // 例如：tables/*.json
    }

    [Serializable]
    private class ModManifest
    {
        public string id;
        public string version;
        public string gameVersion;
        public string entry;
    }
}
```

***

## 5. 💾 存档系统：从“不丢档”到“多端一致”

## 5.1 下限保底清单

* [ ] 存档结构含 `schemaVersion`
* [ ] 原子写入（`.tmp` -> flush -> replace）
* [ ] 自动保留最近 N 份备份
* [ ] 损坏检测（校验和/签名）
* [ ] 升级迁移器（老版本档可自动迁移）

## 5.2 上限突破清单

* [ ] 本地 + Steam Cloud 双通道同步
* [ ] 冲突解决 UI（本地新/云端新/手动保留）
* [ ] 分层存档（账号进度 / 本局进度 / 配置）
* [ ] 可观测性（每次存档记录耗时与失败原因）

## 5.3 原子写入模板

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
using System.IO;
using System.Text;
using UnityEngine;

public static class SafeSave
{
    public static void WriteJsonAtomic(string path, string json)
    {
        string tmp = path + ".tmp";
        string bak = path + ".bak";

        File.WriteAllText(tmp, json, Encoding.UTF8);
        using (var fs = new FileStream(tmp, FileMode.Open, FileAccess.Read, FileShare.None))
        {
            fs.Flush(true); // 强制刷盘
        }

        if (File.Exists(path))
            File.Replace(tmp, path, bak, true);
        else
            File.Move(tmp, path);
    }

    public static string ReadWithFallback(string path)
    {
        string bak = path + ".bak";
        if (File.Exists(path)) return File.ReadAllText(path, Encoding.UTF8);
        if (File.Exists(bak)) return File.ReadAllText(bak, Encoding.UTF8);
        return "{}";
    }
}
```

## 5.4 版本迁移接口示例

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
public interface ISaveMigration
{
    int FromVersion { get; }
    int ToVersion { get; }
    string Migrate(string oldJson);
}
```

把迁移器做成链式执行：`v1 -> v2 -> v3`，不要写“任意版本直达最新”的巨型函数。

## 5.5 Steam Cloud 同步建议（流程）

| 步骤  | 行为            | 失败处理           |
| :-- | :------------ | :------------- |
| 启动  | 比较本地与云端时间戳/版本 | 弹冲突选择，不自动覆盖    |
| 游玩中 | 关键节点本地落盘      | 云写入失败只告警，不阻塞游戏 |
| 退出  | 再次同步云端并写日志    | 下次启动重试         |

## 5.6 Steam API 生命周期（基础但致命）

下限要求：

* [ ] 启动时调用 `SteamAPI.RestartAppIfNecessary(appId)`
* [ ] 初始化成功后每帧调用 `SteamAPI.RunCallbacks()`
* [ ] 监听 Overlay 激活回调，单机流程可自动暂停

最小模板：

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
using UnityEngine;
using Steamworks;

public class SteamLifecycle : MonoBehaviour
{
    private Callback<GameOverlayActivated_t> _overlay;

    private void Awake()
    {
        if (SteamAPI.RestartAppIfNecessary((AppId_t)123456))
        {
            Application.Quit();
            return;
        }

        if (!SteamAPI.Init())
        {
            Debug.LogError("Steam init failed.");
            Application.Quit();
            return;
        }

        _overlay = Callback<GameOverlayActivated_t>.Create(OnOverlay);
    }

    private void Update() => SteamAPI.RunCallbacks();

    private void OnOverlay(GameOverlayActivated_t cb)
    {
        bool overlayOpen = cb.m_bActive != 0;
        Time.timeScale = overlayOpen ? 0f : 1f;
    }

    private void OnDestroy() => SteamAPI.Shutdown();
}
```

***

## 6. 🏆 成就、统计、排行榜、Rich Presence

## 6.1 下限保底清单

* [ ] 启动后先调用 `RequestCurrentStats`，成功后再读写成就/统计
* [ ] 解锁成就后调用 `StoreStats`，并处理失败重试
* [ ] 关键统计（击杀、通关、死亡）有防刷策略
* [ ] 离线游玩后可在联网时补同步

> ⚠️ 官方要点：`ISteamUserStats` 中明确建议先 `RequestCurrentStats`，`StoreStats` 过于频繁会失败（分钟级冷却）。

## 6.2 上限突破清单

* [ ] 排行榜按模式拆分（标准/无尽/赛季）
* [ ] 上传采用 `KeepBest`，避免刷分倒退
* [ ] Rich Presence 显示“正在做什么”，而非只显示“游戏中”
* [ ] 与游戏内挑战系统联动（周目标/赛季章）

## 6.3 代码模板（Steamworks.NET 伪代码）

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
using Steamworks;

public class SteamStatsBootstrap
{
    private Callback<UserStatsReceived_t> _onStatsReceived;
    private Callback<UserStatsStored_t> _onStatsStored;

    public void Init()
    {
        _onStatsReceived = Callback<UserStatsReceived_t>.Create(OnStatsReceived);
        _onStatsStored = Callback<UserStatsStored_t>.Create(OnStatsStored);
        SteamUserStats.RequestCurrentStats();
    }

    public void Unlock(string id)
    {
        SteamUserStats.SetAchievement(id);
        SteamUserStats.StoreStats();
    }

    public void UploadBestScore(int score, SteamLeaderboard_t board)
    {
        SteamUserStats.UploadLeaderboardScore(
            board,
            ELeaderboardUploadScoreMethod.k_ELeaderboardUploadScoreMethodKeepBest,
            score,
            null,
            0
        );
    }

    private void OnStatsReceived(UserStatsReceived_t cb) { }
    private void OnStatsStored(UserStatsStored_t cb) { }
}
```

Rich Presence 示例：

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
SteamFriends.SetRichPresence("status", "Endless Wave 42");
SteamFriends.SetRichPresence("mode", "Hard");
```

***

## 7. 🧑‍🤝‍🧑 联机、邀请与会话稳定性

## 7.1 下限保底清单

* [ ] 大厅创建/加入/离开全链路有明确状态
* [ ] 好友邀请可直达目标会话
* [ ] NAT/弱网下失败有可读错误，不“静默失败”
* [ ] 断线重连策略明确（回大厅 or 回战局）

## 7.2 上限突破清单

* [ ] 默认走 `SteamNetworkingSockets` + Relay 网络访问初始化
* [ ] 匹配按地区与延迟做分层
* [ ] 观战与重连采用快照/状态回放
* [ ] 邀请链接可携带 mode/seed/build 信息

> ⚠️ 官方建议：旧 P2P API 逐步被 `SteamNetworkingSockets` 替代，后者在安全与网络路径上更现代。

***

## 8. 🖥️ Steam Deck 与掌机体验

## 8.1 下限保底清单（接近 Verified 基线）

* [ ] 默认手柄布局可完整游玩
* [ ] 关键文本在 1280x800 下可读
* [ ] 输入框可呼出虚拟键盘
* [ ] 不依赖鼠标操作启动器
* [ ] Proton 下核心流程稳定

## 8.2 上限突破清单

* [ ] Deck 专属 UI 缩放档（字大一点、点击区更大）
* [ ] Deck 默认性能档（例如 40/45/60 FPS 可选）
* [ ] 睡眠唤醒后网络与音频状态自动恢复
* [ ] Deck 与 PC 云存档冲突自动引导

虚拟键盘示例：

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
using Steamworks;

public static class DeckKeyboard
{
    public static void Open(string desc = "Input")
    {
        SteamUtils.ShowGamepadTextInput(
            EGamepadTextInputMode.k_EGamepadTextInputModeNormal,
            EGamepadTextInputLineMode.k_EGamepadTextInputLineModeSingleLine,
            desc,
            64,
            ""
        );
    }
}
```

***

## 9. 📦 DLC、微交易、库存服务（Inventory Service）

## 9.1 下限保底清单

* [ ] DLC 权限通过 `BIsDlcInstalled`/服务端双重校验
* [ ] 微交易必须走 Steam 授权回调闭环
* [ ] 付费道具发放有幂等单号，防重复发货
* [ ] 退款后权益回收策略明确

## 9.2 上限突破清单

* [ ] 统一“目录服务”管理 DLC、礼包、限时包
* [ ] Inventory Service 做发放、交换、合成
* [ ] 大版本活动使用动态掉落池而非硬编码
* [ ] 客户端只展示，服务器做最终授权裁决

DLC 检查示例：

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
using Steamworks;

public static class DlcGate
{
    public static bool HasDlc(AppId_t dlcAppId)
    {
        return SteamApps.BIsDlcInstalled(dlcAppId);
    }
}
```

***

## 10. 🧪 Playtest、分支灰度、回滚机制

## 10.1 下限保底清单

* [ ] 用 Steam Playtest（Child AppID）做封闭测试
* [ ] 至少三条分支：`default`、`candidate`、`hotfix`
* [ ] 任何版本可一键回滚到上一个稳定构建
* [ ] 分支切换后存档兼容策略明确

## 10.2 上限突破清单

* [ ] Canary（1%-5%）-> Stable 自动推进
* [ ] 版本门禁与 smoke test 自动化
* [ ] 每个分支独立崩溃率/留存率看板
* [ ] Playtest 反馈自动入 issue 模板

> ✅ 官方优势：Playtest 是单独的 Child AppID，可在不影响主商店页评论/愿望单的情况下拉测试流量。

灰度发布示例表：

| 阶段      | 分支          | 人群      | 通过条件        |
| :------ | :---------- | :------ | :---------- |
| Stage A | `candidate` | 内测与核心用户 | 崩溃率 \< 0.8% |
| Stage B | `canary`    | 5% 正式玩家 | 关键漏斗无回退     |
| Stage C | `default`   | 全量      | D1 热修预案就绪   |

***

## 11. 🧯 崩溃上报、日志与可观测性

## 11.1 下限保底清单

* [ ] 每个会话上报 `buildVersion + gitHash + branch`
* [ ] 捕获未处理异常与原生崩溃（Windows）
* [ ] 首发周日志级别可远程开关
* [ ] 崩溃后下次启动弹“恢复模式”

## 11.2 上限突破清单

* [ ] 崩溃按模块自动归因（输入/渲染/存档/联网）
* [ ] 热修前后自动对比崩溃签名趋势
* [ ] 跨平台符号表管理（PDB/dSYM）
* [ ] 与玩家反馈帖自动关联（错误码 -> FAQ）

建议日志字段：

| 字段            | 示例                          |
| :------------ | :-------------------------- |
| session\_id   | `2026-02-11T12:03:21Z_7f2a` |
| app\_build    | `0.9.12-hotfix.2`           |
| steam\_branch | `candidate`                 |
| map\_seed     | `A3F1-72`                   |
| last\_action  | `open_inventory`            |

***

## 12. 🧠 一份可直接用的“功能验收门槛”

## 12.1 下限验收（发售前必须全绿）

| 用例      | 通过标准                 |
| :------ | :------------------- |
| 手柄全流程游玩 | 从启动到退出不触碰键鼠也可完成      |
| 切换语言    | 战斗中切语言不崩溃，UI 不错位     |
| 加载坏 Mod | 游戏可启动，坏 Mod 自动禁用并给日志 |
| 异常断电存档  | 重启后至少可用 `.bak` 恢复    |
| 云端冲突    | 玩家能清楚选择并看到结果         |
| 成就上报    | 离线解锁后联网可同步成功         |
| 联机邀请    | 好友邀请 3 步内进入会话        |
| 分支回滚    | 10 分钟内完成版本回退         |

## 12.2 上限验收（版本迭代目标）

| 用例            | 通过标准                    |
| :------------ | :---------------------- |
| Steam Deck 适配 | 字体可读、性能稳定、默认布局可玩        |
| 社区 Mod 管理     | 订阅/更新/停用无需手改文件          |
| 多语言质量         | 前 5 语种无关键截断/错义          |
| 跨设备体验         | PC A 保存 -> PC B 拉取无冲突回退 |
| 排行榜赛季化        | 新赛季可自动重置并保留历史           |
| DLC 交易闭环      | 支付、发货、退款回收全流程可追踪        |

***

## 13. 🧱 推荐工程结构（Unity）

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
Assets/
  Game/
    Features/
      Input/
      Localization/
      Modding/
      SaveSystem/
      SteamIntegration/
    Runtime/
    UI/
  StreamingAssets/
    Localization/
    Mods/
```

建议每个功能模块都含：

* `Runtime`：运行时代码
* `Editor`：校验工具
* `Tests`：回归测试（至少关键路径）

***

## 14. 🚀 给 Vampirefall 的落地顺序（6 Sprint）

1. **Sprint 1（底座）**：输入闭环 + 存档原子写入 + 中英双语 + 崩溃日志
2. **Sprint 2（稳定）**：可重绑定 + 字体回退 + Mod 安全模式 + 云同步基础
3. **Sprint 3（平台）**：成就/统计/排行 + Rich Presence + Deck 键盘支持
4. **Sprint 4（生态）**：Workshop 管理器 + Mod 依赖解析 + DLC 权限校验
5. **Sprint 5（联机）**：邀请/大厅/重连 + Relay 路径优化 + 错误码可视化
6. **Sprint 6（发布）**：Playtest 灰度 + 分支回滚演练 + 上线 Runbook 固化

***

## 15. 发布前最终功能 Checklist

* [ ] 10 个核心场景已完成键鼠/手柄双输入回归
* [ ] 前 3 语种全流程截图检查通过
* [ ] Mod 启用/停用/损坏场景均可恢复
* [ ] 存档迁移已覆盖最近 3 个版本
* [ ] Steam Cloud 冲突流程有可视化提示
* [ ] 成就与统计先拉后写，离线补同步已验证
* [ ] Playtest -> Candidate -> Default 灰度脚本已演练
* [ ] DLC 与交易授权回调有失败补偿逻辑
* [ ] QA 已执行“首发 2 小时体验”专项测试

***

## 16. 参考资料（官方）

* Unity Input System：[https://docs.unity3d.com/Packages/com.unity.inputsystem@latest](https://docs.unity3d.com/Packages/com.unity.inputsystem@latest)
* Unity Localization：[https://docs.unity3d.com/Packages/com.unity.localization@latest](https://docs.unity3d.com/Packages/com.unity.localization@latest)
* Steamworks API：[https://partner.steamgames.com/doc/api](https://partner.steamgames.com/doc/api)
* Steam Input：[https://partner.steamgames.com/doc/features/steam\_controller](https://partner.steamgames.com/doc/features/steam_controller)
* ISteamInput：[https://partner.steamgames.com/doc/api/isteaminput](https://partner.steamgames.com/doc/api/isteaminput)
* ISteamUtils（Overlay/虚拟键盘）：[https://partner.steamgames.com/doc/api/ISteamUtils](https://partner.steamgames.com/doc/api/ISteamUtils)
* Steam Cloud：[https://partner.steamgames.com/doc/features/cloud](https://partner.steamgames.com/doc/features/cloud)
* ISteamRemoteStorage：[https://partner.steamgames.com/doc/api/ISteamRemoteStorage](https://partner.steamgames.com/doc/api/ISteamRemoteStorage)
* ISteamUserStats：[https://partner.steamgames.com/doc/api/ISteamUserStats](https://partner.steamgames.com/doc/api/ISteamUserStats)
* ISteamApps（DLC 检查）：[https://partner.steamgames.com/doc/api/ISteamApps](https://partner.steamgames.com/doc/api/ISteamApps)
* Steam Matchmaking & Lobbies：[https://partner.steamgames.com/doc/features/multiplayer/matchmaking](https://partner.steamgames.com/doc/features/multiplayer/matchmaking)
* SteamNetworkingSockets：[https://partner.steamgames.com/doc/api/ISteamNetworkingSockets](https://partner.steamgames.com/doc/api/ISteamNetworkingSockets)
* Steam Playtest：[https://partner.steamgames.com/doc/features/playtest](https://partner.steamgames.com/doc/features/playtest)
* Steam Deck 兼容性：[https://partner.steamgames.com/doc/steamdeck/compat](https://partner.steamgames.com/doc/steamdeck/compat)
* Steam Deck 验证流程：[https://partner.steamgames.com/doc/steamdeck/compat#deckcompatchecklist](https://partner.steamgames.com/doc/steamdeck/compat#deckcompatchecklist)
* Steam Timelines：[https://partner.steamgames.com/doc/features/timelines](https://partner.steamgames.com/doc/features/timelines)
* Steam 微交易实现：[https://partner.steamgames.com/doc/features/microtransactions/implementation](https://partner.steamgames.com/doc/features/microtransactions/implementation)
* Steam Inventory Service：[https://partner.steamgames.com/doc/features/inventory](https://partner.steamgames.com/doc/features/inventory)
* Steam Error Reporting：[https://partner.steamgames.com/doc/features/error\_reporting](https://partner.steamgames.com/doc/features/error_reporting)
* Steam Workshop：[https://partner.steamgames.com/doc/features/workshop](https://partner.steamgames.com/doc/features/workshop)
