Files
XCEngine/README.md
2026-04-09 22:47:48 +08:00

152 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# XCEngine
`XCEngine` 是一个 Windows-first、editor-first 的 C++20 游戏引擎工作区。当前主线围绕 `RHI -> Rendering -> Editor -> Asset Pipeline -> Mono Scripting` 演进,目标不是堆 sample而是把可运行的引擎与编辑器主链持续收口成型。
## 项目定位
- `engine/` 提供核心静态库 `XCEngine`,包含 `RHI``Rendering``Resources``Scene``Input``Audio``Scripting` 等模块。
- `editor/` 是当前正式桌面编辑器,宿主基于 Win32 + D3D12编辑器 target 名为 `XCEditor`,输出文件名为 `XCEngine.exe`
- `new_editor/` 是基于 `XCUI` 的新编辑器主线,当前仍在并行演进。
- `project/` 是随仓库维护的示例工程,已经采用 `Assets + .meta + Library` 布局。
- `tests/` 覆盖 Engine、Rendering、RHI、Editor、Scripting、UI 等主线模块。
## 当前能力
- `RHI` 当前维护 `D3D12 / OpenGL / Vulkan` 三个后端。
- `Rendering` 已形成 `SceneRenderer -> CameraRenderer -> RenderPipeline` 主链。
- Scene View 已接通 object-id picking、selection outline、grid、overlay 与 gizmo 渲染。
- 资源系统已采用 `AssetDatabase + Artifact + Library` 工作流,而不是简单文件直读。
- `Material / Shader / Texture / Mesh` 已接入正式资源导入与运行时加载链路。
- 编辑器已支持项目加载、Scene/Game viewport、Inspector、Hierarchy、Project 面板等基础闭环。
- Mono C# 脚本运行时与项目脚本程序集构建链路已接入当前工作区。
- `new_editor/` 正在推进 `XCUI` 宿主、控件与 shell 体系。
## 仓库结构
- `engine/`:引擎核心实现与公共头文件。
- `editor/`:当前正式编辑器与 viewport 接线。
- `new_editor/`XCUI 新编辑器主线。
- `managed/``XCEngine.ScriptCore` 与示例托管程序集。
- `project/`:示例工程与随仓库维护的资产。
- `tests/`:单元测试、集成测试与阶段性回归入口。
- `docs/`架构说明、API 文档、计划与历史归档。
- `mvs/`:原型、实验工程与外部参考材料。
## 环境要求
当前推荐在 Windows 上构建和运行。
- Windows 10/11
- Visual Studio 2022 / MSVC v143
- CMake 3.15+
- Vulkan SDK
- .NET SDK
- Git LFS
脚本运行时启用时,还需要:
- 可用的 Mono 依赖,默认路径来自 `参考/Fermion/Fermion/external/mono`
补充说明:
- 当前根 CMake 配置里,`Vulkan SDK` 仍是硬依赖。
- NanoVDB 头文件是可选能力,仅影响 `.nvdb` 体积资源支持。
- 如果仓库里的大资源依赖 Git LFS请先执行 `git lfs pull`
## 快速开始
### 1. 配置
```powershell
cmake -S . -B build -A x64
```
如果本地暂时没有 Mono 依赖,可以先关闭脚本运行时:
```powershell
cmake -S . -B build -A x64 -DXCENGINE_ENABLE_MONO_SCRIPTING=OFF
```
### 2. 构建当前编辑器
```powershell
cmake --build build --config Debug --target XCEditor
```
编辑器产物路径:
- `editor/bin/Debug/XCEngine.exe`
### 3. 运行编辑器
```powershell
.\editor\bin\Debug\XCEngine.exe
```
显式指定工程目录:
```powershell
.\editor\bin\Debug\XCEngine.exe --project D:\Path\To\Project
```
### 4. 构建项目脚本程序集
如果你要验证 `ScriptComponent`、脚本类发现或 Inspector 字段编辑,先构建:
```powershell
cmake --build build --config Debug --target xcengine_project_managed_assemblies
```
### 5. 可选构建 XCUI 新编辑器
```powershell
cmake --build build --config Debug --target XCUIEditorApp
```
产物路径通常为:
- `new_editor/bin/Debug/XCUIEditor.exe`
## 测试
列出测试:
```powershell
ctest --test-dir build -N -C Debug
```
运行测试:
```powershell
ctest --test-dir build -C Debug --output-on-failure
```
常用目标:
```powershell
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
```
更细的测试组织与约定见 [tests/TEST_SPEC.md](tests/TEST_SPEC.md)。
## 文档入口
- 编辑器说明:[editor/README.md](editor/README.md)
- API 文档入口:[docs/api/main.md](docs/api/main.md)
- 架构蓝图:[docs/blueprint.md](docs/blueprint.md)
- Editor 架构说明:[docs/plan/Editor架构说明.md](docs/plan/Editor架构说明.md)
- 测试规范:[tests/TEST_SPEC.md](tests/TEST_SPEC.md)
- 协作约定:[AGENT.md](AGENT.md)
## 当前状态
`XCEngine` 仍处于高频迭代阶段,但当前仓库已经不是“零散原型集合”,而是一个以编辑器工作流为中心持续收口的引擎工作区。接口、目录和构建细节仍可能调整,但主线方向已经比较明确:
- 稳定 `RHI / Rendering / Asset Pipeline / Editor` 主链。
- 继续推进 `Mono Scripting` 与项目脚本工作流。
- 推进 `XCUI` 新编辑器主线从组件库走向完整宿主。