# Catentacle
**Repository Path**: hang-jingqi/Catentacle
## Basic Information
- **Project Name**: Catentacle
- **Description**: Catentacle 游戏引擎(学习开发中)
- **Primary Language**: C++
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2024-05-28
- **Last Updated**: 2025-05-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: gameEngine, Cpp, imgui, glfw
## README
# Catentacle [](https://git.acwing.com/YagiMiji/Catentacle/-/blob/master/LICENSE)
Catentacle Game Engine
It is a 2D/3D game engine.
_Learn from TheCherno._
---
## 开始
**1. 下载存储库:**
首先使用 `git clone --recursive https://git.acwing.com/YagiMiji/Catentacle` 递归克隆存储库。
如果存储库之前是以非递归方式克隆的,则需要用 `git submodule update --init` 克隆必要的子模块。
**_子模块中的库有源自GitHub的,最好挂上梯子,否则极有可能克隆失败_**
**2. 选择分支:**
- master: 稳定的分支。这个分支里的内容是稳定的。
- dev: 正在开发新功能的分支。这个分支有前瞻内容,但不保证能正常使用。
**2. 生成 Visual Studio 解决方案:**
运行在文件夹 `scripts` 中找到的 [GenerateProjects.bat](https://git.acwing.com/YagiMiji/Catentacle/-/blob/master/scripts/Win-GenProjects.bat) 脚本文件,即可生成 Visual Studio 解决方案文件供用户使用。
_注意:运行 [GenerateProjects.bat](https://git.acwing.com/YagiMiji/Catentacle/-/blob/master/scripts/Win-GenProjects.bat) 之前请检查你的 Visual Studio 版本,默认生成的解决方案文件是vs2022版的,如果你不是该版本,请手动修改 [GenerateProjects.bat](https://git.acwing.com/YagiMiji/Catentacle/-/blob/master/scripts/Win-GenProjects.bat) 中的vs2022为你的版本号。_
```
@echo off
pushd %~dp0\..\
call vendor\premake\bin\premake5.exe [Your version]
popd
PAUSE
```
**如果要重新生成项目文件,请重新运行文件夹 `scripts` 中找到的 [GenerateProjects.bat](https://git.acwing.com/YagiMiji/Catentacle/-/blob/master/scripts/Win-GenProjects.bat) 脚本文件。**
**3. 使用 Visual Studio 编译:**
----
## 文件结构
```
.
├─bin
├─bin-int
├─Catentacle # 引擎
│ ├─src
│ │ ├─Catentacle # 引擎(包含接口、框架)
│ │ │ ├─Core # 核心
| | | ├─Debug # Debug专用(包含可视化性能分析数据生成等)
│ │ │ ├─Events # 事件系统
│ │ │ ├─ImGui # UI
│ │ │ ├─Math # 数学库
│ │ │ ├─Renderer # 渲染系统
│ │ │ ├─Scene # 场景
│ │ │ ├─Utils # 功能/工具
│ │ │ └─ ...
│ │ └─Platform # 平台(对应接口的实现)
│ │ ├─OpenGL
│ │ └─Windows
│ ├─vendor # 外部库
│ │ ├─Box2D
│ │ ├─entt
│ │ ├─Glad
│ │ ├─GLFW
│ │ ├─glm
│ │ ├─imgui
│ │ ├─ImGuizmo
│ │ ├─spdlog
│ │ ├─stb_image
│ │ └─yaml-cpp
│ └─ ...
├─Catentacle-Editor # 编辑器
│ ├─assets # 资产
│ | ├─scenes # 引擎场景资源文件(*.catentacle)
│ | ├─shaders # 着色器脚本
│ │ └─textures # 纹理
│ └─src
│ │ ├─Panels # 属性、工具窗口等
│ │ └─ ...
│ └─ ...
├─Sandbox # 测试沙盒
│ ├─assets # 资产
│ | ├─shaders # 着色器脚本
│ │ └─textures # 纹理
│ └─src
│ │ └─ ...
│ └─ ...
├─scripts # 脚本(用于生成解决项目)
│ └─ ...
└─vendor
└─premake
├─ bin # premake5.exe + LICENSE.txt
└─ ...
```