用于2D赛车游戏的AI提示

And*_*scu 0 c++ artificial-intelligence game-development

我有一个学校项目,为2D赛车游戏建立一个AI,它将与其他几个AI竞争.

我们获得了赛道的黑白位图图像,我们可以在收到地图后选择我们的汽车的基本属性(操控,加速,最大速度和制动).AI连接到游戏的服务器,并为当前加速和转向提供几次秒数.顺便说一句,我选择的语言是C++.问题是

  1. 什么是最好的策略或算法(因为我想尝试并赢得)?我目前想到了网上发现的一些想法和我自己的一两个想法,但我想在开始编码之前我的观点是最好的.
  2. 那件事有什么好书?
  3. 我应该参考哪些网站?

tem*_*def 6

这个问题没有"正确的答案" - 它非常开放,许多不同的选择可能会解决.

您可能希望将强化学习视为一种尝试让AI最佳地确定如何在选择不同控制统计数据后控制汽车的方法.强化学习模型可以训练计算机尝试朝着良好的系统努力,以便在底层控制系统方面进行特定的操作.

要确定您想要使用哪些控件,您可以使用某种强化学习方法,或者您可能想要研究可以使用不同控件组合的监督学习算法,并查看它们为"适合"提供的好处特定的地图.例如,您可能将地图分成小块,然后尝试查看哪些控件在最大数量的块中表现良好.

在绘制您想要采用的路径方面,A*是用于查找最短路径的众所周知的算法.在你的情况下,我不确定它会有多大用处,但它是教科书通知的搜索算法.

为了避免对手赛车手并试图将他们带入棘手的情况,你可能需要开发某种对手的建模系统.通用投资组合是实现这一目标的一种方式,但我不确定它们在这种情况下会有多大用处.一种选择可能是在赛道和对手赛车周围建立一个潜在的领域,以帮助你的车试图避开障碍物; 对于寻路来说,这实际上可能是比A*更好的选择.如果你对战术演习感兴趣,那么直接的极小极大搜索可能是避免陷入困境或寻找陷阱对手的好办法.

我不是AI专家,但我认为以上链接可能是一个很好的起点.祝大家好运!