前言
Creator做游戏是真的方便。
但当游戏项目规模上升时,使用Creator开发就变得有点不舒服。
-
打开慢
-
切回编辑器卡顿
这些问题,相信很多人都有遇到过。也有很多人问,怎么解决?
论坛里的解决方案
-
自己打图集
-
用mac
-
用固态硬盘
-
用高配置电脑
-
放到cdn
这些方案并可能有用,但感觉不太实际和靠谱,也没有具体的操作方案
疑问和比较
CocosCreator能否舒服的开发大型项目?上限在哪里?
论坛上也有一个帖子:是否有人比较过Laya、Egret、Cocos这几个引擎?
-
里面的帖子和回复都很有意思,也挺有意义的。
-
我用Laya最多,相对感受也颇深,Laya的开发方式偏web
-
Laya的IDE资源多的时候,导出也会卡,卡很久。
-
如果不是图集资源,或者用来拼UI的资源,一般不会放在assets目录
-
会放在最终导出的目录bin,也是预览服务器的静态资源目录
-
-
Creator大项目卡顿的原因是什么呢?
- 比较直接的是:资源数量过多
- 导致启动项目会花很长时间去遍历处理资源
- 导致每次切回编辑器时花时间去做检索资源之类的操作
- 比较直接的是:资源数量过多
我的想法
让Creator在开发预览时能加载使用不在assets的资源
然后在构建时,定制构建流程将外部资源处理发布到发布目录
这个也是我跟官方提的一个建议,但貌似没那么重视,哈哈哈
实现
让Creator加载assets外的资源
-
使用预览模板
-
Creator预览服务器的静态资源目录在xxx\Creator\x.x.x\resources\static\preview-templates
-
如果我们将它复制到我们项目目录下,那么预览服务器静态资源目录就指向我们项目目录下的preview-templates
-
我们可以将外部资源放到这个目录下
-
-
本地搭建个资源服务器
- 这个大家都懂,不细讲,就是麻烦而已
-
自己写个插件hook一下开发预览的资源加载(这是我选择的做法)
加载和解析复杂的资源(龙骨、图集)
Creator加载远程的资源,只能加载并解析简单的
- 比如音频、文本、json、图片
但有些资源是组合的,需要我们自己下载并组装
- 比如图集、龙骨、spine
好在官方有demo和参考,以及可以调试源码来看如何构建那些资源并显示
- 这里我写了一个外部资源的加载和解析逻辑,方便加载和组装这些组合型资源
最终效果
我用的是某西游项目,知道的人都知道,懂的人都懂
我的电脑配置:
那个项目的情况
-
它组织资源的方式比较粗暴
-
它在展示角色的界面用龙骨,在主城战斗中使用序列帧
-
大概有14000个资源放在resource,加上meta文件就约28000个文件
-
改造之后
- 将大约13000个资源移到外部
开发体验数据
没使用之前
-
第一次10分14秒
-
第二次2分52秒
-
第三次2分53秒
-
第四次2分42秒
-
排除第一次:平均169秒
使用插件并改造之后
- 第一次3分22秒
- 第二次23秒
- 第三次24秒
- 第四次24秒
- 排除第一次:平均23.666秒
统计比较
-
第一次启动打开速度快了3倍
-
第一次之后的启动速度快了七倍
-
切回编辑器卡顿感明显减轻很多
适配情况
- 支持模拟器预览
- 支持微信小游戏
- 支持web发布
- 支持fairygui
后续计划
-
完善runtime
-
完善插件
最后
上测试视频
解决方案测试视频:https://www.bilibili.com/video/av930007589
大项目测试视频:https://www.bilibili.com/video/av672691395
如果想要体验和测试欢迎关注公众号和加QQ群交流,测试项目就放在Q群
群里有个小伙伴说用了之后秒开。。。不知道是不是夸张,但应该是有效果的。
公众号搜索:玩转游戏开发
或扫码:
QQ 群: 1103157878
博客主页: https://ailhc.github.io/
掘金: https://juejin.cn/user/3069492195769469
github: https://github.com/AILHC