首次独家呈现 OPPO 四大创新技术实践,尽在 QCon 上海 OPPO 技术专场! 了解详情
写点什么

开发者眼中的 HarmonyOS 游戏生态:有红利也有挑战

2021 年 9 月 22 日

开发者眼中的 HarmonyOS 游戏生态:有红利也有挑战

作者|罗燕珊

编辑|蔡芳芳


新平台的诞生,往往意味着新的机会。


尽管这两年国内游戏政策不断收紧,但鸿蒙的到来,依然让不少小型休闲游戏开发者跃跃欲试,而随着游戏引擎开始支持 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 生态,投入还是继续观望?》

2021 年 9 月 22 日 12:133175
用户头像
罗燕珊 InfoQ中文站编辑

发布了 154 篇内容, 共 54.6 次阅读, 收获喜欢 265 次。

关注

评论 1 条评论

发布
用户头像
感谢鸿蒙游戏的先行者!
2021 年 09 月 22 日 20:20
回复
没有更多了
发现更多内容

小手哆嗦一下,就能用 Python Django 实现一个微型博客系统

梦想橡皮擦

8月日更

【插画】一文看懂容器k8s

恒生LIGHT云社区

Docker 容器 k8s

VSCode July 2021 (version 1.59) 更新

IT蜗壳-Tango

8月日更

Go 学习笔记之 Channels

架构精进之路

Go 8月日更

高防服务器,企业成长安全控制有效性的关键工具

九河云安全

为构建大型复杂系统而生的微服务框架 Erda Infra

尔达Erda

开源 程序员 微服务 云原生 运维开发

信创产业已成现象级新风口,快来加入争做“弄潮儿”

华为云开发者社区

开源 信创 opengauss openEuler 鲲鹏

c++ 构造函数详解

若尘

c++ 构造函数 8月日更

云计算运维与传统运维工作有啥不同?需要什么资质?

行云管家

云计算 服务器 IT运维 云计算运维

阿里(钉钉部门)远程面,三面坐上“直通车”,拿下offer没问题

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

零代码上线小布对话技能:技能平台的实践与思考

OPPO小布助手

人工智能 自然语言处理 算法 零代码 语义理解

uni-app技术分享| 怎么用uni-app实现呼叫邀请

anyRTC开发者

uni-app 音视频 呼叫邀请 点对点呼叫

Compose 可组合项的生命周期

Changing Lin

8月日更

跨链治理之入门三问 :WHO WHAT HOW

趣链科技

区块链 治理机制

Vue进阶(二十六):详解 router.push()

No Silver Bullet

Vue router 8月日更

prometheus 语法

Rubble

Prometheus 8月日更

netty系列之:使用POJO替代buf

程序那些事

Java Netty nio 程序那些事

当容器应用越发广泛,我们又该如何监测容器?

阿里巴巴云原生

云计算 容器 云原生 监控 中间件

【Vue2.x 源码学习】第三十二篇 - diff算法-乱序比对

Brave

源码 vue2 8月日更

【LeetCode】第一个只出现一次的字符Java题解

HQ数字卡

算法 LeetCode 8月日更

云小课 | 到底什么是区块链?

华为云开发者社区

区块链 华为云 区块链的定义 区块链的解决方案 区块链的发展

某离散制造行业龙头客户“主数据管理平台”建设分享

用友YonBIP

主数据管理

数据中台为什么要建标签体系,分类它不香吗?

用友YonBIP

数据中台 标签体系

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Java~~~

Java 架构 面试 微服务 多线程

数据中台——数据汇聚存储技术解析

用友YonBIP

数据中台 数据存储

手撸二叉树之数据流中的第 K 大元素

HelloWorld杰少

数据结构与算法 8月日更

AIMA:如何通过质量指标提高QA的绩效(译)

BY林子

软件测试 绩效 QA

测试开发之系统篇-Docker容器安装

禅道项目管理

Docker 测试开发

差点跳起来了!全靠这份999页Java面试宝典,我刚拿到美团offer

Java~~~

Java 架构 面试 微服务 多线程

拒绝内卷!Github连夜封杀的阿里全套Spring Security高级笔记

Java 编程 架构 面试 程序人生

Vue进阶(二十五):<component>实现动态组件

No Silver Bullet

Vue 动态组件 8月日更

开发者眼中的 HarmonyOS 游戏生态:有红利也有挑战-InfoQ