【Unity】万人同屏, 从入门到放弃之——多线程RVO避障

Unity万人同屏动态避障 GPU动画 Entities Graphics高性能合批渲染插件的使用_哔哩哔哩_bilibili

 万人同屏方案(gpu动画、渲染、索敌、避障等功能),可某宝搜【店铺】:【游戏开发资源商店】获取整套方案源码。

划重点!!此方案是绕开Entities(ECS),不用写一行ECS代码,现有MonoBehavior开发工作流享受Entities渲染的性能。已有项目也能使用此方案开挂,无需代码重构!

万人同屏对抗demo测试包下载,以及万人同屏方案性能测试,有需要的老板可以某宝【搜店铺】:【游戏开发资源商店】:https://pan.baidu.com/s/1ML0DC8s0RkkTAraN9maltw?pwd=blueicon-default.png?t=N7T8https://pan.baidu.com/s/1ML0DC8s0RkkTAraN9maltw?pwd=blue

不使用Dots能否实现海量物体同屏?很多场面宏大的游戏,尤其是Rougelike游戏,动辄成千上万满屏怪,割草清屏的快感酣畅淋漓,所以这类游戏非常火爆,然鹅是怎么做到的呢?

首先,海量移动物体用寻路是行不通的,即使是支持多线程的A * Pathfinding Pro区区三五百个就开始严重掉帧。

测试环境:

Unity 2022.3.9f1, URP 14.0.8

模型顶点数1195, LOD1顶点数858,LOD2定点数530

PC:i7-13700KF + 3070 8G;

手机端Android:骁龙8 gen2;

PC端RVO避障测试:

 PC端Unity Editor下压测,区区5000人就快掉到50帧, 先帝创业未半而中道崩殂。CPU端性能消耗主要再RVO避障每帧构建KDTree计算和上传数据到GPU,GPU这边则是在一边凉快,坐等CPU准备和上传渲染数据到GPU;

PC, 5000人:

 手机端骁龙8 gen2真机,3千人就已经扛不住了,掉到24帧。用的HybridCLR热更解释执行,不过即使是AOT也只能再高出5 - 10帧左右。

手机, 3000人:

动画部分毫无疑问,不能用Animator。是通过把骨骼动画每帧的顶点信息写到Texture,运行时使用Mesh Render + Shader从中从顶点Texture中把位置读出来用,SRP会自动合批:

使用LOD:

Okay, 那就降低模型面数,使用LOD功能,  LOD1 顶点降低30%, LOD2 降低60%的情况下,果然效果显著:

PC端5000人, 帧数几乎翻倍,100帧左右:

 手机端3000人, 也几乎翻倍, 帧数来到了44:

 就这? ??而且这是在没有复杂游戏逻辑的情况下的表现,实际项目中还会大打折扣。看来,使用传统方式不要说万人同屏,千人都费劲。

结论: 传统方式极限发挥也就是千人同屏的水平,放弃!

不过RVO避障还是需要的。测试项目基于开源RVO2 C#版修改:GitHub - snape/RVO2-CS: Optimal Reciprocal Collision Avoidance (C#)

 主要对原版RVO做了以下修改:

1. 使用Easy Threading并行刷新RVO Agent;

2. 增加删除Agent的功能;

3. 增加Agent避障权重设置,如,把到达目标位置的Agent权重设置为0后, 它就不会被其它Agent挤走;

4. 增加形状障碍物,BoxObstacle、 CircleObstacle、EdgeObstacle;

5. 性能优化,使用ArrayPool取代每帧创建数组;

6. RVO.Vector2改为Unity Vector2,以及RVO.Math优化,避免原版分母为0导致的异常。

RVO2 Unity修改版:GitHub - sunsvip/UnityRVO2: RVO for unity

注意:

如上使用的多线程并非Dots中的JobSystem,因此线程间数据传递会导致大量gc。

强烈推荐Job System版RVO:【Unity】十万人同屏寻路? 基于Dots技术的多线程RVO2避障_TopGames的博客-CSDN博客

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 《Unity 5.x从入门到精通PDF》 是一本关于学习和使用Unity游戏引擎的指南。这本书从入门级别开始,逐步引导读者掌握Unity游戏开发的核心概念和技巧,最终达到精通的水平。以下是一些内容的概述: 该书首先对Unity的基础知识进行了介绍,包括Unity的界面、场景编辑、资源管理、组件和脚本等。通过这些基础知识的学习,读者可以快速上手Unity的开发环境,并了解如何创建基本的游戏场景和对象。 接下来,该书逐步介绍了Unity游戏开发的更高级的概念和技术。这包括游戏对象的控制、动画、物理引擎的应用、碰撞检测、UI界面设计和音频管理等。在这些章节中,读者将学会如何利用Unity提供的工具和功能创建复杂、交互性强的游戏对象和场景。 此外,该书还探讨了一些高级技术和特色功能,比如人工智能、多人游戏开发、虚拟现实和增强现实等。这些章节将对读者进一步提高开发水平和应用技巧有很大的帮助。 《Unity 5.x从入门到精通PDF》结构清晰,内容具体实用,适合初学者和有经验的开发者使用。它通过理论知识和实例代码相结合的方式,帮助读者全面了解和掌握Unity游戏引擎的各种功能和技术。无论是想成为游戏开发者,还是对Unity感兴趣的人,该书都是一个很好的学习资源。 ### 回答2: 《Unity 5.x从入门到精通》是一本关于Unity游戏引擎的教程。它的目标是帮助读者从入门到掌握Unity 5.x的开发技能。 该书的内容涵盖了Unity的基础知识和高级技术,适合初学者和有一定经验的开发者。书中以简明易懂的语言介绍了Unity的基本概念、编辑器的使用方法和常见的开发场景。 《Unity 5.x从入门到精通》的内容包括但不限于以下方面:介绍Unity的界面和基本操作、游戏对象的创建和管理、场景的构建与调试、材质和着色器的使用、光照和阴影的处理、游戏物理和碰撞、动画和控制、UI设计和实现、粒子系统、多人游戏开发、移动平台适配等。 在书中,作者还提供了大量示例代码和实际案例,帮助读者理解和应用所学的知识。此外,该书还介绍了一些常用的开发工具和技巧,如版本控制、性能优化和调试技巧等。 总之,《Unity 5.x从入门到精通》是一本循序渐进、系统全面的教材,它能够帮助读者快速入门Unity的开发,并逐步掌握其高级技术,从而成为一名熟练的Unity开发者。无论是想要开发自己的游戏还是参与团队项目,这本书都能给予读者必要的知识和技能支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值