对于在动态游戏场上具有大量AI的游戏,哪种导航方法将是性能最高且最灵活的?

问题描述

我不确定100%在决定是否使用Unity的NavMesh与高级路径算法(例如HPA *或类似方法)时重要的因素。考虑以下机制时,使用Unity的NavMesh与滚动我自己的算法有什么关系?

  • 基于网格的实时构建。
  • 大量的AI,友好,敌对,中立。进入数百个。并非一次都在屏幕上可见,但是运动场会很大。
  • AI遵循层次结构。基本上,AI实体会执行彼此发出命令,接收命令并相互执行的任务。这样一来,就可以在单个单元上执行高级路径设置,从而将粗略的方向传递给其他人,以便其他人可以开始较低级别的路径设置以节省性能。
  • 世界很有可能被程序化。我想使用无限proc-gen,但是我认为这超出了范围。我不打算让地平面在实际高度方面变化很大,而只是放置在上面的物体。
  • 玩家和AI实体在运行时都会动态地添加和删除环境中的内容。

我已经阅读了一些有关NavMesh如何不能很好地处理运行时更改的文章,但是看到的教程/商店资产与此相反。也许我也可以结合使用方法?路径将花费大量时间,因此在此提出的任何建议将不胜感激。

解决方法

有很多解决方案。对于单个答案来说,这太过复杂了,但是这里有一些关键字值得研究:

  • 群体寻路
  • 潜在领域
  • 植绒算法
  • Boids
  • 避免碰撞

您使用哪种设备取决于一次要移动多少个单元,它们是要移动到同一位置还是不同位置,以及如果多个设备要移动到同一位置,则您希望它们如何表现 (例如,他们是否应该有意避免彼此碰撞?当一个人被锁死时采取其他路线?还是所有人都愚蠢地塞进同一个走廊?)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...