介绍
引擎:cocos creator 3.5.1
项目:2d 饥荒网络游戏
微信小游戏
优化
特别优化ios,ios的微信小游戏性能特别差
- 界面
- drawcall不能太高,首页越好就10个dc左右包括字体
- 除了聊天,文本最好都将CacheMode设置为CHAR的模式,可以有效减少dc和提升界面的打开速度
- 资源分好模块,除了通用资源,不要相互穿插,会增加dc和内存
- 不要使用引擎富文本,在小游戏特别的卡,手写或商店买一个
- 角色
- spine和dragonBones角色不要太多,创建这些角色需要时间比较耗时,而且会一直计算骨骼动画,也会耗时
- 将远处的角色都隐藏了,cocos不会只渲染屏幕内的内容,屏幕外的也会渲染
- 能使用静态表现的采集物和装饰物,尽量不要使用spine或dragonBones
- 场景
- 降低场景2d图片的分辨率,分辨率太大,会导致内存太大,加快ios的内存不足闪退
- 不是主要场景,尽量开启auto release,这样切换场景会加快资源的释放
- 资源
- 经常使用的界面,在进入场景之前就进行预先加载,这样用户就不会因为第一次打开界面下载太多资源卡
- 场景的采集物和装饰物、怪物在进入场景前,在loading期间提前创建几个,这样边走边刷新速度会大幅度提升
- 去掉大图和spine、特效图片的合批,特别大图可能不小心就导致卡死
- 逻辑
- 角色或物件之类的创建分帧处理,不要一帧同时创建多个,会导致那一帧卡
- 频繁的距离检测没有必要,最好分几帧才检测一次,建议使用距离平方去判断
注意
动态图集
不要使用引擎自带的动态图集,这是一个对小型游戏是友好的,但是对大项目这非常的恶心
1 | // 强制关闭动态合批,也可以在项目设置的宏勾选 CLEANUP_IMAGE_CACHE |
- dc不好控制
- 资源不好释放,释放了资源,但是因为图片那些被动态合并,这个资源可能就会释放有问题,多次释放和使用资源可能会导致内存多倍
- 会导致某些资源在释放的时候报错,我遇到的情况是在释放某个资源导致动态合批报错,导致游戏崩溃
- 会导致某些dragonBones的SHARED_CACHE模式出问题,我遇到的情况是某些情况播放动画报贴图错误,导致游戏崩溃
- 会增加游戏内存的使用,导致游戏更容易出现内存不足的闪退
高性能模式
能不开尽量不要开,对于大点的项目,这会导致内存根本就不够用,经常出现闪退