如何实时处理巨大的分支因子?

人工智能 游戏-ai 分支因子 rts
2021-10-25 05:43:31

前段时间下棋对算法来说是一个挑战,然后围棋比国际象棋复杂得多。

玩 RTS 游戏,它的时间和空间限制了巨大的分支因素(比如决定下一步做什么),怎么样?解决这些问题的成功方法是什么?

1个回答

正如您在问题中提到的,您无法用决策树解决所有问题。决策树通常在具有良好启发式功能的回合制游戏中运行良好,但在 RTS 游戏中采用不同的方法。

对于非常复杂的 RTS 游戏,可以实现基于规则的 AI。例如

  • 鉴于这是早期游戏,请使用所有单位来侦察资源
  • 如果满足某个标准,则以某种方式构建基础
  • 如果满足另一个标准,则建立一支军队
  • 如果军队足够大,攻击
  • 如果被敌人攻击,将单位带回基地进行防御

这些规则中的每一个都可以实现各种其他 AI 技术,例如使用 A-star 来找到单位当前位置和目的地之间的最佳路径。

进一步优化可以通过“分组”类似的单元来像一个单元一样工作。例如,计算整个组而不是每个单独单元的路径。

您还可以添加更精细的规则,例如如果敌人与单位有一定距离,则靠近并攻击或撤退到基地(取决于健康、弹药、能力等)。

这种方法的好处是基于规则的系统执行速度非常快,因为不需要训练或决策树,这为物理和图形等视觉效果释放了大量系统资源。

缺点是如果规则系统不够复杂,玩家很容易认出模式,游戏会变得可预测和无聊。您还会注意到,您添加到游戏中的不同单位越多,规则系统变得越复杂,因为您必须满足和测试游戏中每种类型单位之间的交互,否则玩家可能会发现游戏设计中的弱点和利用它以未设计完成的方式完成任务。

多人游戏如此受欢迎的原因之一是,您不会违反既定规则,而是与有能力提出您从未见过的新策略的有创造力的人对战。