cocos2d-lua性能优化 (腾讯游戏学院)

腾讯游戏学院 – 优化Cocos2d-x游戏性能

在Cocos2d-x中一些常用的优化方法

  1. 尽可能地使用批次渲染(Batch Draw)

  2. 按照经验,尽可能把你的 Draw 数量控制在 50 以下

  3. 减少 32 位未压缩纹理的使用,尽量使用 16 位且压缩过的纹理格式。纹理压缩

  4. 尽可能地使用支持硬件解码的压缩纹理:比如 iOS 平台使用 PVRTC 纹理, 在安卓平台上面使用 ETC格式的纹理。目前所有的 Android 设备都是支持 ETC1 格式的纹理的,但是此纹理格式不支持 Alpha,所以你需要修改一下引擎以使用 ETC1 格式的纹理。

  5. 不要使用系统字体来动态显示你的游戏中的分数等信息,请使用 BMFont 字体。

  6. 请使用对象池和预加载技术来避免临时卡顿。

  7. 使用 armeabi-v7a 架构来编译 Android 的 SO,因为在此架构下面 Cocos2d-x 会启用 neon 指令集,矩阵运算的效率会大大提高。

  8. 不要使用动态光照,尽量使用 bake 光照。

  9. 避免在 pixel shader 里面做非常复杂的计算 / 减少if语句

  10. 避免在 pixel shader 里面使用 discard 和 alpha test,因为这样会破坏 GPU 自身的 depth testing 优化,比如 PowerVR 的 HSR

  11. 使用texturepacker拼图,用texturepacker把一些小散图打包到一张大图,减少纹理IO和draw call。

  12. 使用对象池,在需要频繁创建对象的场景中,使用对象池。

  13. 切换场景时释放无用纹理
    CCTextureCache:sharedTextureCache():removeUnusedTextures();
    CCTextureCache:sharedTextureCache():dumpCachedTextureInfo();

  14. 整理常驻内存UI资源,把主界面底部共用菜单等界面资源打包成一张纹理,常驻内存,省去加载和重新创建纹理的开销

  15. 预加载方法,对于游戏中需要用到的外部资源,比如纹理图集,声音文件和 TTF 文件等,尽量采用预先加载的方式来处理。


性能优化:
1 入场动画/分帧加载,避免一帧处理过多 <阵容出场动画>
2 资源延迟释放(popScene时, 因为释放时机不定)
3 预加载资源(即提前裁入内存, 音效/spine/…)
低端机卡顿优化(像iphone5内存512M):设置纹理格式(内存) / 不播特效… / 清楚unse纹理和spine / 删除预加载(战斗界面)


编程基础:
有重复用for循环或正则表达式 数据驱动(把数据抽象为数组或配表)


适配原则:
1 屏幕左边时锚点x设为0,位置=0。 屏幕右边时锚点设为1,位置=屏幕宽度
2 位置是相对上层/父节点,

在这里插入图片描述
在这里插入图片描述

--------------------------------------------------一些bug反馈

bug .
A 黑鲨机型剧情秀将丢失语音问题处理
B. 黑鲨手机秀将播放语音嘴型不同步问题处理
分析:不同步 是因为播放语音有延迟–预加载)
单一机型报错:一般不会针对某一机型处理/至多分类(如越南低端机高端机) 统一处理

经典的bug:
低端机战斗闪退(因为:瞬间内存过大, 如iphone5s运行内存是1GB,除去系统和应用占的 游戏能分配很少,在加载资源一瞬间过大导致crash )
武将突破闪退:重复突破时,先删除removeAllChild…又创建载入内存导致底层纹理缺失闪退


项目立项基础:(讲座)
1 UI规范
2 代码规范
3 代码通用组件 <保证技术方案统一>
4 方便的调试器
5 功能模块(数据 UI 逻辑…)

----------------------------国际化
A 文本图片处理:
在这里插入图片描述
B 资源规范 <带文字对应语言下,无文字放通用base目录下>
1 方便同步国服代码 2 Path路径加载

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值