01 前言

大家好,我是98K!五一前,我上架 Cocos Store 的『高性能割草框架』增加 Cocos Creator 2.4.x 引擎,已经支持的老铁可免费更新!

后续的更新计划是:完善2D游戏案例、增加3D案例、支持RVO和群聚,让框架更实用,应用范围更广。

感谢大家的支持,『98K Cocos 技术交流群』开3群了,进群可领取50优惠券,欢迎大家一起交流、学习、共同成长!

最近弹幕,割草非常的火爆,从独立开发吸血鬼幸存者大火,到大赚 10 亿的弹壳特工。

还有后起的成绩喜人的通神榜、土豆兄弟、黎明前20分钟......相信没人能会拒绝,满屏小怪被弹雨突突的击杀的快感,还有超武的爽快激动。

这次在 ChatGPT AI 的加持下,我为大家提供一个支持1000怪同屏,通用高性能2D/3D动态碰撞检测方案。

02 性能测试

在开始介绍之前,我先公布一下性能测试结果,如果你觉得还不够用,那就不浪费时间,继续往下看了。

AABB 2D碰撞测试

  • 设置设备:小米10 骁龙865

  • 浏览器:系统自带浏览器

  • 测试数据:2000节点,平均5ms

AABB 3D碰撞测试

  • 设置设备:小米10 骁龙865

  • 浏览器:系统自带浏览器

  • 测试数据:2000节点,平均8ms

2D割草DEMO测试

  • 设置设备:小米10 骁龙865

  • 浏览器:系统自带浏览器

  • 测试数据:400节点,平均2ms

这里是 H5 链接,您也可以在自己设备上测试体验:
http://learncocos.com/rougelike/

下面我再讲讲,具体的碰撞优化思路与ChatGPT给予我的一些帮助,希望能对你有所帮助。

03 技术要点

碰撞系统分为动态和静态两种,不同的情形会使用不同策略。

动态碰撞检测

动态碰撞检测,主要针对运动物体、例如角色、子弹、技能等,基于智能分轴扫掠优化方案,使用了(优化版SAP + OBB等......)适用各种2D/3D、运动物体检测,如:角色、弹幕、子弹、攻击。

静态碰撞检测

静态碰撞检测,主要针对静止物体,例如:场景、物品、障碍等。基于空间静态分割优化方案,使用了(octree + kdtree + gjk + epa等算法) 适用于 3D 世界行走、3D表面行走、边界检测(FPS、MMO、RPG等类型的游戏)。

动态碰撞检测系统组成

  1. AABB 包围盒更新

  2. 粗略碰撞算法筛选

  3. 最后形状精确碰撞

最近 AI 很火,听说它要来抢我饭碗。我到要看看,能不能先跟他交个朋友,助我实现,上面所说的三件套。

04 ChatGTP 能力加持

先科普一下,这次为什么会挑选 SAP ?因为各大物理引擎都能看它的身影,存在即是理由。

SAP全名:Sweep And Prune,是一种对轴向排序扫掠算法,有种SAT剪枝的味道。

对 X 轴投影可以快速分离排除相交

优点如下:

1. 物体更新快(物体实时更新位置)

由于要对分轴排序,你可能会想到用快排 nlogn。

但是 SAP 有个真正灵魂的地方,由于运动物体相邻帧情况下排序是相对稳定,所以实际中使用插入排序会更快,大部分情况接近 O(n) 的性能,整体上会比nlogn 快很多。

其他树状如四叉、八叉、BVH等算法,更新物体需要调整树结构是消耗成本不低的。

2. 物体间相互检测快(常说的 trigger)

由于使用的是顺序存取结构,读写性能比其他树形结构要高。

同时轻易进行相互 trigger 检测,而且这顺序结构天生就带去重检测功能。

例如:四叉树、八叉树、格子等,这一类多次分割,还要进行去重标记检测,无形增加性能消耗。

3. 支持2D/3D无范围限制 (兼容性)

由于是对轴向排序分割检测,所以不存在空间大小限制,也不受维度的限制,很好的支持全范围的2D/3D 空间检测。

像四叉,八叉,格子,可能会受到空间范围大小限制。

本着人生第一信条,谁提出问题就让谁来解决问题。我决定让 AI 它解决自己抛出的问题。

好家伙,一声音不哼地啪啪啪打起代码来了,感觉流程可以!但是,还是缺少点灵魂,武功心法掌握的是十足,但打起功夫来,还是差了点。

兄弟这不太行啊!看来,老哥我只能循循诱导,给它提起优化建议。

经过一轮交谈,也收集得差不多了。本着个人第二信条对技术负责的态度,在 AI 编写的框架上进行自己的精准的改造。

同时结合自己的优化方式,对 SAP 算法进行了深入的改造,为后面碰撞检测提供最大的效力。

05 AABB与Shape

粗略筛选完成了,成功了一大半,还有两个环节:AABB、Shape 如何实现呢?

1. AABB 包围盒更新

本着个人第三信条,能不动手坚决不动手,于是再次唤醒 AI 起来啪啪啪写代码。

求算旋转后的 AABB,提供给 SAP 筛选。

What? 打住,你给我整 8 个顶点的来算运动中的 AABB,老板看到不得血压爆表,行行行,再好好规劝一下。

好家伙,你是知道得挺多的就是不给我,AI兄弟你这不厚道啊,行行赶紧给我写出代码。

兄弟(看样子快成形了,我心里暗喜,再求求它)再帮忙优化一下,游戏优化飞起,老板看到一开心,就发我薪水啦!!!

行吧,这代码算是到点子上,本着个人第二信条对技术负责,最后优化细节简化由我再进行处理。

这样 AABB 旋转更新完成,可以交付到SAP进行粗略碰撞筛选。

2. Shape形状精确碰撞

目前暂时支持 Box、Sphere 检测(后续会支持其他常用),支持3D旋转操作的碰撞。

所以我们要实现OBB vs OBB 和 OBB vs Sphere 的检测。本着个人第三信条,厚着脸皮再次唤醒了 AI。

  1. Sphere vs Sphere 的碰撞检测,不为难它了

  2. OBB vs Sphere (旋转方体与球体 精确碰撞)有这个检测,只需要把Sphere转到OBB 旋转坐标系下,就可以转化为AABB求交。

  3. OBB vs OBB (旋转方体之间精确碰撞)

本着个人第三信条,再次让AI啪啪啪的工作起来。

本着个人第二信条原则,最后优化细节简化由我再进行处理。

自此,三大件在 AI 的协助下,得到了很好解决。

最后在我的组装修改下,碰撞系统终于运行了起来,AI是可以写代码,但是它不一定完美,需要从业者有一定知识储备,才能更好地发挥它效力。

假以时日,在不断地训练下,和全球广大的知识网库的加持下,它终究会成为那个巨人。

06 小结

今天分享的内容,而非 98K 大佬本人的极限,98K高性能割草框架,未来还会继续迭代更新,内容如下:

  • 增加实用Shape

  • 支持群聚的优化

  • 增加高性能查询

各位老铁们,敬请期待!后续更新免费升级~

如果你对 Cocos 游戏开发、技术、变现感兴趣,欢迎加晓衡微信:z6346289。

往期精彩

  • CocosStore卖家成长指南

  • Creator 3.x 入门修炼指南

  • 用ChatGPT做一款二次元卡牌游戏

  • 坚持做一个长期主义者

  • 一个公式35岁让自己过的越来越好!

  • 《我的世界》体素类游戏完整解决方案!

续ShaderEditor、Inspector之后又一成功爆品,2周260+单!相关推荐

  1. 小红书爆品3大公式+12个卖点,让你的产品更有吸引力

    小红书推广过程中,品牌想要更好更快地抓住用户注意力,必须要聚焦某一卖点,从打造爆品开始,让消费者产生强烈的心智认知,从而提高品牌影响力. 01 3个可复制的爆品公式 透视一核多元逻辑 一款产品如何让自 ...

  2. 回顾小米公司的成功过程,用五个层次的问题阐述,小米的成功基础、小米的爆品特点、小米生态链模式的根本原因。

    万建峰老师 非常网赢课程 茶叶191 朱上涛 回顾小米公司的成功过程,它的成功模式可以这样总结:他抓住了智能手机行业性价比这个本质,高配低价是核武器.利用性价比炒作,获取了大量关注,充分利用互联网时代 ...

  3. 伙伴云CEO戴志康:Discuz !之后,打造数字化武器,助力元气森林们做爆品

    "像元气森林CEO唐彬森这样带着做游戏的思路去做气泡水的互联网人,已经不在少数 ",伙伴云董事长戴志康说. "像元气森林CEO唐彬森这样带着做游戏的思路去做气泡水的互联网 ...

  4. 百万互动出圈爆品复盘,小红书品牌如何高效打造爆品?

    在激烈的市场竞争中,成功培育出热销爆品,是每个品牌都渴望并竭力想要达成的目标.如何成功打造爆品?是摆在每个品牌面前的难题.本文将结合某染发品牌和某洗地机品牌具体案例,从产品种草关键词.投放人群.投放达 ...

  5. 电子计算机行业爆品打造,二类电商|爆品打造,不是你想造就能造

    本文来源:大串想 在商界,几乎 没有哪一个厂家.没有哪一个经销商不想打造爆品,打造爆品的好处实在太多了. 一.爆品决定江湖地位 1. 手握爆品,特别是独一无二,甚至是遥遥领先于友商的爆品,成为行业细分 ...

  6. 社群团购到底有哪些优势?为什么社群团购很容易打造爆品?

    社群团购到底有哪些优势? 很多人一听社群团购,就会自动打上低价乱价仿货劣质标签,事实上,社群团购已经开始泾渭分明了,慢慢辐射高端用户群体,大部分社群团购平台年流水过亿,利润在20%左右.社群团购平台未 ...

  7. 单品销量破百万+,登顶天猫类目第一!摇滚动物园的爆品打造攻略你学会了吗?

    4 月 12 日,天猫在其官博公布今年天猫金妆奖入围的 100 件商品名单,并宣布评审正式开始,此次金妆奖集结了 100 多位美妆界顶级意见领袖,每人只能在 100 件入围的美妆单品中投出 3 票,十 ...

  8. 新物种打造爆品,总共分几步?DeepTalk vol.1

    主笔:邹小困 主持人:增长黑盒CEO Shimiao 出品:增长黑盒研究组 众所周知,无论什么消费领域,做品牌的核心都是产品. 我们在做行业调研时发现,到底开发怎样的产品.如何高效地开发出产品以及现有 ...

  9. DeepTalk vol.1 新物种打造爆品,总共分几步?

    主笔:邹小困 主持人:增长黑盒CEO Shimiao 出品:增长黑盒研究组 众所周知,无论什么消费领域,做品牌的核心都是产品. 我们在做行业调研时发现,到底开发怎样的产品.如何高效地开发出产品以及现有 ...

最新文章

  1. ABP Zero示例项目问题总结
  2. centos7 利用 crontab 执行 定时任务 计划任务
  3. python为什么中文要encoding-python中encoding是什么意思
  4. 如何给网站制作一个favicon.ico图标
  5. 员工发布“宏颜获水”广告引争议 苏宁回应:系个人行为
  6. Linux基础命令---间歇执行命令watch
  7. Minix、UNIX、Linux的区别与联系
  8. linux系统镜像iso文件下载
  9. Java贪吃蛇游戏开发
  10. C# PDF操作之-PDF转WORD
  11. 飞凌单片机解密_干货:芯片解密方法大全
  12. android直播刷礼物特效,Android直播送礼物发消息页面(仿印客直播)
  13. 学生用计算机如何算角度,如何用windows计算器计算角度的正弦值?
  14. mac上 网易mumu模拟器在打开代理后无法使用键盘 解决办法
  15. 【元宵节】中国人民大学与加拿大女王大学金融硕士项目与你的那份“缘”
  16. Tables[0].Rows.count什么意思?
  17. 山狮来临,Notes何往
  18. 《GIT视频教程》(p41~p44)
  19. 最近组织游泳社的体会
  20. Crowd Control

热门文章

  1. 国密算法sm3java软实现_国密算法实现
  2. 科莱特靠不靠谱?学过SAP的人来分享下
  3. 金融行业IT运维监控体系建设
  4. 压测工具BenchmarkSQL对OceanBase开源版3.1.2性能测试调优
  5. python翻译器怎么下载_python翻译
  6. 微信小程序实用工具——渐变色按钮(二)
  7. Java枚举类与注解——一篇文章读懂枚举类与注解
  8. hotmail收不到邮件_将Hotmail和实时电子邮件帐户添加到Outlook 2010
  9. Linux——什么是环境变量?
  10. 如何高效的安排工作时间?