使用Cocos 2d-x引擎构建鸿蒙原生游戏 原创

游戏技术分享
发布于 2025-5-7 15:35
浏览
0收藏

Cocos 2d-x引擎HarmonyOS NEXT适配工作主要集中在下图所示的Cocos2d C++ Engine,C++ APIs,Lua Engine,Lua binding,JS VM(SpiderMonkey),JS Binding、Native Platform(OpenHarmony平台)等模块以及三方库适配上。

使用Cocos 2d-x引擎构建鸿蒙原生游戏-鸿蒙开发者社区cke_8034.png

主要模块

模块

HarmonyOS适配工作

平台配置

添加HarmonyOS NEXT平台宏定义。

Cocos 2d-x核心C++代码的适配

参考相应引擎HarmonyOS NEXT化版本进行合入适配。主要包括audio、base、platform等模块适配。

Lua引擎的适配

参考相应引擎HarmonyOS NEXT化版本对Lua脚本进行合入适配(Lua语言工程涉及)。

JS引擎的适配

参考相应引擎HarmonyOS NEXT化版本对JS脚本进行合入适配(JS语言工程涉及)。

Cocos 2d-x依赖的部分三方开源库的适配

游戏引擎使用三方库若无特殊定制,可以参考相应引擎HarmonyOS NEXT化版本进行合入,否则需要使用HarmonyOS NEXT NDK重新编译。

Cocos 2d-x对接系统接口的HarmonyOS适配

  • HarmonyOS NEXT NDK提供了C++的系统接口,可在C++层直接调用。
  • HarmonyOS NEXT NDK只提供了JS的系统接口,使用HarmonyOS的NAPI框架对接。

游戏HarmonyOS NEXT适配流程

使用Cocos 2d-x引擎构建鸿蒙原生游戏-鸿蒙开发者社区cke_21717.png

准备工作

  1. 访问Cocos2d-x的​​GitHub页面​​ ,选择合适的HarmonyOS NEXT版本引擎分支,可以通过git clone命令来获取。
  2. 获取Cocox2d-x引擎后,如果需要获取git子模块,可以在项目的根目录下运行以下命令,这个命令会递归地初始化并更新项目中所有的git子模块。

git submodule update --init --recursive

如果只想更新特定的子模块,可以进入到该子模块所在的目录,然后运行以下命令:

git submodule update –init
  1. 根据external/config.json配置到GitHub页面下载源码对应三方库。
  2. 依据游戏使用语言(C++/Lua/JS)运行引擎相应样例工程,验证引擎。

引擎代码适配

将对应引擎版本中HarmonyOS NEXT化相关代码增量合入开发者游戏引擎,主要涉及如下:

  • 增加HarmonyOS NEXT平台宏定义。
  • audio、base、platform等模块涉及平台分支的部分做HarmonyOS NEXT化适配。
  • lua-bindings/spidermonkey脚本适配(Lua工程、JS工程涉及)。
  • HarmonyOS平台三方库。
  • CMakeList中添加新增文件及三方库目录路径、链接HarmonyOS NEXT平台三方库及系统库等。
  • 游戏语言(C++/Lua/JS)相应引擎样例工程拷贝到项目工程下(通常与其他平台同一目录),工程结构如下:

使用Cocos 2d-x引擎构建鸿蒙原生游戏-鸿蒙开发者社区cke_195.png

游戏代码适配,编译构建版本包

对游戏代码涉及平台分支的部分做HarmonyOS NEXT化适配。

  • 修改HarmonyOS项目工程下的CMakeList,主要涉及路径及资源复制的修改,根据需要将游戏项目中的资源文件(如图片、音频、字体等)复制到HarmonyOS NEXT项目的rawfile文件中:

file(GLOB cppTestresFiles "${COCOS2DX_ROOT_PATH}/samples/Cpp/TestCpp/Resources/*")

file(COPY ${cppTestresFiles} DESTINATION ${res_raw_folders})
  • 根据Cocos引擎的变化,对游戏涉及平台分支的部分进行相应的调整和修改。
  • 配置签名信息后,使用DevEco Studio开发者工具编译项目,并在HarmonyOS NEXT设备上进行测试,点亮游戏。

使用Cocos 2d-x引擎构建鸿蒙原生游戏-鸿蒙开发者社区


 NEXT的官方文档等,以获取更详细的指导和支持。比如在此过程中可能会遇到屏幕尺寸、分辨率等适配问题,可以根据HarmonyOS NEXT平台的特性,对相关参数进行调整和优化,以保证游戏在HarmonyOS NEXT设备上的最佳效果。

接入系统能力和游戏服务

游戏点亮后,需要接入HarmonyOS NEXT平台系统能力(电量、振动器、网络等),为向玩家提供快捷、安全的登录、支付等功能,游戏需集成登录、支付等应用服务,其中游戏业务逻辑调用HarmonyOS NEXT系统接口的原理如下图所示:

使用Cocos 2d-x引擎构建鸿蒙原生游戏-鸿蒙开发者社区cke_30662.png

​集成应用服务​​的原理如下图所示:

  • Game Service Kit接入

使用Cocos 2d-x引擎构建鸿蒙原生游戏-鸿蒙开发者社区cke_198.png

  • IAP Kit接入

使用Cocos 2d-x引擎构建鸿蒙原生游戏-鸿蒙开发者社区cke_199.png

游戏上架

  1. 配置证书签名信息,参考应用/元服务签名
  2. 调试阶段:构建hap包进行调试功能验收,需要申请调试证书、注册调试设备、申请调试Profile,具体操作请参见调试HarmonyOS应用/元服务
  3. 发布阶段:构建app包提审上架,需要申请发布证书、申请发布Profile、发布HarmonyOS应用,具体操作请参见​​发布应用(APP)​

更多问题可关注:

鸿蒙游戏官方网站:​​已有游戏移植-鸿蒙游戏-华为开发者联盟​

公开课:​​华为开发者学堂​

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
收藏
回复
举报
回复
    相关推荐