作者|罗燕珊
编辑|蔡芳芳
新平台的诞生,往往意味着新的机会。
尽管这两年国内游戏政策不断收紧,但鸿蒙的到来,依然让不少小型休闲游戏开发者跃跃欲试,而随着游戏引擎开始支持 HarmonyOS,HarmonyOS 的游戏生态或将开启新的局面。
鸿蒙平台的“新红利”
“提前入驻平台,就可能获得前期的红利。”从事游戏开发十多年的黎瑾(化名)话语中带着一丝无奈。
2020 年 12 月华为面向开发者发布 HarmonyOS 手机 Beta 版,紧接着是首届 HarmonyOS 开发者创新大赛的举办。黎瑾此前一直对 HarmonyOS 很期待,今年上半年,当朋友提议做个鸿蒙应用的时候,大家很快一拍即合,组队参赛,将之前开发的一款微信小程序游戏移植到了 HarmonyOS 上。
但出乎意料的是,移植并没有大家想的那么简单。比赛那会很多引擎都还没适配 HarmonyOS,所以很多东西需要从底层开始捣鼓。后来即使解决了技术问题,得以完成比赛作品并收获奖项,黎瑾却遭遇游戏政策的再度收紧,其开发的游戏因为缺乏版号的原因暂时上不了应用商店。
他表示,去年像他们这类广告版游戏(不含应用内购,依靠广告变现)的休闲游戏,只需要有软著(《计算机软件著作权登记证书》)就行。但今年即使是广告版本也需要有版号,而版号只能是有公司资质的才可以申请,并且申请审核周期长。像他们这些因兴趣爱好才组到一起的小团队,背后自然也没有公司主体。
虽然应用上架遇到些阻滞,黎瑾表示还是会持续关注 HarmonyOS,看看有没有办法在政策不改变的情况下,进入华为应用市场的 HarmonyOS 精品游戏阵营。
“平台发展前期基本上是靠个人开发者去慢慢发展起来的,据我观察,像微信小游戏,第一批上线的好多游戏虽然质量参差不齐,但多数都是个人开发者做出来的。”黎瑾感慨道,“HarmonyOS 一开始就已经跟知名的游戏做了兼容,玩游戏毕竟是很多人的选择,如果没有游戏,对一个生态的影响确实很大。”
游戏开发和其他应用开发是两码事
一个备受关注的问题是,既然 HarmonyOS 兼容安卓应用,那还有再开发鸿蒙版的必要吗?
黎瑾给出的回答是“有必要”,因为“鸿蒙设备开放了不少设备能力,比如屏幕流转,游戏性能也可以得到提升。”
但他也直言,对于 App 开发商来说,开发鸿蒙版需要很高的成本,应用的开发技术比较多,尤其如果是原生开发,很多功能需要重新写,而如果使用跨平台的技术解决方案,则需要等适配。但游戏应用还不太一样,现在的游戏开发基本都离不开引擎,若引擎没有适配鸿蒙系统,那游戏开发者就需要从底层做起,比如可能从 Open GL、Web GL,还有一些相关的技术从头开始写。
黎瑾原本做的小程序游戏是基于 Cocos Creator 引擎开发,刚开始打算直接将其移植到 HarmonyOS 的时候,寻思研究一下 Cocos Creator 的底层适配然后移植会比较简单,但研究了两三天后发现并没有预想中那么容易,需要了解大部分的底层架构以及适配代码,工作量比较大。当时离比赛结束只剩下两个月,每个人都是利用业余时间去开发,考虑再三,黎瑾下决心不移植,直接原生开发。
在原生开发的过程中,黎瑾等人本来选择用 JavaScript 开发,因为 Cocos Creator 引擎是用 JS 作为脚本语言,所以大家想着如果能直接移植就可以省不少工作量,渲染层可以用 WebGL。但当把游戏所需的物理引擎改了遍并发布成 JS 版运行时,却发现不少问题。当时 HarmonyOS 的 JS SDK 并不完善,渲染时会有拖影和一些不流畅的地方。
“这种发布 JS 版本的方式尝试了很多次,但每次都还是会发现不少不稳定因素,之后我们就改变了技术方向,使用 Java SDK 开发。”最后在尝试了好几个 Java 版本后,黎瑾他们终于成功把物理引擎集成到 HarmonyOS 里面。因为 Creator 引擎的代码没办法用,加上他们的小游戏并不复杂,所以团队自己写了一套底层的渲染接口和渲染框架,再去结合物理引擎,最后完成了 HarmonyOS 小游戏的创作。
开源游戏引擎先行支持
开发一个游戏,用游戏引擎来做会简单得多。因此,来自游戏引擎的支持对鸿蒙生态来说很重要。虽然在黎瑾参赛那会,主流游戏引擎还没有支持 HarmonyOS。但从 6 月份开始,形势正在起变化。
6 月 18 日,在 HarmonyOS 2.0 发布半个月后,国产主流游戏引擎 Cocos 发布了 Cocos Creator 3.2 ,并宣布正式支持 HarmonyOS,成为全球首个支持 HarmonyOS 的游戏引擎。在 3.2 版本,Creator 支持一键将游戏打包为 HarmonyOS 应用。这意味着未来很多开发者可以直接基于 Cocos 引擎开发 HarmonyOS 原生游戏,开发效率将大幅提升。
Cocos 引擎 CTO 林顺告诉 InfoQ,支持 HarmonyOS 算是他们团队未竟梦想的延续。
“可能很多人都不知道,其实早在王哲和我决定出来创业之前,‘Cocos’引擎是服务于国产手机操作系统‘WoPhone’的一个内部子项目,目标是为操作系统引入游戏内容,后来因为‘WoPhone’手机操作系统的资源投入跟不上发展需求,引擎项目需要被暂停,我们觉得很可惜,才将‘Cocos’引擎项目拆分出来独立融资,走上了引擎独立发展之路。今天引擎团队的很多核心成员都还是当年国产操作系统的项目核心成员,主要工作职责都是操作系统的研发,对自主产权的操作系统有着特殊的情结。”林顺说,这成为了 Cocos 与鸿蒙合作的一个契机。
据了解,Cocos 与华为团队深入配合了半年多的时间,在这个过程中, Cocos 团队做的工作主要是系统适配、第三方库编译适配、引擎启动流程改造等方面。具体而言,Cocos Creator v3.2 在渲染层通过 Open GL ES 2.0&3.0 支持了 HarmonyOS 平台,集成了 Page Ability,改造了引擎的启动流程,对接了操作系统的功能,并做了所有第三方库和引擎对方舟编译的支持,编译为 HarmonyOS 平台的格式,完整地支持了鸿蒙游戏的开发。
双方配合开发的过程中,华为的技术团队会帮助 Cocos 解决一些系统适配性的问题,还有定位一些比较不好调试的技术问题,双方也会一起讨论技术方案。但更多的是“细节上的打磨,持续的优化和改进,双方工具链的无缝衔接优化”,这些才是真正耗时间的地方。 据 Cocos 引擎技术总监凌华彬介绍,对于通用商业游戏引擎的架构设计,跨平台是很基本的能力,要求支持一次编码就可以跨平台发布。在 Cocos Creator 支持了 HarmonyOS 平台之后,基于 Cocos Creator 最新版本的游戏可以无缝发布到 HarmonyOS 平台,且社区内现有的大量游戏只要升级到3.2版本,即可顺利发布到 HarmonyOS 平台。
但黎瑾也提到,虽然 Cocos 引擎支持 HarmonyOS,但必须要升级到高版本(即 v3.2),而这个升级成本有点高。目前 Cocos Creator 2.0 老版本并不支持发布成 HarmonyOS 游戏,这其实对不少游戏来说是个挑战。“我们做的游戏虽然很小,但从 Creator 2.0 升级到 3.0 需要耗费不少功夫,因为这里面 API 接口变动比较大,并且脚本语言移除了对 JS 的支持,如果之前是用 JS 写的脚本,还需要改为 TS。”黎瑾说。
据 InfoQ 了解,后续 Cocos Creator 的低版本也将逐步支持 HarmonyOS。
Harmony 游戏开发的想象空间
凌华彬指出,针对 HarmonyOS 游戏开发,目前 Cocos Creator v3.2 需要先构建出项目工程,再导入华为的开发工具 DevEco Studio,才可以打包出 HAP 格式的安装包,这样的话需要在两个工具间切换,其实对开发者的体验不是太好。
不过他同时表示,这点已经和华为团队沟通过,未来,华为团队会推出新的 DevEco Studio 版本,支持命令行调用的模式,Cocos 引擎也会对应进行适配和升级,开发者就可以在 Cocos Creator 的面板里一键打包出 HAP 格式的安装包,也可以方便地在自己的 CI (Continue Integrate)服务器上做自动出包、自动测试功能,这是很多团队的刚需。
另外,凌华彬强调, HarmonyOS 多设备的协同和流转能力非常适合 IoT 行业,将带来全新的交互模式,基于此游戏行业也会有不一样的互动模式出现,Cocos 引擎未来会重点去支持 HarmonyOS 的多设备能力,拓展新的应用场景。
对于目前市面上鸿蒙版主流游戏 App 并不多的现状,凌华彬认为,任何一个新的事物,都需要一个发现、认识、接受和拥抱的过程。“从我们接触到的游戏厂商来看,大家对 HarmonyOS 平台的发展还是保持高度关注的,社区内更是有不少人已经在尝试使用 HarmonyOS 平台独特的多设备协同能力去构建不一样的游戏内容。”
“未来,HarmonyOS 平台必然会成为重要的移动平台之一,不仅覆盖手机和平板,更是会将 XR 设备、车机设备、智慧家电等 IoT 设备串联起来,提供更广阔的设备空间和更顺畅的自然交互模式,这也给游戏或者应用内容的交互提供了更大的舞台,结合更强的游戏交互能力,势必会带来全新的内容和不一样的应用场景,我们对此充满期待。”
延展阅读:
《HarmonyOS 生态,投入还是继续观望》