为2D赛车游戏构建AI的技巧


10

我有一个学校项目在为2D赛车游戏构建AI,在该AI中它将与其他数个AI竞争(不发生碰撞)。

我们获得了赛车场的黑白位图图像,收到地图后,我们可以选择汽车的基本统计信息(处理,加速,最大速度和刹车)。AI连接到游戏的服务器,并多次为它提供当前加速和转向的第二个数字。顺便说一下,我选择的语言是C ++。问题是:

最好的策略或算法是什么(因为我想尝试并获胜)?我目前在脑海中想到了一些想法,也有一个或两个想法,但是在开始编写代码之前,我想我的观点是最好的。关于这件事有什么好书?我应该参考哪些网站?

2d  c++  ai  racing 

1
这将取决于物理模拟的准确性。如果没有物理学,我将一直保持全速...否则,我将在每转弯之前开始减速,并在转弯处加速2/3。
Nate

Answers:


2

设置基本的AI,然后设置API处理您自己的汽车。如果可以击败它,则应该设置一种录音算法,然后可以积极增强您的AI。这可能是用于调整AI动作的神经网络。例如逐渐刹车到角落等

您是否可以在项目中使用外部库?如果是这样,我建议您看看FANN。它是一个快速的神经网络库;节省您自己编写的时间。如果您需要源代码,则始终可以自己编写,但是可能需要一些时间。


1
对我来说似乎太过分了。
o0'。

2
@ Lo'oris当然,尤其是因为这可能是一个相当简单的学校项目,需要有限的时间来为其创建解决方案,因此我认为,出于实用性考虑,监督学习不是解决问题的方法。
Ray Dey

设置起来并不难,并且根据OP所从事的主题的水平,这种方法不一定是过大的。这就是我会(并且会做的),它的乐趣,并且可以很简单地获得有效的结果。最困难的部分是确定在预处理中应该采取的措施...
deceleratedcaviar

2

如果您可以在运行AI之前对地图进行预处理,则只需计算出地图各段的最佳赛车线即可。

这个帖子GameDev.net上的有很多建议。

AI智慧书有大约赛车AI的文章很多。我绝对会推荐他们,尤其是第一个文章,其中描述了如何在AI中将地图表示为数据结构的文章。

我见过的另一种方法是简单的强化学习(Q-learning),这可能需要花费数千次迭代才能获得最佳路径。本文对此进行了描述:http : //www.cs.ubc.ca/~zhijin/540report.pdf


1

这是驾驶AI的绝佳参考:自主角色的转向行为。张贴在这里供大家参考。有很多信息可以帮助您入门,但也有很多信息,因此不要在细节上过于困惑。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.