OpenHarmony专题分享 | OpenHarmony的游戏生态扩

发布时间:2023-03-27 10:21:00

本文根据绿盟游戏工作组专家在3月10日“会员创享日”活动分享的《OpenHarmony的游戏生态扩展》主题演讲整理而成。

一、游戏生态链

议题开始,工作组专家梳理了游戏产业链全景图,自上而下由游戏制作商,引擎厂商,游戏发行商,游戏渠道商,不同操作系统厂商,硬件厂商组成,可以看出整个游戏产业链是十分复杂的。针对整个产业链如何拓展OpenHarmony游戏生态?首先是抓住引擎厂商、游戏制作商、标准制定者这三个关键节点,打通关键节点,在OpenHarmony上进行游戏生态的适配。

二、引擎调研

2.1游戏引擎洞察

根据上述的关键节点,我们在应用市场做了游戏引擎调研,发现在Top100原生大型游戏中Unity和Cocos产品总占比63%,在小游戏引擎中Cocos产品占45%。可以看出Unity,Cocos 引擎是当前主要移动游戏产品创作工具,也是我们当前主要发力的游戏引擎。

从Cocos定位来看,Cocos Creator主要面向2D小游戏、简单3D游戏,Cocos 2dx主要面向2D原生游戏和小游戏。Unity3D是跨平台的综合型游戏开发工具,以2D、3D原生平台游戏开发为主。

2.2Cocos产品关系及开闭源策略

以Cocos产品为例,Cocos Engine是一个开源框架,Editor是闭源的,Cocos 2dx整个引擎都是完全开源的,Cocos Runtime 是一套小程序和小游戏的底层运行框架,是闭源商用的。基于Cocos 2dx开源状态,在适配Cocos 2dx过程中具有较高的自主性。

2.3Cocos 2dx与Cocos creator演进策略

Cocos 2dx经历了1.x、2.x、3.x 的迭代演进,2016年,Cocos creator基于Cocos 2dx推出Cocos creator1.x版本,2018年推出Cocos creator2.x版本,开始独立演进,彻底重写底层渲染器,只有部分渲染和触摸事件相关的功能,保留了Cocos 2dx移植过来的代码。2021年推出Cocos creator3.x,引擎进一步统一2D与3D的开发工作流,仅与2dx依赖的一些三方库相同。2019年5月,Cocos 2dx发布了最后一个支持JS的版本。2019年12月4日,发布最后一个稳定版本,之后Cocos不再维护Cocos 2dx。

我们发现,Cocos Creator的演进从2.x开始就已经独立,和2dx技术上没有重叠,因此2dx需要独立移植。

三、引擎和游戏移植案例

3.1Cocos 2dx引擎框架

对Cocos 2dx进行移植,我们参考了其他平台的实现。首先,顶层是业务层,通过SDK,包括登录、分享、华为hms,对接到游戏主体。游戏基于Cocos 2dx进行开发,Cocos 2dx目前支持JavaScript APIs、lua APIs、C++ APIs三种编程语言接口。JavaScript API、lua API通过对应的引擎与OS对接,C++ APIs可以直接调到Cocos 2dx引擎的主要部分。Cocos引擎对接不同操作系统平台。从整体框架大致梳理出,引擎适配主要包括SDK的移植,游戏基于OpenHarmony进行相应的API改造,引擎与系统的对接层进行OpenHarmony的改造三方面。

3.2Cocos 2dx引擎移植

打开代码结构可以看到,Cocos 2dx、Cocos Denshion包括了Cocos 2dx引擎主体逻辑代码,主要工作量是对接OS平台代码。External代码类型是三方库,主要工作量是三方库移植。Scripting代码类型是Lua/JS 虚拟机以及Cocos适配层,主要工作量为Lua虚拟机移植OH。Template代码类型是工程模板,主要工作量是提供标准OH应用工程模板。梳理最外层代码结构后,进一步打开Cocos 2dx引擎主体逻辑代码,Cocos 2dx对接系统层的文件与接口需要我们重点适配。Cocos 2dx依赖的系统接口包括重力传感器相关模块、系统语言类型、设备、文本输入能力、音频等等,需要使用OH JS代码重构,重新封装平台系统能力接口。

3.3Cocos 2dx引擎移植结果

模板工程、引擎组件测试是衡量Cocos 2dx适配完成的重要目录。模板工程的适配代表引擎的空模板工程在OpenHharmony上正常运行起来。基于模板工程增加的引擎各个组件,不同系统组件(node、action、audio等)需要在OpenHarmony上运行起来,并保证每个用例可以输出正确的结果。

3.4“开心消消乐”游戏移植

完成引擎适配后,游戏基于底座进行移植,“开心消消乐”游戏移植整个过程是把引擎版本给到乐元素后,3天跑通主流程。

项目全程进行了充分技术交流,重点工作包括前期整理三方库、三方SDK、系统接口、引擎模块等。根据梳理结果进行鸿蒙化改造,如游戏里的资源加载、UI动画、核心玩法等,相当于实现游戏的最小集。完善基础功能后,向上对接SDK层,对接华为登录、其他三方SDK,扩展必要功能。最后是测试和优化环节,如功能完整性测试和性能测试和优化。

aa

3.5Cocos引擎和游戏移植技术栈总结

总结分为引擎适配、游戏适配、适配完成后的工具以及调试优化三方面。应用层基于OpenHarmony应用包,使用JS以及TS开发,对接相应的生命周期。基于OpenHarmony应用包开发完成后,需要把引擎so加载进来,去和系统层进行对接,系统层需要对接字体、文件、audio等模块。除了引擎自身cpp-test以及游戏逻辑代码的适配,还涉及到三方库也要进行鸿蒙化。适配过程中用到的工具包括Smartperf性能工具适配、Renderdoc采集适配。

四、未来计划

在OpenHarmony社区上成立了游戏SIG组,充分发挥社区力量,共建OpenHarmony的游戏生态。

1.工作目标

构建基于OHOS上的游戏应用程序迁移及开发能力。在OH上端到端拉通游戏相关技术,让游戏类应用高效、方便在OH上运行,同时结合OH分布式能力,打造和提升游戏的分布式体验。

2.生态扩充

在游戏引擎社区建立影响力,引导游戏开发人员向OHOS上的应用迁移及开发。

3.标准建设

结合OHOS系统特色、引擎框架标准以及终端游戏评测模型,构建基于OHOS的游戏工程模板并不断更新完善游戏评测标准。

4.工具构建

基于OpenHarmony已有特色游戏分析测试工具,不断在游戏引擎适配过程中构筑能力更加全面,分析更加深入,测试效率更加高效的工具,助力游戏在OH上流畅运行。

分享:
请先后留下您的评论
热门评论
没有更多评论了
合作咨询
申请加入会员
请选择您企业的所属类别