Cocos Enhance Kit: 对 Cocos Creator 引擎进行性能优化、增强的开源项目 https://forum.cocos.org/t/topic/137649
Go to file
2022-06-17 18:42:43 +08:00
demo 完善 docs 2022-06-17 18:42:43 +08:00
docs 完善 docs 2022-06-17 18:42:43 +08:00
extension/service-pack-support 完善 docs 2022-06-14 21:25:53 +08:00
patch 预览版源码 2022-06-13 15:28:08 +08:00
src 完善 docs 2022-06-14 21:25:53 +08:00
.gitignore 补充插件资源 meta 文件 2022-06-10 15:10:41 +08:00
LICENSE Revert "Deploy website - based on e4dceb38ef43734f267725d69df0492506ff7011" 2022-05-20 11:29:08 +08:00
README.md 完善 docs 2022-06-15 18:56:22 +08:00

Cocos Service Pack

logo

该项目当前为预览版,还在完善中,存在以下问题: 1.Spine 使用多纹理材质时只支持使用 REALTIME 模式 2.还未适配原生平台cocos2d-x、jsb-adapter

这是一个对 Cocos Creator 引擎进行特性增强、修复与优化的开源非官方服务包Service Pack

该项目尽量以最符合原始架构设计的方式为引擎加入新的特性、修复已知问题以及优化性能。

正因为如此,大部分项目使用这个服务包就像升级引擎版本一样简单。


项目的起源

2021 年 2 月Cocos 发布 Cocos Creator 3.0,并在 3.x 发布之后不会再继续开发 2.x 版本的新特性,所有维护工作也会在 2023 年完全停止。

但是 2.x 在一些方面还并不完善,所以这个非官方的引擎“魔改”合集的开源项目应运而生。

相似的事情发生在 2014 年 4 月,官方停止了对 Windows XP 的维护,之后 Harkaz 发布了一个非官方服务包 Service Pack 4 (SP4)。

受到 Windows XP 命名的启发,这个非官方的引擎“魔改”合集取名为 Service Pack。

Service Pack 暂时只适配 Cocos Creator 2.x 版本Cocos Creator 3.x 正在蒸蒸日上,其引擎架构还在不断地迭代(不稳定),若对其进行修改,之后的维护工作会非常大。


重要特性

  • 支持多纹理渲染(多纹理材质、多纹理合批)
  • 支持高 DPI 文本渲染Label、RichText 组件)
  • 重构动态合图(支持自动多纹理合批、优化算法、复用废弃空间等特性)
  • 重构 Label 组件的 CHAR 缓存模式(支持自动多纹理合批、多图集、复用废弃空间等特性)
  • Spine 组件支持与其它组件合批、合入动态图集与 SpriteFrame 换装

服务包对引擎的所有改动都是开源的,并且每个改动都会附上一篇原理说明的文档,当你发现问题时请进行反馈,或者直接默默地帅气地提交一个 PR帮助我们一起完善这个项目。

功能演示

TODO

使用方法

服务包通过自定义引擎的方式来修改引擎代码,你可以:

  • 通过我们发布的引擎扩展一键安装
  • 下载源码包,使用里面的 Git Patch 文件进行安装

具体教程可以参考 安装指南

更新日志

Service Pack v1.0.0

  • [新特性] 支持多纹理渲染
  • [新特性] 重构动态图集,支持多个新特性
  • [新特性] 重构 cc.Label 的 Char 缓存模式,支持多个新特性
  • [新特性] 支持高 DPI 文本渲染
  • [新特性] Spine 组件支持参与动态图集、与其它组件合批、使用 SpriteFrame 换装
  • [新特性] cc.Label、cc.RichText、cc.Sprite、cc.MotionStreak、Spine 组件支持使用多纹理材质,并支持自动切换材质机制
  • [新特性] cc.RichText 支持使用自定义材质
  • [修复] 直接修改 Effect 的属性不回导致其变体的 hash 值刷新
  • [修复] CHAR 缓存模式 hash 计算可能会有重复的问题
  • [调整] 默认禁用 Label 原生 TTF 渲染器

所有更新日志请移步 此处

贡献指南

非常欢迎你能和我们一起来完善这个项目,所有的一切都通过 Github 进行:

  • 如果你有问题或者好的想法,请建立 Issues 或进入 Discussions
  • 如果你有新的代码提交,请建立 Pull requests

原则上允许对引擎的任何增强与修改,但是任何修改都必须兼容引擎原有的特性,不允许删除引擎原有的特性,并且请认真思考代码设计。

常见问题

为什么要直接修改引擎?

直接修改引擎可能是大部分人认为的下下策,比如我们常听到的一些声音:

  • 通过 “修改对象的原型” 等一些编程技巧做成一个插件脚本
  • 没接触过自定义引擎,不知道该怎么用,感觉很可怕
  • 我已经修改过引擎的某些部分了,不能直接安装

以上问题我们都思考过,

首先,现在引擎的 2.x 版本已经停止了更新(仅做一些维护工作),也就是说修改引擎不会遇到在官方新版本发布后需要用大量时间去适配的情况。

其次,即使服务包中的所有改动都能做成一个插件脚本,但是无法兼容原生平台,并且一般都需要大量拷贝代码,包体会增大,可维护性可能会大幅降低。

最后,我们希望它接近 “原生” 的使用体验,就像引擎本来就有的功能一样,对于没有接触过自定义引擎的人,我们提供的引擎扩展可以一键安装。

对于已经修改过引擎的人,由于服务包提供的是 Git Patch所以可以让你在已有修改的基础上轻松应用上服务包的改动甚至你可以只应用你想要的特性。

Cocos Creator 报 Error: Can not parse this input:undefined 错误

没有找到服务包的内置资源,请记得安装配套的引擎扩展。


最后的最后希望这个项目能帮助到你的学习或工作enjoy