CraftNow 是一个中文开源游戏引擎,基于C++和OpenGL,使用GLSL着色器语言,并计划支持Vulcan等其他渲染API。 受到 Cherno 的启发,为了学习C++和大型项目开发的流程经验。我选择启动一个相对较为复杂的“软件”项目,而不是一个简单的“游戏”, 因为游戏引擎的复杂程度远高于游戏,意在实际的开发中学习更实践的知识积累经验。
## 目录- 入口程序
- 应用程序层
- Debugging支持
- 窗口层
- 事件系统
- 信号输入系统
- 渲染系统
- 2D渲染器
- 场景图像
- 渲染层
- 动画
- 相机
- 后处理效果
- 3D渲染器
- 2D渲染器
- 渲染API abstract(用于支持多个渲染API 例如DirectX, Vulcan)
- OpenGL
- Vulcan
- DirectX
- 实体组件系统
- 组件添加移除
- 相机组件,精灵组件,变换矩阵组件,tag组件
- 碰撞体组件
- 物理刚体组件
- 圆形碰撞体
- [ ]
- 资产构建系统
- 场景序列化保存加载
- 项目创建和加载
- [ ]
- 文件系统
- 文件系统核心
- 文件拖拽管理
- 内置文件编辑菜单
- 脚本语言
- 内置C++脚本支持
- C#脚本支持
- mono运行环境
- 内置编辑器
- lua脚本支持
- python脚本支持
- 物理引擎
- 简单的物理引擎
- 内存系统
- 热插拔系统(实时更新资产的变化)
本项目使用premake
管理依赖,所以务必继承多个依赖仓库。
使用Git
克隆到本地 git clone --recursive https://github.com/YINGHAIDADA/CraftNow
.
如果第一次没有使用继承克隆, 用 git submodule update --init
来克隆必须的组件