Skip to content

引擎架构

概述

Unison Engine 基于 EMaix Engine 核心,集成 Cocos2d-x 渲染、Wwise 音频、FFmpeg 视频播放和 NEPython 3.13.14 脚本运行时,支持 Windows 和 Android 平台。

整体架构

┌──────────────────────────────────────────────────────┐
│                  Python 游戏脚本                     │
│              (NEPython 3.13.14 运行时)               │
├──────────────────────────────────────────────────────┤
│           pybind11 绑定层 (unison.* 模块)            │
├──────────────────────────────────────────────────────┤
│                                                    │
│                   Unison Engine                     │
│  ┌──────────┬──────────┬──────────┬──────────────┐  │
│  │ 场景管理  │ 渲染系统  │ 音频系统  │   UI 系统    │  │
│  │ Scene    │ Render   │ Wwise    │  CocosUI     │  │
│  ├──────────┼──────────┼──────────┼──────────────┤  │
│  │ 游戏对象  │ 配置系统  │ 日志系统  │  信号系统    │  │
│  │GameObject│ Config   │ Log      │  Signal      │  │
│  ├──────────┼──────────┼──────────┼──────────────┤  │
│  │ 数学库    │ 虚拟FS   │ 平台适配  │  CpkImporter │  │
│  │ Math3D   │ VFS      │ Platform  │              │  │
│  └──────────┴──────────┴──────────┴──────────────┘  │
│                                                    │
├──────────────────────────────────────────────────────┤
│                  集成组件层                          │
│  ┌──────────┬──────────┬──────────┬──────────────┐  │
│  │Cocos2d-x │  Wwise   │  FFmpeg  │  FreeType    │  │
│  │ OpenGL   │  音频     │  视频    │  字体渲染    │  │
│  └──────────┴──────────┴──────────┴──────────────┘  │
├──────────────────────────────────────────────────────┤
│                  操作系统 (Windows / Android)        │
└──────────────────────────────────────────────────────┘

目录结构

UnisonEngine/
├── build.py                          # 跨平台构建脚本 (Windows / Android)
├── pack.py                           # 构建产物打包脚本
├── cepk.py                           # CPK 文件格式库 (压缩/混淆/加密)
├── CMakeLists.txt                    # 顶层 CMake 构建文件

├── UnisonEngine/                     # 引擎核心模块
│   ├── core/                         # 引擎核心 (日志、配置、场景树、API)
│   ├── scene/                        # 场景管理 (GameObject、Node3D、世界系统)
│   ├── render/                       # 渲染系统 (字体、渲染设备)
│   ├── ui/                           # UI 管理 (Cocos UI 集成)
│   ├── python/                       # Python 运行时 (嵌入 NEPython 3.13.14)
│   ├── platform/                     # 平台适配层 (Win32 / Android)
│   ├── WwiseManager.cpp/h            # Wwise 音频管理器
│   ├── FFmpegVideoPlayer.cpp/h       # FFmpeg 视频播放器
│   └── AkVFSIOHook.cpp/h             # Wwise VFS 文件系统钩子

├── UnisonLoader/                     # 引擎加载器 (EXE 入口)
│   └── UnisonLoader.cpp              # 动态加载 DLL 或静态链接入口

├── cocos/                            # Cocos2d-x 引擎 (2D/3D/UI/物理/音频等)

├── external/                         # 第三方库
│   ├── ffmpeg/                       # FFmpeg (libavcodec/libavformat...)
│   ├── glew-2.3.1/                   # GLEW (OpenGL 扩展)
│   ├── libpng-libpng18/              # libpng (PNG 编解码)
│   ├── bullet3-master/               # Bullet Physics (3D 物理)
│   ├── freetype_src/                 # FreeType (字体渲染)
│   └── libjpeg-turbo-3.1.4.1/       # libjpeg-turbo (JPEG 编解码)

├── wwise/                            # Audiokinetic Wwise SDK (音频中间件)
├── include/                          # 头文件 (Python C API / pybind11 / pygame)
├── Android/                          # Android 平台预编译库
└── scripts/                          # 构建辅助脚本

技术栈

领域技术
引擎核心EMaix Engine
渲染引擎Cocos2d-x (OpenGL)
音频Audiokinetic Wwise
视频FFmpeg
脚本运行时NEPython 3.13.14 (嵌入解释器)
绑定层pybind11
字体FreeType
图像stb_image.cpp / libpng / libjpeg-turbo
物理Bullet Physics
构建系统CMake
打包C ExRFy File System (CEFS/CEPK)
平台Windows (MSVC) / Android (NDK)

C++ 模块总览

模块路径职责
核心UnisonEngine/core/日志、配置、场景树、VFS、数学库
场景UnisonEngine/scene/GameObject、Node3D、世界系统
渲染UnisonEngine/render/字体管理、渲染设备
UIUnisonEngine/ui/Cocos2d-x UI 封装
音频UnisonEngine/WwiseManager.cppWwise 完整封装
视频UnisonEngine/FFmpegVideoPlayer.cppFFmpeg 视频播放
PythonUnisonEngine/python/Python 运行时、模块注册
平台UnisonEngine/platform/Win32 / Android 适配
入口UnisonLoader/EXE 入口点、DLL 加载

Python 模块总览

模块说明
unison.vfs虚拟文件系统 — CPK 挂载、文件查找/读取、目录遍历
unison.excore引擎核心 — 窗口管理、帧率控制、消息框
unison.log日志系统 — 分级日志输出
unison.config配置系统 — XML 配置解析、加密、XOR 编解码
unison.math3d数学工具 — Vector2/3/4、Matrix、Quaternion、Color、Ray、Plane、Bounds
unison.render渲染系统 — 场景渲染、帧率统计
unison.gameobject游戏对象 — GameObject、Transform、Component
unison.wwise音频引擎 — Wwise 封装
unison.cocosuiUI 系统 — Cocos2d-x UI 组件封装
unison.scene场景管理 — 场景加载与切换
unison.rendering_device渲染设备
unison.renderer_scene渲染场景 — 网格/着色器/材质管理
unison.signal信号系统