Steamworks 文献库
Steam DRM(数字权利管理)

原文内容有作更新

此页原文在翻译版发布之后作了更新。
点击此处查看此页更新后的英文版本。

概览

Steam DRM (数字版权管理)包装器是 Steam 平台极为重要的一部分,它用于确认游戏的所有权,并确保 Steamworks 的功能在启动游戏之前就能正常运行。

Steam DRM 自动包装器

可从 SteamPipe 上传脚本中应用Steam 包装器。可 从已登录的客户端将初始化请求传给 Steam 服务器,然后通过 HTTP 将纯文本的可执行文件放至 Steam 后端。 包装会在服务器上进行,然后 steamcmd 便会下载包装完成的可执行文件。

如要使用 SteamPipe 包装 DRM ,您需要登录脚本后,输入 drm_wrap 指令:
drm_wrap [appid] [input filename] [output filename] [toolname] [flags]

参数:
  • appid - 以数字组成的应用程序 ID
  • input filename - 输入纯文本可执行文件时的相对或绝对路径。 请记得引用可能包含空格的路径!
  • output filename – 工具在其中编写了输出已包装可执行文件的相对或绝对路径
  • toolname - 如是新的便携式工具,输入“ drmtoolp ”。 如是旧版的 win32 工具,输入“drmtool”
  • flags – 指定了下列工具行为的数字标志的位掩码
  • 0 – 常规包装(最大保护)
  • 6 - 兼容模式(禁用 Steam DRM )
  • 32 – 跳过调试器检查
  • 38 - 兼容模式并跳过调试器检查(最小保护)

以下是执行 run_build.bat 脚本登录、应用 DRM 、建立并将生成版本上传至 Steam (App ID 是 480 )的实例:
builder\\steamcmd.exe +login mysteamaccount mysteampassword +drm_wrap 480 "D:\\src\\steamworkssdk\\steamworksexample\\release\\steamworksexample.exe""D:\\src\\steamworkssdk\\tools\\ContentBuilder\\content\\windows_content\\SteamworksExample.exe" drmtoolp 0 +run_app_build .. \\scripts\\app_build_480.vdf +quit

手动使用 Steam DRM 包装器

若要快速地用 Steam 包装器包装 exe ,使用 Steamworks 应用程序数据管理页面对游戏的主要 exe 进行包装。

  1. 前往应用管理员页面,选择您希望新增 DRM 的游戏
  2. 在应用管理员页面中,选择技术工具下方的编辑 Steamworks 设置
  3. 选择安全性选项卡下的 DRM
  4. 上传游戏的主要 exe - 更多有关工具执行选项的说明,请见上方的自动包装段落
  5. 将 exe 下载至您的自己的机器上
  6. 将 exe 重新命名回原来的文件名
  7. 将 exe 复制至内容工具 Depot 的来源位置中
  8. 建立一个新版本的 Depot
  9. 在您的本机内容服务器上测试 Depot

使用 Steam 包装器包装其他 DRM

Steam 包装器能够,并且也应该与其他 DRM 解决方案一起使用。 方法是在应用其他任何 DRM 前,先使用 Steam 包装器的兼容模式,便不会干扰到其他的 DRM 方案。 兼容模式将会禁用该包装器的 DRM 功能。

从 Steamworks 页面中的下拉菜单中选择兼容模式,或选择自动 drmtool 中的适当标记,即可在兼容模式下提交 exe 文件。

常见问题

问:我的 My C# / .Net 游戏在使用了 Steam 包装器后便无法执行
: Steam 包装器不支持 .Net 应用程序。 请使用 SteamAPI_RestartAppIfNecessary 代替 DRM 包装器。

问:我的游戏在使用了 Steam DRM 包装器后便无法执行
: Steam 包装器可损坏其他 DRM 工具。 由于可能存在的冲突,请见 使用 Steam 包装器包装其他 DRM

每次建立新生成版本时都需要应用 DRM 吗?
:是的,每个您希望发布的生成版本都需要使用 Steam 包装器进行包装。 您可使用上述的 Steam 自动包装器流程将其自动化。