Appearance
发布包结构
Unison Engine 以预编译二进制包形式发布,用户无需编译即可运行游戏。
发布包目录结构
MyGame/
├── launcher.exe # 游戏启动器 (Rust)
├── unison.xml # 引擎配置文件
│
├── bin/ # 引擎运行时
│ ├── client.exe # 引擎客户端
│ ├── unison_engine.dll # 引擎核心 DLL
│ ├── glfw3.dll # GLFW 窗口
│ ├── OpenAL32.dll # OpenAL 音频
│ ├── concrt140.dll # VC++ 并发运行时
│ ├── msvcp140.dll # VC++ C++ 标准库
│ ├── msvcp140_1.dll
│ ├── msvcp140_2.dll
│ ├── msvcp140_atomic_wait.dll
│ ├── msvcp140_codecvt_ids.dll
│ ├── vcruntime140.dll # VC++ C 运行时
│ ├── vcruntime140_1.dll
│ ├── libcrypto-3.dll # OpenSSL 加密
│ ├── libssl-3.dll # OpenSSL TLS
│ ├── libffi-8.dll # Python CFFI
│ ├── builtin/ # 内置资源包
│ │ ├── Lib.cpk # 引擎Python标准库
│ │ └── builtin_res_0.cpk # 内置资源(字体)
│ └── ffmpeg/ # FFmpeg 运行时
│ ├── ffmpeg.exe
│ ├── avcodec-61.dll
│ ├── avdevice-61.dll
│ ├── avfilter-10.dll
│ ├── avformat-61.dll
│ ├── avutil-59.dll
│ ├── brotlicommon.dll
│ ├── brotlidec.dll
│ ├── brotlienc.dll
│ ├── jxl.dll
│ ├── jxl_cms.dll
│ ├── jxl_threads.dll
│ ├── libsharpyuv.dll
│ ├── libwebp.dll
│ ├── libwebpdecoder.dll
│ ├── libwebpdemux.dll
│ ├── libwebpmux.dll
│ ├── libx264-164.dll
│ ├── libx265.dll
│ ├── msvcp140.dll
│ ├── postproc-58.dll
│ ├── swresample-5.dll
│ ├── swscale-8.dll
│ ├── vcruntime140.dll
│ ├── vcruntime140_1.dll
│ └── zlib1.dll
│
├── Scripts/ # 游戏脚本(由 unison.xml 配置挂载)
├── scene/ # 场景资源(由 unison.xml 配置挂载)
├── log_inst_0.txt # 运行时日志(由 unison.xml 中 log 配置生成)DLL 速查表
引擎核心
| 文件 | 说明 |
|---|---|
launcher.exe | 游戏启动器 (Rust),负责加载引擎 |
client.exe | 引擎客户端(位于 bin/) |
unison_engine.dll | 引擎核心,所有 C++ 模块和 Python 绑定均在此 DLL 中 |
unison.xml | 引擎配置文件 |
Cocos2d-x 渲染
| 文件 | 说明 |
|---|---|
glfw3.dll | 跨平台窗口管理 |
OpenAL32.dll | 3D 音频定位 |
VC++ 运行时 (VS 2022)
| 文件 | 说明 |
|---|---|
msvcp140.dll | C++ 标准库 |
vcruntime140.dll / vcruntime140_1.dll | C 运行时 |
concrt140.dll | 并发运行时 |
msvcp140_1.dll / msvcp140_2.dll | C++ 标准库扩展 |
msvcp140_atomic_wait.dll / msvcp140_codecvt_ids.dll | 标准库辅助 |
Python 依赖
| 文件 | 说明 |
|---|---|
libffi-8.dll | Python CFFI,用于 exio3 等 C 扩展模块 |
libcrypto-3.dll | OpenSSL,用于 CPK AES 解密 |
libssl-3.dll | OpenSSL TLS |
FFmpeg 组件
| 文件 | 说明 |
|---|---|
ffmpeg.exe | FFmpeg GPL wrapper |
avcodec-61.dll | 音视频编解码 |
avformat-61.dll | 容器格式读写 |
avutil-59.dll | 通用工具 |
swresample-5.dll | 音频重采样 |
swscale-8.dll | 图像缩放 |
avfilter-10.dll | 滤镜 |
avdevice-61.dll | 采集设备 |
postproc-58.dll | 后处理 |
libx264-164.dll | H.264 编码 |
libx265.dll | HEVC 编码 |
libwebp.dll / libwebpdemux.dll / libwebpmux.dll | WebP 图像 |
jxl.dll / jxl_cms.dll / jxl_threads.dll | JPEG XL |
libsharpyuv.dll | Sharp YUV 转换 |
brotlicommon.dll / brotlidec.dll / brotlienc.dll | Brotli 压缩 |
zlib1.dll | ZLIB 压缩 |
引擎入口
引擎启动时,按 unison.xml 中 <filesystems> 配置的顺序查找入口脚本,在挂载点中搜索:
init.py— Python 引擎初始化逻辑main.py— 游戏主逻辑
入口脚本由开发方自行决定,没有硬编码的文件名。
配置文件
| 文件 | 说明 |
|---|---|
unison.xml | 标准配置文件(窗口、VFS、Python 模块映射等) |
部署清单
- 将发布包整体拷贝到目标机器
- 确保
unison.xml中的路径宏在目标机器上正确 - 目标机器需安装 VC++ 2022 运行库(如果 bin/ 目录已携带运行时 DLL 则可省略)
- 双击
launcher.exe启动游戏