# 典型引擎适配
本方案基于 Emscripten 编译器工具链,将 C/C++ 游戏引擎代码编译为 WebAssembly(WASM),使其可在浏览器中运行,再通过转换工具转换为微信小游戏。
# Emscripten 简介
Emscripten 是一个完整的编译器工具链,可以将 C/C++ 代码编译为 WebAssembly(WASM),从而在浏览器中运行。
# 核心原理
C/C++ 源码 → Emscripten (emcc/em++) → .js + .wasm + .data → 浏览器运行
# 导出产物说明
| 文件 | 说明 | 是否必需 |
|---|---|---|
game.js | JavaScript 胶水代码,负责加载和初始化 WASM | ✅ 必需 |
game.wasm | WebAssembly 二进制文件,包含编译后的 C/C++ 逻辑 | ✅ 必需 |
game.data | 游戏资源数据包(图片、音频、配置等) | ✅ 必需 |
game.data.js | 游戏资源包加载和解析 | ✅ UE 引擎必需 |
index.html | 测试用 HTML 页面 | ⬜ 可选 |
⚠️
game.js文件大小不能超过 2MB。微信小游戏对主包 JS 文件有严格的大小限制,如果导出的game.js超过 2MB,需要调整编译优化等级来减小体积。具体优化方式请参考各引擎导出指南中的说明。
💡 无论使用什么引擎,最终导出的产物结构都是相同的。本方案的转换工具需要
.js、.wasm和.data文件。
# 各引擎导出指南
请根据您使用的引擎选择对应的文档:
- Cocos2d-x 导出 - Cocos2d-x 通过 Emscripten 编译导出 H5 游戏
- UE4 导出 - Unreal Engine 通过 Emscripten 编译导出 H5 游戏
- 自研引擎导出 - 自研 C/C++ 引擎通过 Emscripten 编译导出 H5 游戏
如果您使用的引擎不在上述列表中,请参考 自研引擎导出。