【问题标题】:Genetic Algorithm Enemy/Zombie AI遗传算法 敌人/僵尸 AI
【发布时间】:2017-04-12 18:43:47
【问题描述】:

我真的不能说为什么,但是一旦 YouTube 向我推荐了一个关于遗传算法的视频,它真的让我眼前一亮,有人让 google chrome 无法通过一个学习的 AI 单独跳跃和运行游戏。 好吧,因为我正在为 Minecraft 编写插件,所以我有了一个想法,用自学 AI(遗传算法)制作基于 PvE 的游戏模式,但现在我很困惑从哪里开始,我可以让健身依赖于杀戮僵尸,或造成的伤害,但我不知道如何再次重现这个,不知何故我必须用人工智能控制运动、射击等,我不知道该怎么做,我希望有人可以帮助我,你理解我的问题。

【问题讨论】:

  • 有很多方法可以解决这个问题,因此我认为这对 Stack Overflow 来说不是一个很好的问题。我想说reddit.com/r/gameai 是解决这类问题的地方,但由于那里的社区不是很大,你也可以试试reddit.com/r/gamedev。当您自己充实了一些算法并坚持如何继续时,您可以使用您的算法返回 Stack Overflow,但或者您也可以转到gamedev.stackexchange.com。如果您阅读stackoverflow.com/help/dont-ask,它也可能很有用。
  • 谢谢,是的,我必须同意,这个问题很难找到一个类别,因为它有基本的 AI 知识,还有游戏开发。
  • 我可以理解,很难找到一个地方来问你的问题。如果您通读tour,它会非常清楚地表明可能引发讨论的问题不太适合 Stack Overflow。如果你问“从哪里开始游戏 AI?”之类的问题。你真的是在征求意见。对于这样的问题实际上不可能有一个最佳答案,因此对于 Stack Overflow 来说不是一个好问题。如果您想讨论或发表意见,最好去论坛或 reddit。我希望我之前提供给您的链接对您有用。

标签: artificial-intelligence genetic-algorithm game-ai


【解决方案1】:

我认为你想要做的事情比你想象的要复杂得多。

如果您真的想为僵尸训练自主 AI,您将需要神经网络。但我认为这对于 PvE 游戏来说太复杂了。

如果您不想使用神经网络,则必须设置一些参数来定义僵尸的行为方式,例如:

  • 伤害
  • 速度
  • 健康

但是为此使用遗传算法是不合逻辑的 - 您已经知道最大化这些值将返回最好的僵尸,因此您可能需要创建更多不同的参数,例如:

  • 击中玩家后的速度
  • 击中玩家后的药水效果

如果你想停留在上面提到的 3 个点,那么你应该创建一个最大值 - 并让遗传算法找到这个值的最优分布。


主要部分整理好了,接下来要开始学习遗传算法了

  • 生成,生成具有随机属性的僵尸
  • 评估,让僵尸玩游戏,确定他们的适应度:造成的伤害、杀死的人、行进的距离
  • Selection,选择适合交叉的个体
  • Crossover,创造后代
  • Mutation,修改一些值,概率为x

我对你的项目很感兴趣。我建议你开始在本地服务器上训练一些僵尸,然后将这些训练过的僵尸作为在线版本的基础——所以第一波僵尸不太容易:)


关于您的评论:

其实我想提高僵尸的移动和战斗技巧,当他们攻击延迟时他们会在敌人真正防守时冷却等等,而僵尸在他们打出侵略性时会试图抓住一些单人等等,但不知道如何做这样的事情,我不知道如何用 AI 控制运动,以及何时攻击等,我知道有很多事情要做,但我真的对此很感兴趣。

这肯定需要神经网络。一个神经网络可以有 x 个输入,这些都必须是环境变量,例如:

  • 距离最近的玩家
  • 速度最近的玩家
  • 健康最近的玩家
  • 等。最近的玩家
  • 自己的健康状况

并将计算输出,可能是:

  • 运动方向
  • 移动速度
  • 命中(真/假)

你必须通过神经进化来进化神经网络。您绝对可以这样做,但请注意;这个很难(硬。特别是有很多环境变量。

但是阅读一些关于神经网络的文章,然后阅读一些关于遗传算法的文章。然后实现神经进化,例如通过NeuroEvolution of Augmenting Topologies

【讨论】:

  • 其实我想提高僵尸的移动和战斗技巧,他们在攻击延迟时返回的mqans在敌人真正防守时冷却等等,并且僵尸试图抓住一些单玩家当他们玩激进等,但不知道如何做这样的事情,我不知道如何用 AI 控制运动,以及何时攻击等,我知道有很多事情要做,但我真的对此很感兴趣.
  • @JustinG。如果您对游戏 AI 完全陌生,我建议您先从有限状态机或行为树开始编写 NPC 行为。一旦你制作了一些这样的程序并且你了解了如何控制 NPC,我才会尝试从 学习算法 开始,例如 遗传算法神经网络生成/学习 NPC 行为。以下网站还提供了许多有关游戏 AI 的信息以帮助您入门:www-cs-students.stanford.edu/~amitp/gameprog.html#ai
  • NeuroEvolution of Augmented Topologies 将是一个很好的解决方案,它使用遗传算法来修改神经网络的结构和权重。我会按照@PJvG 所说的那样做,从小处着手,然后大处 - 机器学习远非简单,您必须了解很多。
【解决方案2】:

我建议你对遗传算法进行一些研究,看起来你在学会走路之前就在尝试跑步。

理想情况下,如果您希望 AI 学习如何移动、射击和其他活动,您需要创建一个可以根据所有这些事情进行评分的健身功能。然后你需要弄清楚你将在什么时候进化/变异/匹配你的 AI/s,这个结果应该从初始分数 0 开始,因为你需要对 AI 重新评分,因为有一个它可能会后退一步,而不是前进。

【讨论】:

  • 你有教程吗?
  • ai-junkie.com 可能是一个很好的起点;学术论文也适用于所有 AI 学科。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多