我绝对是游戏开发的初学者,而且我对避碰/解决冲突一无所知,在过去一周中,我是在该网站上或通过此网站学到的...因此,如果我要问的是什么,请立即纠正我。基于错误的假设/误解。我尽力弄清楚了,但是那句话对我来说仍然是新颖的。
车辆
在我的游戏中,我有可以自动行驶的车辆。它们被放置在3D空间中,它们的运动由许多变量决定,这些变量对于每个车辆而言都是不同的。这里感兴趣的一个主要是:
- 仅向前运动。
- 甲速度,可以最小和最大,但其min是之间变化不(甚至接近)零。
- 甲转向半径,其取决于从速度(更高的速度,更大的半径)
- 两个最大加速度(用于降低和增加速度)
目标
我的目标是实现某种能够100%准确避免碰撞的AI (即,我将确保车辆永远不会碰撞)。
设计
- 尽管我更喜欢将AI“车载”的想法(即每辆拥有自己的“防撞AI”的车辆,最终查询和/或向其他车辆发送消息),但我仍然可以在以下位置实现CA AI:中央层(向车辆调度命令)。
- 在大多数情况下,车辆仅需在任何方向上相互避开,但在某些情况下,它们将必须避免碰撞并朝着同一目标行驶
到目前为止我发现的东西以及被卡住的地方
在这个站点上其他问题中找到的许多链接中,我发现特别有用的链接有:
虽然这三个链接以许多方式“打开了我的视线”,但我仍然不清楚如何在我的情况下使用该信息。特别是在第2条中,只有“尝试”才能防止冲突(但是冲突确实会不时发生)。虽然第3条有时需要停车以防止碰撞。
我还注意到的是,上面链接的避免碰撞算法使用线速度的“即时投影”来检查车辆是否在行驶中。我想知道这是否足以满足我的需要,或者是否必须以更现实的方式来投影我的位置(例如:如果我将60°转向右90°,则我应该计算其余位置的位置曲线的30°,然后假设是线性运动)。
最后,我特别担心僵局。换句话说:尽管世界上的车辆密度会很低,但我担心,如果一定数量的车辆向同一点汇合,一旦他们意识到自己正在碰撞,就不可能进行任何规避操作因为它将使车辆与其他碰撞路径碰撞。
题
我怎样才能达到我的“目标”?深入理解当然是非常值得赞赏的,但是与外部资源的链接也将有很大帮助(我肯定不是第一个遇到此问题的人,但是可能我使用了错误的关键字来搜索网络吗? )
预先感谢您的帮助!