# 其他原生目标引擎适配
# 一、概述
原生目标游戏引擎,如果使用的编程语言有工具链能转换到WebAssembly,理论上都可以适配到微信小游戏平台运行。
💡 对于已支持 WASM + WebGL 导出的引擎(如 Cocos2d-x、UE 等),推荐直接使用通用引擎适配方案,该方案提供了完善的转换工具和能力 SDK 支持。
# 方案特点
- 保持原引擎工具链与技术栈
- 无需重写游戏核心逻辑
- 引擎层转换工具与微信小游戏运行环境保证适配兼容,保持较高还原度
- 通过封装SDK对接平台开放能力
# 二、技术原理
基于 WebAssembly 技术,原生游戏引擎可以通过 emscripten 工具链编译为 WASM 模块,配合平台适配层在微信小游戏环境中运行。
适配到微信小游戏,游戏开发的流程及运行时支持如下:
- 开发阶段:对接平台能力
- 导出阶段:使用转换打包工具,直接转换成小游戏包
- 运行阶段:微信侧提供WebAssembly基础能力及底层接口支持
# 三、原生引擎接入评估
对于原生引擎的项目,引擎适配可行性评估如下:
| 引擎模块 | 是否支持 | 解决方案 |
|---|---|---|
| 引擎基础模块 | 部分支持 | 编译型语言需支持emscripten工具链编译,解释型语言则看语言虚拟机是否能编译成wasm |
| 第三方库 | 部分支持 | 类似基础模块编译导出,或者看该库是否有web版本 |
| 渲染管线与接口 | 支持WebGL(1.0及2.0) | 可根据需要自行适配emscripten提供的egl或html5_webgl API,也可使用emscripten对glfw,SDL,GLUT等库的兼容 |
| 脚本 | 部分支持 | 需语言虚拟机可编译成wasm(暂不支持JIT),如lua,或者使用js(支持JIT),如PuerTS |
| 音频 | 支持 | 需引擎层或者第三方库适配,目前有web audio及原生的InnerAudio两种API可用 |
| 网络 | 支持 | 需引擎层或者第三方库适配,目前支持http/websocket/tcp/udp |
| 多线程 | 部分支持 | 目前小游戏侧还没有完备的web worker,仅能在web worker里使用部分API,如网络及文件,且不支持SharedArrayBuffer |
| 文件系统 | 支持 | 需引擎层或者第三方库适配到小游戏wx filesystem,微信侧可提供emscripten层适配 |
# 四、接入流程
接入流程主要包含以下几个环节:
- 可行性评估:根据上述评估表,确认引擎模块是否支持编译为 WebAssembly
- 工具转换:使用通用引擎适配方案提供的转换工具进行格式转换
- 平台能力接入:通过能力 SDK 集成网络、文件系统、微信开放接口等平台能力
- 调优体验:主要关注启动耗时及运行性能(帧率、内存使用、crash情况),可参考通用引擎适配方案中的相关文档
# 五、联系我们
可填写收集表,我们会根据项目情况评估后建联