用户文章 | 原来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 创作。

你可能感兴趣的:(版本管理版本管理工具)