Steamworks 文献库
如何在 Steam Deck 上加载并运行游戏

概览

为了帮助开发者使用 Steam Deck,我们现为各位提供 SteamOS Devkit Client Tool(SteamOS 开发者套件客户端工具)SteamOS Devkit Service(SteamOS 开发者套件服务)。 这些工具让您可以将游戏生成版本直接从开发电脑加载到 Steam Deck 开发者套件(或 Linux 电脑)中,并执行其他开发活动。
重要须知:
在按照以下说明上传和测试您自己的游戏之前,我们建议您先在 Steam Deck 开发套件上安装并运行 Steam 上另一款使用 Steam Play(Proton)的游戏。 这将确保所有 Proton 及其依赖项都已安装。

安装工具

客户端设置(开发者 PC 端)

  • SteamOS Devkit Client 在您的开发 PC 上运行,允许开发者连接到 Steam Deck 或 Linux 系统来部署/调试软件。
  • 从 Steam 上安装 SteamOS Devkit Client——此为直接安装链接
  • 您可以在 Steam 库的“软件”类别中启动该工具。 如果您想使用命令行启动:
    • 在 Windows 中,运行 windows-client/devkit-gui.exe
    • 在 Linux 中,于 linux-client 目录中运行 python3.9 ./devkit-gui-cp39.pyz

服务器设置(Steam Deck 端)

  • SteamOS Devkit Service 在目标 Steam Deck / Linux 系统上运行,并允许开发人员从另一台 PC 连接并部署/调试自己的软件。
  • 如果您拥有 Steam Deck 开发者套件,那么 SteamOS Devkit Service 就已经预先安装并在运行中,无需进一步操作。
  • 如果您没有 Steam Deck 并且正在您自己的 Linux 系统上进行测试,您将需要安装 SteamOS Devkit Service。 此为 Devkit Service 工具的直接安装链接。 (此服务仅支持运行 Manjoro 的 PC,具体操作请见此处

连接至 Deck

在您的开发 PC 上,启动 SteamOS Devkit Client。 开发者套件/Linux 系统必须和开发主机位于同一个允许多播 DNS(Multicast DNS)的局域网上,才能被发现和列出。 这通过 Wi-Fi 或以太网(利用 USB-C 集线器)实现。

  • 请确保您的 Steam Deck 已连接至网络,且已应用所有更新(Settings(设置)> System(系统))。
  • 在您的 Steam Deck 上:前往 Settings(设置)> System(系统),然后在 System Settings(系统设置)部分中选择 Enable Developer Mode(启用开发者模式)。 前往 Settings(设置)> Developer(开发者),在 Development Kit(开发者套件)部分中选择 Pair new host(和新主机配对)。
  • 在您的开发 PC 上:在开发者套件工具中寻找您的 Linux 系统(EV2 版的开发者套件种将会显示“callistoXXX”,更新一批的 DV 版机器则会显示“Valve Aerith”)。 点击右侧的 Register(注册)按钮以将开发者套件注册到该工具上。 (这将会在设备上设置一个 ssh 序列号,并授予完全控制权。)
  • 在您的 Steam Deck 上:批准来自 PC 的配对请求。
  • 如果您没有在开发者套件工具 UI 中看到一个开发者套件,请确保您的开发 PC 和开发者套件在同一个局域网中。 视您的环境而定,您可能会用到 Add by IP(根据 IP 添加)字段。

dev-kit_landing.png

在上方的截图中,callisto530 是已注册的开发者套件。

上传游戏生成版本至 Steam Deck

点击 Title Upload(游戏上传)选项卡,以配置好游戏,将其从您的开发 PC 上传至 Steam Deck 开发者套件。 当配置好后,画面看起来和下方所示差不多:

title-upload-20211111.png

此屏幕截图是将测试游戏的 Windows 生成版本上传到开发者套件的示例。
  • Local Folder(本地文件夹) - 包含运行游戏所需的所有文件的基本目录。
  • Upload filtering(上传筛选)- 上传进程通过 ssh 使用 rsync,在上传仅有少量内容变更的重复性内容时,可实现高速传输。

    要想控制上传内容,有三种办法:

    Exclude only(仅排除)使用空格分隔的一列排除规律,以从上传内容中排除。
    Include only(仅包含)仅会上传与设定的规律相符的文件和目录,忽略其他内容。
    Rsync 参数允许高级用户直接指定 rsync 命令行参数。

    若需更多关于筛选规律的详细信息,请参见exclude patterns(排除规律)。

  • Clean upload(洁净上传) - 启用此选项可在应用排除规律后删除开发者套件中不存在于本地文件夹内的文件。
  • Start Command(启动命令) - 将此设置为游戏的二进制可执行文件(以及您要添加的任何参数)。
  • Steam Play - 如果您正在上传的 Windows 二进制文件需要通过 Steam Play(使用 Proton)执行,请选中此项。
  • Steam Play debug(Steam Play 调试) - 该调试器服务复选框允许您在 Visual Studio 中逐步完成您的 C++ 生成版本。

如果您已经有了游戏的 appid 并且在使用 Steamworks API,您应一并纳入 steam_appid.txt 文件(其中仅应包含您的 appid),并应将其放置在您上传文件的顶级根文件夹中、可执行文件旁。 您可以在 Steamworks API 初始化与关闭文章中了解更多信息。

运行已上传的游戏生成版本

在您的 Steam Deck 开发者套件上,导航到库,找到名为“Devkit Game: 您的游戏名称”的新游戏,选择它并运行。
如文章开篇所述,在直接上传和测试您自己的游戏之前,我们建议您先在 Steam Deck 开发者套件上安装 Steam 上另一款使用 Steam Play(Proton)的游戏,并运行该游戏。 这将确保 Proton 及其所有依赖项都已安装。

Steam 客户端控制台

如果您的开发需要运行 Steam 客户端控制台命令,可以通过 CEF Console(CEF 控制台)来进行。

运行您的开发者套件客户端工具并连接至 Deck,在 Devkits 选项卡中点击 CEF Console 按钮。 这应当会在您的 Steam Deck 上打开一个链接至 CEF 客户端的浏览器标签页。 在该页面中,点击 SP 以打开和主要 Steam Deck 客户端 UI 相关的选项卡。 页面右侧还包括一个 CEF 调试控制台。

CEF 调试窗口打开后,在控制台选项卡中,通过运行命令 EnableSteamConsole() 启用 Steam 控制台输出。 运行此命令后,通常在 Steam 客户端控制台选项卡(使用 -console 启动时)中显示的输出会在此处显示,并被高亮标记为 SteamClient

若要执行控制台命令,请在对 SteamClient.Console.ExecCommand() 的调用中用双引号包裹整个命令。 下方的示例是两个这样的调用,一个是为 app 480 启用测试动态云同步,一个是接下来的禁用测试动态云同步。

deck_cef_client_console_example.png