一、抖音网红小游戏,爱的魔力转圈圈

《我飞刀玩得贼6》是北京冰狮科技有限公司旗下睡神飞工作室推出的一款创新.io 类游戏,独创的魔性飞刀大作战玩法广受玩家喜爱,在 TapTap 上有超过 100W+玩家关注这款游戏,更是一度霸占 AppStore 免费榜第一名,评分高达 4.8。奇特的是,这款游戏的成功并不归因于发行团队的营销手段,而是靠网友自发传播而走红,与游戏有关的话题“爱的魔力转圈圈”讨论数量高达 8 亿。

与其他.io 游戏不同的是,《我飞刀玩得贼6》将攻击与防御融合成一个点按动作,按住屏幕可控制飞刀移动且处于闭环状态,松开手指则飞刀朝外处于防御状态,地图上的众多障碍会限制体积大的飞刀阵的移动,触碰到障碍时,飞刀会被削减,段位提升后还有黑洞等障碍提升难度。

“贼6”是游戏界广为流传的一个梗,源自《守望先锋》的“开黑吗?我半藏玩得贼6”,后来游戏中对操作要求较高的英雄都会被套进这个梗中,形成了一种亚文化现象,抖音相关的短视频中处处充斥着对游戏魔性标题的调侃。1月22日,有抖音用户发布了一个与游戏有关的恶搞风翻唱视频,一句黑龙江口音的“爱的魔力转圈圈”很快走红抖音,成为了又一抖音神曲。两大热点加持,用户自发的爆炸式传播,加上抖音官方的推波助澜,成就了这款游戏的爆红。

二、H5 移植小游戏平台,如何做性能优化?

《我飞刀玩得贼6》拥有 H5 版本和小游戏版本。在小游戏级别的体量上,游戏同时兼备了可玩性、深度以及平衡性的考量,不过从 H5 移植到小游戏平台的过程中,工作室也不免遇到了一些技术难题,例如小游戏的性能以及 DrawCall 的优化等,Cocos 团队提供服务参与了这款游戏的性能调优过程,经冰狮科技的同意,今天同各位开发分享一下这款抖音网红小游戏具体的优化方案。

引擎版本:

Cocos Creator v2.0.9

排查原因:

通过调试引擎代码,结合项目的具体信息,Cocos 引擎工程师定位到了问题,并第一时间跟进解决。

(1)飞刀资源的 batching 被打断

原因分析:

由于飞刀的碰撞使用到了碰撞分组,碰撞分组是由节点属性 groupIndex 决定的,而引擎中的 cullingmask 也使用了 groupIndex 来作为渲染的分组标示,因此造成飞刀的渲染 batching 被打断。

问题代码:

评估的优化方案:

检查飞刀逻辑,确认飞刀在玩家身上时的 groupIndex 有统一设置,从 nodepool 中获取飞刀时,飞刀的 groupIndex 有进行设置

在 CCNode 中定义一个新的属性用来作为碰撞分组的标示

修改 batching 的代码,在 material 为飞刀的材质时,忽略 cullingmask 的判断

微信上默认关闭了 dynamicAtlas 功能,开启 dynamicAtlas,会有效减少 DrawCall,但会带来内存的增加。可以通过修改引擎 dynamicAtlas 的 insertSpriteFrame 方法,以及 CCTexture2D 的 handleLoadedTexture 方法,使得只有飞刀的资源会进入到 dynamicAtlas 中,实现小范围的动态 batching 功能,从而可以内存增长这个副作用控制在一定的范围内。

最终使用的优化方案:

由于项目进度,暂时只做了第一步,基本可以解决掉问题。2、3、4是比较极致的优化手段,并未实现,最终效果降低了 30~40 个 DrawCall。

(2)CollisionManger 的帧率默认为 60 fps,定制修改为了 30 fps,最终优化效果在低端机上可以节约 5 ms。

(3)字体优化,排行榜、击杀提示等均适用的系统字体

评估的优化方案:

尽量使用 bmfont 字体,不使用系统字体

开启 dynamicAtlas 功能,Label 的 CacheMode 选择为 BITMAP

使用 RenderTexture 创建节点快照,将字体图标放到一个 RenderTexture 中,最终以图片的形式整体显示

最终使用的优化方案:

全部字体更换为 bmfont

其他方案也都是比较极致的优化手段,未实现,同时开启 dynamicAtlas 这个方案要配合飞刀的优化方案一起使用才会比较好

(4)粒子、飞刀、玩家为动态创建,影响性能。

评估的优化方案:

使用 nodepool,将所有的粒子,飞刀,玩家,全部提前创建好,整个游戏过程没有任何 prefab 的创建。

(5)Canvas 外的节点还进行渲染,影响性能以及 DrawCall,渲染效率。

评估的优化方案:

Camera 定制剔除功能,使得 Camera 外的节点不进行渲染。

最终使用的优化方案:

仅剔除 Camera 外的玩家以及背景上未被拾取的飞刀

玩家身上的飞刀不剔除,考虑到飞刀皮肤都一致,只占一个 DrawCall,且如果剔除的话,需要计算飞刀位置,消耗的性能也不小,权衡性能后发现得不偿失,因此没有实现。

效果在对 DrawCall 比较敏感的低端机上提升较大:A57 上 fps 从 30 提升到了 45+。

经过以上几点,最终 DrawCall 从原来的 130+ 优化到了目前的 50-80 之间,在低端机例如 oppo A57 上最终游戏稳定运行在 45-55 帧。

回顾与冰狮科技的技术支持服务过程,在收到需求之后,Cocos 第一时间与冰狮科技建立了联系,在详细了解了项目情况以及游戏玩法后,针对“优化”这类原因不确切的问题提出了具体的排查方向,于此同时,冰狮科技也为 Cocos 提供了测试数据和表现。从需求建立到最终解决问题,只花了 3 天时间。

突如其来的爆火之后,也出现了不少对《我飞刀玩得贼6》苛责的声音。游戏本身的创意和基础都很扎实,然而在在细节方面仍存在进一步打磨和提升的空间,我们也很期待《我飞刀玩得贼 6》能够继续优化游戏体验,丰富游戏玩法。Cocos 引擎将继续帮助冰狮科技解决研发过程中遇到的技术难题,提升开发效率,助力游戏再创佳绩。

三、用最专业的技术,服务你出类拔萃的梦想

多年来,Cocos 引擎除了深耕底层技术,致力于为开发者打造高效、简单的游戏开发工具之外,还为开发者打造了付费技术服务,包含技术支持、企业培训和项目评估等。

  • 技术支持: 为开发团队解疑答惑,解决开发过程中遇到的技术难题,加速项目进程。
  • 企业培训:根据企业需求,为开发人员量身打造精准的培训课程,通过面对面的技术培训,提升企业开发人员的技能水平,进而加速企业整体技术实力的提升。
  • 项目评估: 为项目提供完整的技术评估、查找效率问题。
  • VIP 服务: 为企业提供包含技术支持、企业培训、项目评估等在内的全方位服务支持,除此之外,Cocos 百万开发者用户以及丰富的线上线下推广资源,可助力企业进一步提升品牌影响力。

想要进一步了解 Cocos 企业付费支撑方案,可以联系我们噢!

联系 QQ:Cocos_Vivi 3213143729

技术问题还请移步社区交流噢!

Cocos 社区:https://forum.cocos.com/

Cocos 官网:https://demo-www.cocos.com/

扫码体验《我飞刀玩得贼6》

冰狮科技高薪岗位正在热招中,如果你是程序、美术或策划,而且你也想加入这款“畅销游戏”的团队,快快戳这里用你的实力去刚他们吧!

更多精彩

Cocos 技术派 | 实时竞技小游戏技术分享

Cocos 技术派|重度小游戏《三国封魔传》技术实现方案

Cocos 技术派 |《野蛮人大作战》从开发到上线

创意小游戏专访 | 《蛇它虫》

创意小游戏专访 | 《五子大作战》

创意小游戏专访 | 《甜蜜糖果屋》

声网实时游戏语音服务已在 Cocos Creator 正式上线

Cocos 引擎正式支持百度小游戏

抖音爆款小游戏《我飞刀玩得贼6》性能优化案例分享相关推荐

  1. 爆款小游戏《枪火工厂》开发调优经验分享

    2019年微信小游戏市场涌现了不少精品爆款小游戏,曾登顶腾讯&阿拉丁小程序排行榜第一的<枪火工厂>目前累计注册用户超过1.2亿,DAU超过300万,月收入接近2000万,这样一款枪 ...

  2. 【干货】《我飞刀玩得贼6》性能优化案例分享

    一.抖音网红小游戏,爱的魔力转圈圈 <我飞刀玩得贼6>是北京冰狮科技有限公司旗下睡神飞工作室推出的一款创新.io 类游戏,独创的魔性飞刀大作战玩法广受玩家喜爱,在 TapTap 上有超过 ...

  3. 我用 MATLAB 复刻了抖音爆火小游戏 苹果蛇

    最近抖音上苹果蛇小游戏大火,为了证明MATLAB无所不能,咋能不跟风做一个?于是就有了这一篇. 还是提一句这个小游戏开始玩的心路历程: 第1-5关:?这不就是有重力的贪吃蛇,有任何难度嘛?? 第6关: ...

  4. 只需一行Python代码即可玩20几款小游戏

    今天分享一个有趣的 github 项目:https://github.com/kingser/free-python-games,通过该项目,我们只需一行代码即可玩 20 几款小游戏,下面具体来看一下 ...

  5. 计算机课玩的小游戏,电脑课必玩3款单机游戏,CS玩的紧张,最后一款每台电脑都有!...

    原标题:电脑课必玩3款单机游戏,CS玩的紧张,最后一款每台电脑都有! 现在每个学校里都有电脑课,这是让小编非常羡慕的,因为当年小编上学的时候到了初中才有的微机课,因为小学里没有电脑.但是电脑课都是很无 ...

  6. 如何在微信、抖音上线一款小游戏?版权认证新指南!

    前言 就在昨天,有老铁向晓衡咨询,个人要上线一款小游戏到微信.抖音平台,是否需要版号.软著的问题. 你是个人还是公司? 你的游戏是免费的还是有充值收费功能? 在这里我简单画了一个图: 但是,据晓衡所知 ...

  7. 火爆到把服务器搞瘫痪,一款小游戏,合成大西瓜

    点击"开发者技术前线",选择"星标????"让一部分开发者看到未来"  昨晚有一款小游戏非常火爆都冲上热搜了.我玩了一会,比刷抖音还容易上瘾.昨天用户 ...

  8. 太火爆了!这一款小游戏火到把服务器搞瘫痪,合成大西瓜

    点击上方"码农突围",马上关注这里是码农充电第一站,回复"666",获取一份专属大礼包真爱,请设置"星标"或点个"在看" ...

  9. 火到服务器瘫痪了,这款小游戏太火爆了,合成大西瓜

    点击上方"Github中文社区",关注看遍Github好玩的项目 大家好,我是huber! 昨晚有一款小游戏非常火爆都冲上热搜了.我玩了一会,比刷抖音还容易上瘾. 今天周末,在这里 ...

最新文章

  1. 把我坑惨的一个update语句!
  2. java 和 flash socket通信封装
  3. 李雷和韩梅梅的一次转账事务–事务系统概述
  4. 窗体间传值和窗体间互操作
  5. 一个最简单的bootstrap例子
  6. windows下安装subversion
  7. python3.0程序实例_Python3 编程第一步
  8. 外媒:三星电子与现代汽车考虑在汽车芯片领域结盟
  9. Linux 进程状态 说明
  10. 有关parent.frame.cols在firefox浏览器上不兼容的问题解决
  11. UNIX环境高级编程——第一个程序
  12. gnu nano显卡测试软件,显卡天梯图2018年9月最新版 秒懂桌面显卡性能排行
  13. 人体反应测试仪 c语言,有趣的人体反应速度测试电路
  14. R 语言消除pdf图片的空白
  15. 千岛湖2日团建旅行!游览天下第一秀水,感受湖岛遍布的磅礴气势!_团建拓展_嗨牛团建_杭州站...
  16. 音视频处理基础知识扫盲:数字视频YUV像素表示法以及视频帧和编解码概念介绍
  17. Numpy + Matplotlib 绘制白色画图
  18. 第一讲:计算机基本结构
  19. qt学习笔记(八)之深入QSqlQuery
  20. 更换matlab版本需要注意事项,AMD 篇四:更换Matlab调用MKL库版本

热门文章

  1. wireshark常见协议包分析1
  2. IMX6 GT9XX 10.1寸触摸屏移植
  3. 什么是你的核心竞争力?
  4. 从事嵌入式行业年薪有多少,你和高薪究竟差了哪些东西?
  5. 《扫黑风暴》全网爆火!用Python具体分析一下它怎么火起来的?你喜欢看吗?
  6. 深度学习笔记(三十一)三维卷积及卷积神经网络
  7. Linux安装idea步骤
  8. java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity异常的易被忽略的原因
  9. python turtle方向_Python turtle.left()用法及代码示例
  10. python可视化窗口库_Python可视化工具介绍——找到合适的库