project-doc-野外生存

介绍

引擎:cocos creator 3.5.1
项目:2d 饥荒网络游戏

微信小游戏

优化

特别优化ios,ios的微信小游戏性能特别差

  • 界面
    1. drawcall不能太高,首页越好就10个dc左右包括字体
    2. 除了聊天,文本最好都将CacheMode设置为CHAR的模式,可以有效减少dc和提升界面的打开速度
    3. 资源分好模块,除了通用资源,不要相互穿插,会增加dc和内存
    4. 不要使用引擎富文本,在小游戏特别的卡,手写或商店买一个
  • 角色
    1. spine和dragonBones角色不要太多,创建这些角色需要时间比较耗时,而且会一直计算骨骼动画,也会耗时
    2. 将远处的角色都隐藏了,cocos不会只渲染屏幕内的内容,屏幕外的也会渲染
    3. 能使用静态表现的采集物和装饰物,尽量不要使用spine或dragonBones
  • 场景
    1. 降低场景2d图片的分辨率,分辨率太大,会导致内存太大,加快ios的内存不足闪退
    2. 不是主要场景,尽量开启auto release,这样切换场景会加快资源的释放
  • 资源
    1. 经常使用的界面,在进入场景之前就进行预先加载,这样用户就不会因为第一次打开界面下载太多资源卡
    2. 场景的采集物和装饰物、怪物在进入场景前,在loading期间提前创建几个,这样边走边刷新速度会大幅度提升
    3. 去掉大图和spine、特效图片的合批,特别大图可能不小心就导致卡死
  • 逻辑
    1. 角色或物件之类的创建分帧处理,不要一帧同时创建多个,会导致那一帧卡
    2. 频繁的距离检测没有必要,最好分几帧才检测一次,建议使用距离平方去判断

注意

动态图集

不要使用引擎自带的动态图集,这是一个对小型游戏是友好的,但是对大项目这非常的恶心

1
2
3
// 强制关闭动态合批,也可以在项目设置的宏勾选 CLEANUP_IMAGE_CACHE
macro.CLEANUP_IMAGE_CACHE = true;
dynamicAtlasManager.enabled = false;
  1. dc不好控制
  2. 资源不好释放,释放了资源,但是因为图片那些被动态合并,这个资源可能就会释放有问题,多次释放和使用资源可能会导致内存多倍
  3. 会导致某些资源在释放的时候报错,我遇到的情况是在释放某个资源导致动态合批报错,导致游戏崩溃
  4. 会导致某些dragonBones的SHARED_CACHE模式出问题,我遇到的情况是某些情况播放动画报贴图错误,导致游戏崩溃
  5. 会增加游戏内存的使用,导致游戏更容易出现内存不足的闪退

高性能模式

能不开尽量不要开,对于大点的项目,这会导致内存根本就不够用,经常出现闪退