如何为视频游戏创建 AI 蛇?

人工智能 赌博
2021-11-02 05:40:53

我正在 Unity 中创建一个蛇游戏,我想实现在全球范围内游荡的 AI 蛇,同时避免与地球上的其他蛇发生碰撞,如果可能的话,我还想让 AI 蛇有目的地捕获其他蛇,这样其他蛇会相撞而死。

在此处输入图像描述

人工智能蛇必须满足以下要求:

  • 他们必须以某种方式移动。一条蛇由用户使用键盘上的箭头键控制,因此我也希望 AI 蛇使用这种输入形式移动。
  • AI 蛇必须在球体上移动

据我所知,创建人工智能并不是一件容易的事,我想知道是否有一些开源项目可以用来完成这项任务。

4个回答

Minimax是一个相对简单的选项,它使用对抗性游戏的“传统”人工智能技术(因此与机器学习的使用相比,它更像是一个“研究项目”)

其成分是:

  1. 蛇可以从其当前位置立即执行的所有动作的列表。
  2. 衡量结果世界状态的质量(又名“适应度”)。

传统上为两个对手指定,minimax 算法向前看指定数量的移动(在每个回合的对手之间交替)并尝试找到一个世界状态最大化一个对手的质量度量,同时最小化另一个对手。

本文给出了两人算法对 n 个对手的扩展(正如 OP 所要求的那样)

一般来说,这类视频游戏中的 AI 主要是寻路(为程序提供可能的对象位置的地图)和/或与用户位置(已知),所以严格意义上来说并没有什么真正的智能,它只是看起来那样。

在你的情况下,我会考虑使用纬度和经度坐标(大多数 3d 引擎有一些变化)作为球体上投影网格的基础,你的蛇也需要被限制在球体表面和规则/算法/地图调整得到你想要的。

  1. 将地球分成一个“细胞”。每个单元格将有多个邻居,具体取决于您如何划分地球。看看https://gamedev.stackexchange.com/questions/3360/when-mapping-the-surface-of-a-sphere-with-tiles-how-might-you-deal-with-polar-dhttps://gamedev.stackexchange.com/questions/45167/square-game-map-rendered-as-sphere了解如何划分全局的想法。
  2. 一旦所有单元都连接起来,您就可以使用A-star 搜索算法为 AI“蛇”找到最佳路径。
  3. 改变启发式函数,使对手对面的细胞比你蛇侧的细胞更有利。这将导致 AI 蛇总是试图以“包围”对手的副作用到达对手的另一侧。

这是一个相当高的要求。我不能为你回答你的问题,但我可以建议从哪里开始。

你可以考虑制作一个用于导航和简单行为的神经网络。

请参阅以下 youtube 视频以获取导航参考 https://www.youtube.com/watch?v=0Str0Rdkxxo

下一个视频展示了使用神经网络,您可以让一个演员根据另一个演员做出决定。“坦克”大战 https://www.youtube.com/watch?v=u2t77mQmJiY

剩下的就靠你自己想办法了。练习一些简单的神经网络