自动测试版游戏配置文件
More languages
More actions
可选的测试版发现功能会将新的游戏构建与已保存且受支持的版本进行比较。只有在所需证据齐备时,才会创建完整的测试版配置文件。匹配的正式游戏配置文件优先使用。
游戏更新前的准备
此模块默认启用,也可以关闭。明确保存为禁用的设置会继续保持禁用。开关位于配置文件选择器旁的 Settings → General → Game profile 中。
- 检查是否已启用 Dynamic game profile creation (Beta)。如有需要,请将其打开。
- 在匹配的正式配置文件仍可用时,完全重启游戏或专用服务器。
- ShroudForge 会精确验证当前可执行文件,并将其保存到缓存中作为比较基线。你无需下载历史版本的可执行文件。
- 之后游戏更新时,新游戏进程会自动开始比较并使用已保存的基线。
客户端和专用服务器分别保存各自的基线。客户端无法替换服务器基线。如果模块在更新后才首次启用,且没有保存匹配的基线,就无法重建先前版本。
游戏启动时会发生什么
分析会在游戏启动期间运行。游戏会等待分析结果,然后继续启动。此步骤不需要加载世界。
ShroudForge 会先查找与当前运行的精确可执行文件匹配的正式配置文件。如果存在,自动选择会使用该配置文件。启用发现功能后,它也会将受支持的可执行文件缓存起来,以供后续更新比较。
如果没有匹配的正式配置文件,模块会针对相同的目标进程和 KFC 格式检查最新且合适的正式基线。先前缓存的可执行文件必须与该基线完全匹配。它会根据比较映像检查代码、引用、已注册类型和必需的结构契约。目标地址必须从新映像中确定。
结果会保留先前配置文件的完整契约,包括其功能标志。未解决或互相冲突的证据会阻止整个测试版配置文件发布。诊断信息会说明原因。继续等待或进入世界都无法补足缺失的静态证据。
存储和选择
正式配置文件和生成的配置文件共用已配置的配置文件目录。默认路径为:
| 内容 | 位置 |
|---|---|
| 客户端配置文件 | shroudforge/runtime/profiles/enshrouded/client/
|
| 服务器配置文件 | shroudforge/runtime/profiles/enshrouded/server/
|
| 已保存的比较映像和证据 | shroudforge/cache/game-profile-discovery/
|
生成的配置文件以 beta_ 开头。如果没有可用的匹配正式配置文件,Automatic 选择可以使用经过完整验证的匹配测试版配置文件。配置文件选择器会列出可用配置文件。以后添加的匹配正式配置文件优先使用。
更改开关或配置文件选择后,必须完全重启受影响的游戏或服务器。重新打开 Modloader 窗口不会重启运行时。
区分发现、配置文件和运行中的世界
蓝色的 Dynamic profile search in progress 通知表示正在搜索配置文件。Workflow and help 会打开本指南。如果搜索结束时没有找到匹配配置文件,问题会以红色显示。橙色的 Experimental game profile active 通知表示当前实际选中的测试版配置文件。实际运行时错误仍会作为错误显示。
可执行文件的结构检查不需要加载世界。依赖世界的操作还需要相应的实时上下文、注册信息和运行时安全检查。生成配置文件并不能证明游戏命令已执行或产生了可见效果。功能检查也必须分别测试客户端和服务器。
如果未生成配置文件,请阅读报告的原因和技术细节。缺少已保存的基线、不合适的源配置文件,或代码和布局证据尚未解决,都需要补充相关输入或进一步分析。匹配的正式配置文件或合适的 ShroudForge 更新可能提供支持。
详细日志记录
Debug Console 会在主日志的 game-profile-discovery 来源下显示发现消息。若要查看每项比较和重定位字段,请将 Settings → General → Logging → Minimum level 设为 Diagnostic。Advanced 会显示其他摘要。
红色运行时横幅和日志条目 [compatibility-check] check=runtime 来自同一项运行时检查。现有 UI 刷新会先记录状态变化,再将相同状态发送给 Modloader。Debug Console 会对主日志中的警告和错误行应用现有弹出设置。
失败时,主日志会给出当前 .v2.unresolved.json 或 .v2.error.json 报告的路径。成功时,它会给出 .v2.proof.json 证据路径,以及生成的 beta_.json 配置文件的完整保存路径。报告保存在发现缓存中。
Linux 和 Proton
发现功能在原生运行时模块中执行,不需要外部 PowerShell 或 Python 程序。此工作流尚未在 Proton 下进行实际测试。
有关运行时、模组 API 和解析器的说明,请参阅 游戏引擎。