3

如何通过UWA Pipeline来搭建工业级的研发流水线

 3 years ago
source link: https://blog.uwa4d.com/archives/UWA_PipelineBuild.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

随着国内手游向精品化和重度化不断挺进,研发团队对于开发流程的标准化、规范化、流程化、专业化和自动化需求也在持续增加。如何更加科学、高效地进行游戏项目研发,已经成为众多研发团队迫切需要解决的问题。

为此,我们在今年初推出了UWA Pipeline,并在刚刚过去的一个月中与十余家研发团队完成了正式接入。它的意义在于:从代码提交到编译出包,再到自动化测试,为大家搭建起一条“工业级”的研发流水线;不仅可以监控质量,同时还可以保障性能,在开发过程中全方位提供重要的信息反馈,为游戏项目保驾护航。

目前,UWA Pipeline已经实现了以下功能:

1. 自动代码提测、自动打包、自动部署到测试服

现在,大量的游戏开发团队都开始有意识地在半夜进行自动化打包(“Nightly Build”),从而让QA团队或制作人每天都能体验项目的最新版本。类似其它的CI/CD工具,UWA Pipeline也能定时、定期地执行上述操作,开发者仅需通过“可视化结点式”的操作来完成上述设置,非常简单。

1.png
UWA Pipeline 界面图

2. 自动对项目资源和代码进行检测

资源和代码几乎是每个游戏研发团队每天都在创作的内容。一个五十人级别的研发团队每天可能会有几十甚至上百的资源进行制作,几百甚至上千行代码进行修改和提交。

2.gif

在如此大量的资源、代码制作过程中,难免会引入各种各样的错误,为后续的质量安全带来难以预估的隐患。如何让Artist按照标准制作美术资源,如何让Developer更加规范地书写代码,这几乎是每一个管理者都在思考和探讨的方向。

UWA Pipeline中的本地资源检测,就是为解决该问题而打造的。通过该服务,研发团队可直接在项目中设定时间,定时在项目中对各种资源和代码进行检测。

3.gif

目前,绝大多数团队都喜欢在后半夜(12:00~8:00)对项目资源进行详细测试(“Nightly Check”),第二天上班后,主美开始对前一天产生的“问题”资源进行检测,并分发给相应Artist进行修改,而主程则会定期对代码的质量进行把控,特别是针对研发团队中的技术新人进行Code Review。

有过开发经验的研发人员都知道,很多性能和质量问题都是在开发过程中不经意间引入的,小到资源的设置大到内存的泄漏等。因此,通过UWA Pipeline,我们希望从源头上就协助研发团队把控好这第一道关,从资源的产生开始就尽可能把事情做对。

3. 自动提测UWA线上真人真机测试和自动化测试

在Nightly Build之后,研发团队可以加入一个“操作结点”,让打出的游戏包自动上传到UWA后台,并进行真人真机测试或者自动化测试。

通过这种方式,大家无需重复传统的提交方式:手动打开UWA官网、手动上传游戏包等到上传结束,而只需设定个固定时间,让其自动上传;同时,也可以大幅缩减性能监控的时间,并让其自动定期发生,不再需要大家平时特别惦记。

我们曾经在《如何让你的游戏性能转危为安?》一文中详细讨论过问题及时发现、及时解决的时效性:问题在两周之后解决所需要的时间,是及时解决所花费的时间的24倍,所以解决问题的最佳时间就是当下。

4.png

4. 本地多设备自动化测试,功能&性能双监控

在本地出包后,UWA Pipeline可直接在本地开启自动化测试,研发团队只需要通过简单配置就可以在自己的多台设备中自动安装和自动运行,通过自动化脚本就可以对当前的游戏版本进行回归测试,既可以测试功能,也可以结合GOT Online测试性能。

5.gif

比如测试新手流程的前30分钟是否顺利、充值是否有bug等流程性问题,也可以通过UI界面的不断开启、某个场景的不断挂机等检测是否存在性能隐患。

自动化回归测试的一大特点就是每次的测试流程几乎一致,那么就可以通过以上方式直接检测最新版本是否存在功能缺陷和性能问题,从而节省大量的人力测试时间,同样可以将监控频率不断加强,更加简单、高效地发现和定位问题。

5. 自定义研发流程事件

以上是UWA Pipeline中已提供的功能。当然,大家很可能已在研发过程中开发了适合自己项目自身的各种工具,比如AssetBundle文件的加密、DCC工具的特定检测、打通Email、钉钉、飞书和企业微信这些通讯工具等...这些自定义的事件也都可以通过UWA Pipeline来自动串联。我们也在不断根据用户的反馈来开发更多的Pipeline功能,希望可以让大家在今后的使用中更加便捷。

为每个游戏团队打造“工业级”研发流水线

UWA Pipeline的推出是为大家的项目开发打造一座扎实的底座,扩大研发产能的边界。

我们知道,优秀的匠人可以通过锤子打造出精美的马车,但如果想做出汽车甚至高铁,光靠锤子和经验是很难达到的。同样的,当玩家对于游戏品质的要求越来越高,当游戏本身可玩的内容需求越来越多,仅靠开发团队自身的能力已经很难满足高质量的内容制作和高效率的持续输出。

因此,任何一个向“精品化”迈进的团队,都需要这样一条“工业化的流水线”。在这条流水线中,每一个节点都有明确的边界、明确的接口、稳定的交付质量、可预期的交付时间,才能给大规模协作赋能,产业能量也才能通过大量的社会协作爆发出来。

6.png

放眼来看,国内厂商的游戏制作标准正向着3A化过渡。接下来的几年,中国游戏的未来,工业化的趋势一定会越来越明显,这也是未来我们UWA不断努力的方向。

7.png


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK