EVEngine 开发博客 EVEngine 的开发日志与技术笔记

开发日志:EVEngine v0.1.0(2026-08-04 ~ 2026-08-20)

v0.1.0 发布冲刺总结:正式版发布与新分支模型、渲染性能优化、模块架构收敛、AI 工具链、测试与 CI 加固。

撰写日期:2026-08-22 覆盖范围:v0.1.0 发布冲刺,约 380 个非合并提交

本期速览

  • 8 月 20 日发布 v0.1.0 正式版(0.1.0-dev → 0.1.0),并落地新的分支模型与发布流水线。
  • 渲染管线完成一轮大的性能优化:视锥剔除、每帧一次光照、dynamic-offset UBO 环形缓冲、多缓冲 mesh 更新,并引入 FrameGraph。
  • 模块架构收敛:三个依赖后向边清零、超大 TU 拆分、接口隔离,ResourceManager 复活为统一资源缓存。
  • 最后一周(8/17–8/20)集中在发布流程与 SDK 打包、win32 Release 修复、模块重构和正式版发布上。

一、里程碑:v0.1.0 正式版

版本与分支模型

  • main 保持“克隆即可编译”的最新正式版;日常开发在 dev(0.1.0-dev);每次发布用 vX.X.X 隔离分支。
  • 新增 scripts/release.py 统一驱动发布:start 建分支、写版本号;finish 升正式版、开 promote/vX.X.X PR 到 main、rebase dev,全程不直推 main/dev,由人点 Merge。
  • 用 Checks API 写 main-gate 检查,解决“GITHUB_TOKEN 开的 PR 不触发 pull_request CI、必过检查一直悬挂”的问题。
  • main 支持文档白名单热修(README/docs/Doxyfile),sync-docs.yml 自动反向同步到 dev。

SDK 打包与平台

  • 五平台 SDK(Windows / macOS / Linux / Android / iOS)随 Release 打包:eve-sdk-<plat>-<tag>.zip。
  • SDK 完善:自动导出模块头、打包 licenses、生成 checksum、插件/APK 冒烟测试、zip 遍历容错与分支清理。
  • macOS:把 Vulkan loader 与运行时 dylib 打进 eve 包,并扩展 loader rpath。
  • win32:宿主导出 Squirrel/ssq 符号供插件链接;同步 patch 第三方库导出符号。
  • 平台构建修复:win32 Release 改用 vcvars+Ninja(去掉固定 VS generator),补齐 SDL2md/SDL2mainmd/zlibstaticmd 链接;Android 以 APK 形式跑 zeroerr 单测;macOS arm64 Release 跳过原始 Squirrel 内省用例(SIGBUS)。

二、渲染与性能

FrameGraph 与渲染优化(PR #126 / #129)

  • 视锥剔除(frustum culling)、每帧一次光照、dynamic-offset UBO 环形缓冲、按 pipeline 状态排序。
  • mesh 更新改为多缓冲 ring,去掉 device-wide wait;粒子移除 GPU 往返。
  • 升级 VKBuilder,引入 FrameGraph 基础。

画面与特效

  • 动态水体:天空反射 + 涟漪 + 瀑布,Water 屏幕空间反射(SSR)。
  • 天气系统(实时降水/闪电/风)、昼夜循环 + 程序化天空 + 夜晚光照。
  • 风格化草地(t3ssel8r 风格)、x-ray 透视着色、toon 着色、硬件 MSAA/HiDPI、阴影 PCF/CSM 改进。
  • Nanite 风格 virtual geometry、sprite-stacking 伪 3D、体素渲染差距补齐、程序化生成全家桶(树/岩石/建筑/六边形星球/线性结构/Perlin 高度图等)。

三、架构与模块化

  • 依赖后向边清零(PR #127):window→graphics、window→image、scene→graphics 三个历史后向边全部消除,module_depgraph.py --check 0 违规、0 环。
  • 大文件拆分:vulkan/Graphics.cpp(5118 行)拆成 5 个 TU,scene/Scene.cpp 拆出 SceneNodes.cpp。
  • 接口隔离:IGraphics2D / IGraphics3D / IResourceFactory / IPostFX 瘦接口,公共头跨模块泄漏从 14 处降到 7 处。
  • ResourceManager 复活:以 IAssetReloader 为底座做成统一 CPU 资源缓存(image/font/model3d/sound),URI + 参数作为 cache key,热重载时通过 adopt 保持实例身份。
  • 场景管线:SceneLoader 优化、场景/脚本-ECS 打通、通用 SceneLink、序列化与拾取、快速 diff 热重载;修复 Poco delegate 在锁内退订导致的热重载死锁。

四、新能力

  • 网络:reliable UDP 传输、RPC、多主机会话。
  • 玩法模块:对话程序化生成、RPG 任务追踪(设计文档 + 计划)、卡片模块 ECS 化、UI 两遍布局/图片/事件/虚拟化/viewport、运行时控制台与 REPL、Rx 响应式、i18n 本地化、IK 链解算、粒子系统 P0–P2、骨骼动画、3D 相机控制器,背包/建筑/寻路等既有模块继续扩展。
  • 工具链:eve zip/package 打包与内存运行、远程热重载 dev-server(mac/iOS/Android)、Windows 崩溃回溯(backward-cpp 符号化)。

五、AI 工具链

  • headless eve mcp host,MCP 工具覆盖场景/程序化生成/物理/渲染/粒子/音频。
  • scene-director(场景编排工具包)、creative-brain(意图解析 + 场景编排)、scene-qc-agent(ReAct 场景检查与迭代优化)、RenderVision(视觉模型描述渲染帧)。
  • 外部资产流水线:检索 + Blender 标准化 + MCP 摄取。

六、测试与质量

  • zeroerr 参数校验(Debug 开启,Release 默认裁剪、可显式开启),并补齐 Doxygen API 文档。
  • CTest 回归默认 per-case 进程隔离(bundle 可选),默认快速 headless 参数(VIEW_SECONDS=0.3 等);Release 测试保留 zeroerr 断言。
  • 新增资源生命周期、工具链相关测试;修复一批跨平台用例(graphics 初始化、MSVC/arm64 兼容、Release Squirrel 内省崩溃跳过)。

七、CI 与构建

  • Ubuntu apt mirror 重写 + acquire 超时 + 全 workflow 每步超时加固。
  • 新增 WebGPU(Emscripten/WASM)构建 job;Android/iOS job 分离;clang-format 与模块分层门禁;SDK 可用性测试作为发布前门。

数据统计(2026-08-04 ~ 2026-08-20)

指标数值
提交总数(含 merge)535
非 merge 提交380
feat / fix159 / 99
test / docs21 / 21
build / refactor16 / 16
chore / ci / perf11 / 7 / 3
其他杂项约 27

下一步

  • dev 继续以 0.1.0-dev 迭代,后续发布统一走 vX.X.X 分支流程。
  • 关注点:统一资源缓存向更多模块消费迁移、FrameGraph 在更多渲染路径上落地、五平台 SDK 的反馈闭环。

← 返回博客首页