【发布时间】:2014-04-23 15:52:01
【问题描述】:
这似乎是一个热门话题,但我的问题相当具体。如果之前已经解决过这个问题,请随时向我指出这些文章。
我正在为一款 RTS(实时策略)游戏设计 AI。玩家将对抗 AI,扮演将军,在实时(非回合制)竞技场中指挥各种士兵。现在,我看到的其他 AI 专注于每个拥有自己 AI 的士兵。我正在为将军寻找一个 AI,他可以指导士兵实现各种目标。例如去那里,攻击这个,得到这个,等等
在回合制游戏中,很容易分析场地,然后采取行动,发出命令。但是,在这种实时环境中,情况并非如此。我目前设置了延迟,因此 AI 每 3 秒重新分析一次情况,因为我不希望它每秒发生 60 次(60FPS)。有没有更好的方法来处理这个问题?
我遇到的另一个问题是 AI 可能会看到需要解决的情况,并向部队发出“命令”以“前往 X 地点”。在 AI 的下一个循环/迭代中(3 秒后),如果士兵还没有达到他们的目标,那么跟踪命令并查看其完成状态的最佳方法是什么?例如:“AI:需要将 20 名士兵从位置 X 移动到位置 Z。现在移动,哦等等,我上次已经这样做了,等着他们”。
关键点是: - “分析”该领域的频率 - 跟踪以前的“订单” - AI是监督士兵的将军,而不是士兵本身
有什么想法吗?
非常感谢您提供的任何帮助或指点。
J
【问题讨论】:
-
“跟踪订单并查看其完成状态的最佳方法是什么?”也许是command pattern?
-
可能是的。我认为沟通应该是双向的(士兵->将军和将军->士兵),而且应该是完全异步的。
-
谢谢,暂时实现了一个基本的命令模式。这是朝着正确方向迈出的一步。必须关注 AI 如何频繁评估情况并据此采取行动
标签: java android design-patterns libgdx artificial-intelligence