人工智能游乐场?
在学校里,我的一位教授创造了一个3D游戏(不只是一个引擎),所有的玩家都完全由AI控制,这是我们的任务,编程一个玩家的AI。 我们基本上提供了一个API来与游戏世界进行交互。
然后,我们的AI实现一起被投入到游戏中,我们看着我们的程序互相攻击。
这就像机器人足球 ,但虚拟,有很多大枪,没有足球。
我现在正在寻找类似的东西(和开源 )来玩。 (最好在Java中,但我对任何语言都是开放的。)我不是在寻找一个游戏引擎或框架…我正在寻找一个完全没有AI代码的游戏…最好设置对于这种运动。 build议?
这听起来非常类似于Robocode 。
Robocode是一个编程游戏,其目标是开发一个机器人战斗坦克与Java或.NET中的其他坦克作战。 机器人战斗正在实时和屏幕上运行。
你可能想在2010年看看AIIDE,他们将在那里举办一个Starcraft Broodwar AI比赛 。 您可以下载软件,API和代理,使您可以将本地AI连接到Broodwar模拟中。
与其他平台(如3D Robocup)不同,Broodwar引擎将处理物理,并可能允许您将大部分时间集中在path规划,策略,资源分配等更高层次的方面。还有AI的基本forms你可以在占位符的时候使用,例如一个近战AI。
看看马里奥AI 。 你可以编程一个AI来控制马里奥。 有一个竞争和一些相关的文件。 使用Java或任何JVM语言来设置和运行都非常简单。
我的AI类使用了开源的BZFlag ,结果相当具有娱乐性和信息量。
你可能会考虑Open NERO(“(最好在Java中,但是我对任何语言都开放)”),但是它是用Python编写的。 如果没有Java的build议吸引你,请看看这里:
http://code.google.com/p/opennero/
它不“缺乏”AI代码,它包含它。 也许看一下Python中的AI implmentation会为你的Java工作带来一些启发。
编辑:为了解决vidstige的评论 – 你可以试试这个: http ://aichallenge.org/ – 编程ant收集食物和战斗的敌人。 那里似乎有一个Java实现。
你可以从这个游戏开始
一些人工智能已经实施,以便您可以举例说明
在你的问题中,我知道你间接引用了RoboCup,但是我认为这里值得一提的是标题。 有2D和3D版本:
- 2D联赛
- 3D联赛
2D联赛更加抽象,像移动,抓球,踢球这样的命令。
3D联盟更为复杂,因为您必须控制3D机器人身体中每个铰链的angular度(其中22个使用Nao模型)。
两者对AI都是同样有效的练习。 这可能取决于你想玩什么AI区域。
两者都可以从任何支持TCP套接字的语言/平台进行编程。 您将在Java中find示例代码,以帮助您入门。 我一直在SimSpark Wiki上维护一个现有的3D RoboCup库。
如果你想为3D联盟使用.NET,你可以使用我创build的TinMan库 。
检查ORTS 。
Torcs是一个赛车游戏引擎,可以让你用C ++build立你自己的驱动程序。
你教授的游戏让我想起了许多老式的麦金托什游戏“ 刺客” ,白天我课余时间的许多时间都浪费了。 这是一个有趣的回合制游戏,玩家在每回合开始时input他们的动作,然后他们的动作同时执行。 游戏的人工智能有点愚蠢,我一直希望能够改善它们,但是我从来没有find这个游戏的开源版本。