cocos/cocos-engine
GitHub: cocos/cocos-engine
Cocos Creator 是一套开源的跨平台 2D/3D 游戏引擎运行时框架,帮助开发者高效构建并分发高性能游戏到原生平台、Web 及各类小游戏平台。
Stars: 9428 | Forks: 2092
# Cocos Creator 引擎
**Cocos Creator 是 Cocos 家族的新一代游戏开发工具,它带来了一套完整的 3D 和 2D 功能,同时为游戏开发者提供了直观、低成本且利于协作的工作流。** Cocos Engine 是 Cocos Creator 编辑器的运行时框架。

Cocos Creator 继承了其前版本的许多优秀品质和酷炫功能,例如高性能的底层 C++ 实现、直观的编辑器、跨平台支持。它支持原生平台、Web 平台以及快速扩张的即时游戏平台,包括 Windows、Mac、iOS、Android、HarmonyOS、Web、Facebook Instant Games、微信小游戏和抖音小游戏。
此外,Cocos Creator 将引擎技术推向了一个全新的高度,在各平台上具备高性能和可扩展性、完全的可定制性以及开发的便捷性。
1. **现代图形**:GFX 实现旨在适配现代图形 API,它在 Windows 和 Android 上使用 Vulkan,在 Mac OS 和 iOS 上使用 Metal,在 Web 平台上使用 WebGL。
2. **高性能**:运行时引擎由一半 C++ 和一半 TypeScript 构成,底层基础设施、原生平台适配、渲染器和场景管理均使用 C++ 编写,以确保高运行时性能。我们继续尽可能将繁重的工作转移到原生层。
3. **可定制的渲染管线**:渲染管线设计为完全可定制,它已支持跨所有平台的内置前向渲染和延迟渲染管线。开发者可以按照相同的方法定制他们的渲染管线。
4. **可扩展的 Surface Shader**:材质系统建立在 Cocos 的 effect 格式之上,该格式使用 GLSL 300,Shader 程序将自动转换为合适的运行时格式。Surface Shader 允许在确保通用光照模型的同时,完全定制表面材质。
5. **基于物理的渲染 (PBR)**:标准 Effect 采用基于物理的渲染,结合基于物理的相机和基于物理度量的光照,开发者可以轻松在不同环境下实现逼真且无缝的渲染效果。
6. **简易的 TypeScript API**:用户级 API 集合以 TypeScript 提供,配合强大的 VSCode 编辑器,使用 Cocos Creator 进行开发极其高效。
除了所有这些亮点之外,Cocos Creator 还提供了内置的动画系统、物理系统、粒子系统、地形编辑支持、复杂的 UI 系统、即时预览等功能。

这个开源仓库是 Cocos Creator 的运行时引擎,该引擎天然地集成在 Cocos Creator 中,设计为仅作为必要的运行时库,而不是被独立使用。
## 开发与贡献须知
Cocos Creator 引擎是开源的,欢迎社区参与。若要结合 Cocos Creator 编辑器进行开源引擎开发,你应该 Fork 本仓库并在编辑器中设置[自定义引擎](https://docs.cocos.com/creator/manual/en/advanced-topics/engine-customization.html)。
### 前置条件
- 安装 [node.js v9.11.2 +](https://nodejs.org/)
- 安装 [gulp-cli v2.3.0 +](https://github.com/gulpjs/gulp/tree/master/docs/getting-started)
### 克隆
将此仓库克隆到您的本地环境中。
### 安装
在克隆的引擎文件夹中,运行以下命令来设置开发环境:
```
# 下载并构建 Engine 依赖
npm install
```
这就是设置引擎开发环境所需的所有操作。
### 构建
- 如果在 Cocos Creator 内部运行,打开编辑器窗口后引擎将自动编译和构建。有关在 Cocos Creator 中修改引擎的更多说明,请参阅[引擎定制工作流](https://docs.cocos.com/creator/manual/en/advanced-topics/engine-customization.html)。
- 在编辑器外部,你需要运行以下命令来构建:
```
npm run build
```
如果你想开发原生应用程序,请参考 [native readme](native/README.md)。
### 贡献
你可以通过多种方式为 Cocos Creator 开源引擎做出贡献,我们对此表示非常感谢:
1. 通过[创建 Issue](https://github.com/cocos/cocos-engine/issues/new/choose) 报告 Bug 或功能需求。
2. 在 [issues](https://github.com/cocos/cocos-engine/issues/) 中参与讨论。
3. 如果你修复或改进了任何内容,或者实现了任何功能,请创建 Pull Request。
4. 通过向[使用文档仓库](https://github.com/cocos/cocos-docs)提交 Pull Request 来改进文档。
5. 在我们的[论坛](https://discuss.cocos2d-x.org/c/creator)中帮助其他开发者。
### 贡献须知
如果你尝试提交 Pull Request,必须满足一些要求才能被接受:
1. 遵循我们的 [Cpp 编码风格指南](./docs/CPP_CODING_STYLE.md)和 [TypeScript 编码风格参考](./docs/TS_CODING_STYLE.md)。
2. 尝试在你的编码环境中集成 ESLint 和 [CPP 自动修复工具](./docs/CPP_LINTER_AUTOFIX_GUIDE.md)。
3. 在你的 Pull Request 中链接相关的 Issue 或讨论,并清楚地说明 Pull Request 的目的。
4. 通过所有自动持续集成测试。
5. 请求文件所有者或引擎开发者审查你的 Pull Request。
6. 获得一位引擎架构师的有效批准。
## 示例项目
- [Mind Your Step 3D](https://github.com/cocos/cocos-tutorial-mind-your-step):初学者分步教程项目仓库。
- [测试用例](https://github.com/cocos/cocos-test-projects):每个引擎模块的单元测试场景。
- [示例案例](https://github.com/cocos/cocos-example-projects):用于基线测试和特定主题案例研究的简单而富有表现力的演示场景。
- [Awesome Cocos](https://github.com/cocos/awesome-cocos):你可以在这里找到其他有用的工具和展示案例。
## 链接
- [官方网站](https://www.cocos.com/)
- [下载](https://www.cocos.com/en/creator/download)
- [文档](https://docs.cocos.com/creator/manual/en/)
- [API 参考](https://docs.cocos.com/creator/api/en/)
- [项目与路线图](https://github.com/orgs/cocos/projects?query=is%3Aopen&type=new)
- [论坛](https://discuss.cocos2d-x.org/c/creator)
- Discord 社区:在 Discord 的发现面板中搜索 Cocos。
标签:2D/3D游戏, C++, CMS安全, Cocos Creator, HarmonyOS, HTML5游戏, JavaScript, MITM代理, MIT协议, Runtime, TypeScript, WebGL, 即时游戏, 可视化编辑器, 安全插件, 微信小游戏, 手游开发, 数据擦除, 游戏开发框架, 游戏引擎, 移动开发, 跨平台开发