游戏引擎 HEngine(C++)

一款轻量化、模块化、支持编辑器的 2D(未来支持3D)游戏引擎,支持 OpenGL / Vulkan 渲染,集成物理、资源、脚本、UI 等核心功能。项目GitHub地址: https://github.com/donghuiw/HEngine

引擎架构设计

  • 图层管理(Layer System): 实现渲染层与事件层分离机制,支持图层叠加渲染与事件冒泡阻断,符合现代 UI 框架设计逻辑。
  • ECS 系统: 基于 entt 库构建实体组件系统,支持动态添加/删除组件,如 Transform、SpriteRenderer、Camera 等。

编辑器系统(ImGui 编辑器)

  • 可视化编辑: 集成 ImGui + ImGuizmo 实现窗口拖拽、Docking 布局与 Gizmo 操控,实现组件的平移、旋转、缩放操作。
  • 层级面板(Hierarchy): 实时遍历场景中的实体,展示实体结构树,支持右键添加/删除实体。
  • 属性面板(Inspector): 动态展示选中实体的组件,支持添加/删除组件,实时编辑组件属性。
  • 资源面板(Assets): 读取本地资源文件夹,支持拖拽纹理到组件中实时绑定纹理资源。
  • 场景序列化: 实现场景保存与加载,将场景实体结构与组件数据持久化为文本,自定义解析并还原运行时场景状态。
  • 运行/编辑双摄像机系统: 支持编辑模式下使用自由编辑摄像机,运行时切换为游戏主摄像机。

渲染系统(Renderer)

  • 核心能力: 接收渲染请求,绑定 Vertex Array、Shader、Material 等资源,发起 DrawCall 绘制调用。
  • 批处理渲染: 实现 OpenGL 批处理系统,同类材质合批,极大降低 DrawCall 次数,提高性能。
  • 支持绘制: 三角形、矩形、圆形、线段、轮廓框、文字等多种 2D 图形。
  • 摄像机支持: 实现正交摄像机与透视摄像机切换。
  • 纹理管理: 支持最多 32 个纹理槽,自动绑定与图形材质系统集成。
  • 混合渲染: 支持图像重叠混合计算,实现半透明、图层融合等特效。

跨平台渲染支持

  • OpenGL / Vulkan 双后端支持:
    • 改写 Shader 系统,使其支持 OpenGL GLSL 与 Vulkan GLSL 统一编译结构
    • 将 uniform 系统升级为 Vulkan 的 uniform 缓冲区结构,提高数据传输性能与灵活性

游戏逻辑与物理系统

  • 2D 物理引擎集成: 使用 Box2D 实现刚体、碰撞检测、力作用、物理反应等基础物理模拟。

脚本系统(Mono)

  • C# 脚本热更新: 集成 Mono,C++ 主体可调用嵌入式 C# 脚本逻辑;
    • 编辑器支持反射读取 C# 类字段,动态修改属性并实时更新运行时效果。

技术亮点汇总

  • 拥有完整的图形渲染管线与组件系统,支持实时场景编辑与游戏运行模式切换
  • 架构清晰,模块化设计(渲染/物理/脚本/编辑器/资源)可快速拓展
  • 在 Vulkan 渲染兼容、热更新脚本、ECS 系统、编辑器 UI 与场景序列化等方面均具备独立研发能力
  • 类 Unity 编辑器体验,具备实际工程落地能力,非仅框架层设计