赛车AI行为模式


9

假设您有一个基于样条的赛车AI。假设它已经可以处理围绕轨道的制动和转向的基本知识。

您将如何组织和实施避免碰撞,超车,起草,阻止和其他行为的方式,以使您的赛车保持竞争力,同时进行有趣的比赛?

与论文/实施的链接非常棒。


您使用的是哪种发动机,
Harshal Benake

Answers:


7

您是否看到过自主角色的转向行为?我会考虑使用“ CrowdPathFollowing”算法来保持在轨道上并避免碰撞。您可能可以在“流场跟随”行为中进行混合以进行绘图,传递和阻止-使流场遵循玩家的过去和投影路径,但围绕其当前位置进行拆分。

      /-------------\
 ----<  [playerCar]  >-----
      \-------------/

这将导致AI倾向于紧随其后并直接向前方移动以进行阻止,但鼓励进行整洁的传球。


1
我知道boid,但这是很好的参考。我有点害怕许多行为(停留在赛车线上,避免赛车,障碍物,吃水等)以太复杂的方式相互作用而无法调整,并最终以偶然的情况发生碰撞而告终。这对行人来说很好,但对于需要继续行驶的赛车来说却是灾难性的。
tenpn'8

我使用过OpenSteer API,该API实现了很多此类功能。我发现调整起来非常容易。在您的情况下,我会让“ SteerToAvoidCollision”的权重很高。我不知道您在赛车什么车辆,但是我认为,如果您在大多数情况下都能做到这一点,那么由于边缘情况而造成的偶尔的颠簸或撞击可能是很现实的..
AShelly 2010年

那是转向车还是其他东西?我担心会造成问题的情况,例如左边左边有两辆车,右边右边有一辆车。平均向量将导致右移,即使这可能会使您与右手车辆接触。
tenpn 2010年

我主要与行人一起工作,所以我不能保证它会起作用。要记住的一件事是,它不必是多种行为的结合,它可以是一种层次结构。因此,您可以让避免碰撞比其他任何事物都具有更高的优先级。在您描述的情况下,汽车仅会一直行驶直到预测路径与右侧汽车的路径相交为止,此时避免了弯折成为压倒一切的力量。您还可以添加特殊条件:例如,如果在N帧中未找到安全路径,则添加硬制动。
AShelly 2010年


1

反模式:对手调整自己的速度

不幸的是,我无法给您模式,但我想命名一个反模式。请不要尝试使AI驱动程序的速度适应人类玩家之一的速度。其背后的想法是为业余选手和职业选手创造公平的比赛条件,并放弃对多个难度等级(及其实现)的需求。

但是,在表面上听起来不错,但实际上却很糟糕,因此MotoGP系列在实现此行为方面惨遭失败。当您静止不动几秒钟时,结果以对手以5mp / h的速度行驶,并且无法判断您在游戏中是否有所进步(非常糟糕的反馈方式)


谢谢。我在这里专门谈论有趣的比赛行为,而不是平衡或难度级别,但我会牢记这一点。
tenpn

5
几乎所有赛车游戏都包含某种形式的橡皮筋,以使玩家保持动作,或使AI接近优秀玩家。诀窍是对其进行细化,并知道何时关闭它。一旦玩家注意到他们就会感到受骗。
wkerslake 2010年

MotoGP的情况听起来像是将其拉远的问题,而不是一般的橡皮筋问题。前排驾驶员要更加谨慎地驾驶,后排汽车要拼命地缩小差距,这并非不合理,我认为以这种方式建模并将其透明地呈现给玩家是有价值的。
Jibb Smart 2016年

这是一个关于该主题的有趣帖子:gamasutra.com/view/feature/3920/…基本上,他们将您分成3组的AI赛车手,让您在比赛过程中从一个组到另一个组前进。
Felsir
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.