c03c7379c83b222c659ed3b7aa30811ce70bb3a6
XCEngine
XCEngine 是一个基于 C++20 的游戏引擎。当前代码中已经包含 RHI、Rendering、Scene、Resources、Editor、Mono C# Scripting 和 XCUI 相关模块;本 README 只描述当前已经实现或已经接入的能力。
核心特性
渲染
- 内置跨后端
RHI抽象层,当前支持D3D12、OpenGL、Vulkan - 当前主渲染链为
SceneRenderer -> CameraRenderer -> BuiltinForwardPipeline - 已接入前向渲染主路径、透明路径和 skybox 路径
- 已具备方向光阴影通路
- 已具备
object-idpass,可用于编辑器拾取 - 已具备选中描边、最终颜色合成和颜色缩放后处理 pass
- 已具备无限网格 pass,可用于 Scene View
- 已接入
NanoVDB体积渲染 pass RenderSurface允许同一条渲染链服务于窗口输出、编辑器视口和离屏目标
场景与运行时
- 采用
Scene / GameObject / Component结构 - 已具备场景更新、运行时驱动和场景序列化能力
- 内置常用组件,包括:
TransformComponentCameraComponentLightComponentMeshFilterComponentMeshRendererComponentVolumeRendererComponentAudioSourceComponentAudioListenerComponentScriptComponent
资源系统
- 资源主线不是简单文件直读,而是
AssetDatabase + Artifact + Library工作流 - 已具备项目资产索引、导入、重导入和缓存维护链路
- 已接入的资源类型包括:
MeshTextureShaderMaterialAudioClipVolumeFieldUI Document
- 内置
builtin://资源入口,可直接使用基础 mesh、材质等内置资源
脚本系统
- 可选启用基于
Mono的C#脚本运行时 - 托管程序集分为:
XCEngine.ScriptCoreGameScripts
- 脚本组件由
ScriptComponent承载 - 引擎当前支持脚本类发现、字段元数据读取、默认值读取和字段存储
- 支持脚本字段 override 持久化与运行时同步
- 编辑器已接入项目脚本程序集重建与脚本运行时重载
编辑器
- 当前正式编辑器是基于
Win32 + D3D12 + ImGui的桌面编辑器 - 当前已具备以下基础工作流:
HierarchyInspectorProjectConsoleScene ViewGame View
Scene View已接入:- object-id picking
- selection outline
- overlay
- transform gizmo
- infinite grid
Inspector已能处理常规组件检查,也已接入ScriptComponent与材质资源检查路径- 编辑器能够识别项目目录、加载项目资源、接通
Library/ScriptAssemblies中的脚本程序集
UI 与 XCUI
- 引擎内部包含 retained-mode UI 基础设施
- 已具备:
- 布局系统
- 样式系统
- 焦点控制
- 输入分发
- 快捷键分发
- 文本输入编辑
- 选择模型
- 拖拽交互模型
- 运行时 UI 主链包括:
UIScreenDocumentHostUIScreenPlayerUISystem
- 新编辑器路线基于
XCUIEditorLib推进,当前已经包含树视图、列表视图、菜单、标签条、属性网格、字段控件、workspace / dock / viewport shell 等基础组件
音频
- 已具备
AudioSystem - 已接入
AudioSourceComponent与AudioListenerComponent - 当前代码中已包含
AudioMixer和多种效果器/分析器实现入口:EqualizerFFTFilterReverbationHRTF
测试
- 引擎不是“只靠手工点点看”的状态,当前已具备大规模测试树
- 覆盖范围包括:
- Engine 基础模块
- Rendering
- RHI
- Editor
- Scripting
- UI
RHI集成测试使用统一基准图做 golden-image 对比XCUI当前也有独立的 unit / integration 验证链路
当前实现范围
- 当前正式编辑器为基于
Win32 + D3D12 + ImGui的桌面编辑器 - 当前
RHI后端为D3D12、OpenGL、Vulkan - 当前项目资产工作流已经接入
AssetDatabase + Artifact + Library - 当前
Mono C#脚本程序集与运行时链路已经接入 - 当前
XCUI新编辑器路线仍在继续实现中
快速开始
推荐环境:
- Windows 10/11
- Visual Studio 2022 / MSVC v143
- CMake 3.15+
- Vulkan SDK
- .NET SDK
配置工程:
cmake -S . -B build -A x64
如果当前不需要 Mono 脚本运行时:
cmake -S . -B build -A x64 -DXCENGINE_ENABLE_MONO_SCRIPTING=OFF
构建当前正式编辑器:
cmake --build build --config Debug --target XCEditor
运行:
.\editor\bin\Debug\XCEngine.exe
如需构建项目脚本程序集:
cmake --build build --config Debug --target xcengine_project_managed_assemblies
如需构建 XCUI 新编辑器宿主:
cmake --build build --config Debug --target XCUIEditorApp
测试入口
ctest --test-dir build -N -C Debug
ctest --test-dir build -C Debug --output-on-failure
常用目标:
cmake --build build --config Debug --target editor_tests
cmake --build build --config Debug --target rendering_all_tests
cmake --build build --config Debug --target rhi_all_tests
cmake --build build --config Debug --target scripting_tests
cmake --build build --config Debug --target core_ui_all_tests
cmake --build build --config Debug --target editor_ui_all_tests
cmake --build build --config Debug --target runtime_ui_all_tests
文档入口
docs/api/main.mdeditor/README.mdtests/TEST_SPEC.mddocs/plan/Editor架构说明.mddocs/plan/XCUI_NewEditor主线重建计划_2026-04-07.md
Description
Languages
C++
46.6%
HTML
37.9%
C
9.6%
C#
1.3%
GLSL
1%
Other
3.4%