用户文章 | 原来 Steam 和 Perforce 有这种关系?!
本文作者向华是资深游戏开发工程师,拥有 8 年游戏测试开发经验。他是前原神项目 P4 Admin,也是一名持续集成开发者。作为Perforce Helix Core的用户,他关注版本控制领域,为大家带来相关资讯。
龙智作为 DevSecOps 研发安全运营一体化解决方案供应商、Perforce 授权合作伙伴,持续关注研发生命周期管理领域动态与发展,为您提高最新洞察与最佳实践参考,帮助大型开发团队更好地进行研发资产管理,加强协作,提升研发效率。立即联系我们,了解版本控制的最佳实践与案例。
最近一次偶然的机会,看到了 Steam 的应用管理后台——STEAMWORKS。
Steam 平台所有的游戏端管理配置都需要在 Steamworks 平台上完成,正如官网所述,Steamworks 是一整套工具与服务,可以帮助构建和分发。
嚯,这不就是一套 CI/CD 嘛?
本着研究一二的态度,申请了主面板中测试项目的权限。
在各项配置界面中,先随便进行了一些配置的修改,保存后,发现上方出现了被红框框起来的警告文字。
此应用有未发布的更改。要提交这些更改,您需要使用“发布”选项卡中的发布工具。
推测一下,应该是变更发布后才能生效,可以理解。这就进入「发布」选项卡看看。
▲ Steamworks 发布选项卡
原来,Steamworks 的所有配置元数据后台用到了 Perforce,这也使用户有能力访问元数据所有的历史变更记录,甚至进行数据的 Revert 操作。
这给我们做类似 CMDB 类型的 Service 后台带来一种比较好的实践思路。过去我们用过的大多数配置后台都是一次性存储的,即永远存取最新的配置,用户改掉了就改掉了,如果想找回 N 天前的版本就很难。
但对于游戏这种可能会经常反复调试的工程,最好在全链路都用上 VCS,确保数据历史无忧。
仔细再看 SteamPipe 选项卡中,还可以窥见 Steam 应用 Perforce 的一些基本理念。
▲ Steamworks SteamPipe 选项卡
阅读一下,Steam 对于多 Depot 的冲突解决,有点类似于 iptables 后序规则覆盖先序规则,多么朴素的冲突处理方式啊!
突然间,我想到 Steam.exe 这个客户端下载游戏的时候,应该还运行了 p4 sync //SomeDepot/... 命令。
得,可能就是这样。
本篇结束。感谢阅读。
题图:City In A Glass Bottle. —— 通过 Midjourney AI 创作。
评论