AI在游戏I

来源:互联网 发布:老秘网 知乎 编辑:程序博客网 时间:2024/05/16 14:55


这篇文章是我在WTM上谈论的第一部分,属于这个根帖。

人工智能的最根本要求之一是在游戏中明智地移动角色。我的意思是说,如何自己动手,

在这一点上,我们有两个选择:指导行为和地层。

指导行为Steering Behaviors

定义

转向行为是一组算法,允许角色根据策略以不同的方式移动到环境中。

 

策略

所以,fi,跟随你的怪物,当你走近他时,使用追求的策略。当你跑出他的范围之外,他会走回到他困扰他之前的地步,雇用一个到达的策略。一旦他在那里,他将实行一个漫游的战略,这将使他在一个范围内随机移动。

战略也可以结合起来,例如,敌人可以追赶你,同时逃避地牢的墙壁。

下面的gifs显示了一些这些策略如何使用我心爱的gdx-ai测试:

到达行为(Arrive behavior):

到达

追求行为(Pursue behavior):

追求法律意见:当我们提供AI时,章鱼(或类似的生物)可能会造成任何伤害,我不承担任何责任。我只是做数学

您还可以使用BlendedSteering行为组合多种行为。

我在YouTube频道分享了这些行为的截图:到达( Arrive),漫游( wander),追求( pursue),混合转向(BlendedSteering)。

 

集体策略(Group strategies

转向行为可以适用于个人和团体。唯一的区别是,当个人需要一个目标时,团体使用邻近区域。

例如,在下面的图像中,我们正在应用凝聚行为,这是一种产生线性加速度的组行为,它尝试将代理移动到由给定邻域定义的直接区域中的代理的质心。

凝聚

相比之下,分离行为会产生从邻近区域内的其他邻居排斥的转向加速度:

分割

履行

为了实现我们使用calculateSteering方法中的SteeringBehavior类,它接收一个可操纵剂(实体,这是我们希望应用的行为),并返回计算SteeringAcceleration。该输出封装线性和角加速度,以便您在物理引擎上使用它们。

 

参考

我已经写了几个帖子谈论过去的转向动作,发现他们在这里,这里和这里。您还可以在这里检查davebaol的测试,并在维基上阅读更深入的解释。

 

2.形成运动(Formation Motion

定义

当一群人以一种凝聚力的方式移动时,我们考虑一个形式。

gdxAi使用所谓的“槽”来管理地层。那些愿意属于组织的实体必须分配一个插槽。其中一个插槽被设置为前导,并且组合中的所有其他插槽相对于此插槽定义。实际上,它定义了地层中位置和方向的“零”。

在下图中,红色的航天器是领先者。当它移动时,其他航天器将遵循V形式:

vformation

 

如果需要,前导槽可以被锚点替换,这只是一个具有相关位置的不可见点。例如,在下面的图片中,光标只有他的位置,并且不会以任何方式与其环境进行交互,即使小猫形成将遵循它:

anchorpoint

 

履行

(非常)总结如下图:

编队

该组类设有FormationPattern。形成图案表示地层的形状。例如,在上面的例子中,我们使用V形成模式。

Formation类执行魔术并输出一组插槽。这些插槽必须使用SlotAssignmentStrategy分配给成员候选人。这种分配策略将根据每个插槽的作用而改变,但这是另一个故事。

 

参考

为了更好的理解,请在gdxAi wiki上寻找这个主题。这里可以找到由组织管理框架提供的所有工具。

结论

所以我们到目前为止是:

  • 指导行为使用策略。  维基
  • 使用槽形成运动。维基

原文出处:http://fightingkitten.webcindario.com/?p=846
原创粉丝点击