大家好,我正在开发我的第一款大型商业项目裂隐生还者. 这是一个3D求生游戏,我真希望游戏画面上有一大堆敌人,比如说5000或更多,并且具有疯狂的法术设计系统,类似于Magicraft 但是优化敌人性能非常痛苦。
开始时,我仅仅在NavMeshAgent内 spawn 500个敌人,我的电脑几乎爆炸了,5fps,简直是可怕的。
过了几天,我学到了很多优化类似东西的知识。
- 停止Update()的疯狂刷新: 我们知道5000个敌人每帧都要进行自己的逻辑运算,这才是CPU的死穴。 我们删除了几乎所有对敌人脚本的操作,一个“主管者”管理并统筹所有敌人。
- 当然我需要使用工作线程系统
- 我入队了敌人的spawn - 我只在忙碌的帧内进行敌人spawn。
- 删除NavMesh - 很好,但并不可用,开始使用简单的向量进行运动。
- 将地图划分为段,敌人越遥远,计算精度越低,例如我将整个小组同时移动一个向量(这节省了大量计算),当敌人越接近玩家时,越细化分段计算,因此各个敌人近玩家时都会有自身的运动计算。
还望大家能有更多的建议,因为现在游戏还有许多问题,需要更多的优化。
评论 (0)