创建非算法型 AI 对手

我目前正在为我的基于瓦片的 (tile-based) 游戏创建一个 AI 实体。游戏需要 AI 角色导航到玩家的精灵 (sprite) 位置,以便造成伤害。目前我使用:

        If Ai.SpriteRectangle.X < _sprite.SpriteRectangle.X Then            MoveRight()        ElseIf Ai.SpriteRectangle.X > _sprite.SpriteRectangle.X Then            MoveLeft()        ElseIf Ai.SpriteRectangle.Y < _sprite.SpriteRectangle.Y Then            MoveDown()        ElseIf Ai.SpriteRectangle.Y > _sprite.SpriteRectangle.Y Then            MoveUp()        End If

这相当于是确定性的,而且我不会称之为 AI。如果我想创建一个非算法型的对手,它可以学习躲避玩家向他们发射的火球,我应该从哪里开始?有什么资源可以参考吗?例如,使用遗传算法等等。

我计划在大学学习人工智能,但想提前入门。


回答:

我推荐 AI Junkie 给你,特别是关于智能体 (agents) 的部分。从你的问题的水平来看,这似乎是一个不错的起点:只需构建一个基本的状态机来组织你的 AI 的行为。有了它,你可以添加更复杂的行为(比如跟随、接近、躲避等基本行为)。

在基本功能正常运行后,你可以尝试为 AI 添加更多复杂性,但请注意,添加有用的遗传算法和神经网络非常困难。在我看来,目前这在技术上并不可行(特别是对于小规模的项目),因为一个巧妙创建的、硬编码的 AI 将提供更好的游戏体验。

该网站将提供所有这些的初步了解(请注意,每个部分都有多个页面:这可能一开始并不明显)。代码是用 C 语言编写的,但我认为你不会有任何问题。最后,推荐 Mat Buckland(该网站的作者)所著的《Programming Game AI by Example》一书,它提供了对该主题的温和介绍。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注