Steamworks 文献库
为您的游戏做好在 Steam Deck 上运行的准备
虽然从根本上来说 Steam Deck 是一台 PC,但它却有全新的外观形态,顾客对它也怀有有更多的希望和预期。 除了我们在 Steam Deck 兼容性检查流程中的推荐之外,我们还有一些额外推荐,如下文所示。

本文中的推荐皆不会影响您游戏的兼容性徽章。 所有的推荐皆旨在符合顾客关于输入和显示的预期,改善性能及电池续航,并把握 Deck 提供的新机会。

虽然此处的推荐对 Deck 顾客来说更为有用,但就整体而言,对 PC 玩家来说也是很有价值的,这其中许多玩家只用控制器玩游戏、只在自己的客厅里玩游戏等。
Steamworks SDK:此页面中推荐的许多 API 都是在 2021 年 9 月 14 日推出的 Steamworks SDK 1.52 中加入的。

输入

  • 默认控制器配置:我们强烈建议让您的游戏在仅使用默认控制器配置的情况下就可以访问所有游戏内功能(这也是获得“通过 Deck 验证”徽章的要求)。 如果您的游戏没有原生控制器支持,我们建议您创建一个控制器配置,来映射至正确的鼠标及键盘输入。 更好的方法是实现手柄或原生 Steam 输入支持,这样可能会让您的游戏对新的顾客敞开大门。
  • 文字输入:我们强烈建议游戏在要求用户输入文字时自动显示屏幕键盘(这也是获得 “通过 Deck 验证”徽章的要求)。 我们建议根据具体使用情况,使用以下两个 Steamworks SDK 屏幕键盘 API 之一:
    ShowFloatingGamepadTextInput(发送直接键盘输入)及 ShowGamepadTextInput(以回调为基础)。
  • 陀螺仪/触控板易用度:我们建议支持鼠标样式(1:1 移动)和摇杆样式视角移动的游戏对这两者同时提供完整无障碍的支持。 我们建议允许鼠标事件如常地影响视角,而不干扰同时执行的控制器功能,且仅在收到鼠标点击事件后才会切换至鼠标/键盘模式。 常见问题包括:在使用鼠标视角时摇杆输入被锁定,或是反过来;在使用鼠标视角时控制器按键没反应;屏幕上的按键提示在控制器和鼠标/键盘图标之间不断切换。所有这些问题都会让用户在使用自己首选控制方案玩游戏时遇到困难。 (注意:此功能在使用 Steam 输入 API 时为自动。)

图形

  • Vulkan API:我们建议您将 Vulkan 设为您的主要图形 API,以获得最佳性能和电池续航。 如果您使用 Unity 或虚幻等引擎,在您的生成版本中为所有用户启用 Vulkan 将会获得最佳性能/续航。 (注意:Proton 包括一个 DirectX 至 Vulkan 转译层。 如果您的游戏或引擎具有高质量的 DirectX 支持却没有 Vulkan 支持,那么使用此自动转译层很可能会比使用自定义 Vulkan 实现获得更好的性能。)
  • 视频/音频编解码器:我们建议不要使用和某个制造商绑定的编解码器(如 WMF),而是使用独立编解码器(如 VP9)。

游戏功能

  • 云端存档:我们建议可以存档的游戏启用自动云同步游戏存档:应该让用户在无需手动转移文件的情况下就能够在 Deck 上存档,并在另一台 PC 上接着玩游戏;反之亦然。 也就是说,游戏应该通过 Steam 云或自动第三方服务(例如具有服务器端存档文件的游戏或发行商专门帐户)提供一种云保存方式。 我们强烈建议使用 Steam 云来自动转移文件。 我们不建议在不同设备之间同步游戏配置设置,如屏幕分辨率等。
  • 离线模式:我们强烈建议所有的单人游戏内容都可以在没有网络连接的情况下访问。 您可以在没有任何网络连接的情况下测试您的游戏,包括在新的 Steam 帐户中首次运行游戏。 此功能对 Deck 用户来说尤为有用,因为其网络访问比起使用标准游戏 PC 的情况更为不稳定。
  • 启动器:我们建议将所有需要的功能放入您的游戏客户端,而不是让用户不得不在运行游戏前操控启动器。 启动器通常依赖于特定于平台的框架(即 .NET、WPF 等),对在小屏幕上使用控制器导航的顾客来说,这可能会让他们遇到困难。 需要原生 UI 启动器时,您可以使用 SetGameLauncherMode API 来将控制器输入自动转译为键盘/鼠标事件,以帮助用户。