寻路中使用的不同方法,以及如何实现它们。
编辑:第2部分已发布!
再一次问好!
关于寻路或“ 3D环境中的实体运动”的本文将分为两部分。
这将是关于该主题的介绍,而第二个(将于下周发布)将介绍实现这种运动的不同方法。
如何在3D环境中移动实体?
在回答这个问题之前,我将确保我们在同一页面上了解本例中“移动实体”的含义。
在视频游戏中,许多元素需要能够在环境中以合乎逻辑的方式移动。 我并不是在谈论所有活动,而只是在谈论那些需要遵循由我们开发人员制定的规则创建的路径或计算出的方向的事物。
首先想到的是AI。 它们是游戏中需要穿越而无需穿墙的主要实体类型。 但是,还有其他类型的具有相同需求的实体。 例如,RTS中的单元在地图上移动而不经过建筑物或其他单元。
此外,本文还涉及真正的3D运动:在游戏世界的所有三个轴上运动 。 即使在3D世界中,大多数游戏也具有2D运动。 当您的角色在地面上行走时,您可以移动:向前,向后,向左和向右移动,但大多数情况下不会上下移动。
但是,在直接跳入3轴运动之前,我会先谈谈二维运动。 2D和3D运动之间有很多共同点,甚至包括大多数词汇。 这将有助于接近术语和一些基本类型的算法。
如果您只对3D移动方法感兴趣, 您可以阅读本文的第二部分(将于2015年10月10日问世)。 在第二部分中,我将介绍在游戏中以逻辑方式在3轴上移动实体的三种方法。
开始吧!
二维方法和术语
即使在今天,大多数游戏也使用2D运动。 在平面上,存在许多算法来计算路径。 而这同时考虑了障碍。 您肯定已经听说过它,它被称为“ 寻路 ”系统。 这些算法的目标是在环境中找到路径。 最常见的类型是A * (发音为“ A star”)。 我会谈一点。
A *是一种算法,它可以处理称为节点的图中的多个点。 它使用起始节点和目标节点作为参数,并计算图中这些节点之间的最有效路径。 通过简单的方式,该算法通过比较每个节点的运动“成本”来工作。 成本是节点与目的地之间的距离。 通过计算该成本并移动到每个邻居的节点,该系统可以通过使用成本最高的节点来检测障碍物并找到最佳路径。