用于游戏人工智能练习的项目

有时候为了练习或者演示一些AI的技术,总是找不到一个平台,为此我写了一个小的项目,可以用来作为AI的练习,点此浏览。这个项目是一个经典的坦克大战,可以支持使用项目所提供的API自定义坦克脚本,在一个封闭的场地中进行两方(多方)对抗。

游戏的基本规则是:

  • 吃星星可以获取分数
  • 击杀对手可以获取分数
  • 在时间还剩一半的时候在地图中央会产生一个分数更高的超级星星
  • 回到自己的重生点可以以一定速度回血
  • 当比赛时间用尽时,分数高的一方赢得比赛

目前在这个项目中,我添加了一些游戏常用的AI结构,包括基于脚本的AI(Script-based),基于规则的AI(Rule-based),有限状态机(FSM),行为树(Behavior Tree),基于效用的AI(Utility-based)等,另外,还包括一些通用的模块,比如感知器系统,黑板,栅格,势力图等。与此同时,我还写了一些对于这些代码的示例(Example AI),供大家参考。由于这个项目主要以练习为主,所以所有的结构和模块都力求实现上的简洁和清晰,尝试用最少的代码去描述相应的游戏AI概念。

在项目BattleAI这个目录中,会包含了一些同学提交给我的Tank AI。有兴趣的同学可以用这些脚本和自己的AI进行对抗,可以把你写好的脚本发给我(finneytang@gmail.com),我会添加到项目中,让更多的人参考。

关于项目的具体说明和API,请参考Github上的对应描述。此项目会持续更新,期望能使它成为一个游戏AI学习和交流的基础平台,让想要学习和了解游戏AI的人有所收获。在下一步的计划中,会加入一些团队AI的元素,具体想法如下

  • 增加4人模式的对抗,可以是2v2,或者4人混战,这样AI的策略就更有趣
  • 重新设计4人模式地图尺寸和一些比赛的参数
  • 组队AI的接口计划采用命令式的方式,比如Tank可以进行命令呼叫,队友对于这些命令注册响应函数,这样不同的人写的AI也能进行组队策略,命令的例子比如:求助,集火某个目标坦克,包抄,掩护等等

—————————————————————————————
作者:Finney
Blog:AI分享站(http://www.aisharing.com/)
Email:finneytang@gmail.com
本文欢迎转载和引用,请保留本说明并注明出处
—————————————————————————————

(已被阅读7,739次)

7 评论

发表评论

邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Copyright © 2011-2020 AI分享站    登录