一直想开游戏人工智能的专题。只是最近刚刚用 Spark, 踩了一些坑,没有时间看东西,就延误了。虽然现在还没有看什么东西,但拖不了了,下定决心这个专题。
因为我对游戏中的人工智能也不了解,只能边看边写。才疏学浅难免有些纰漏,欢迎大家指出。这篇博客只介绍一些学习游戏 AI 的准备工作。最重要的准备工作就是选择好游戏啦。我们现在有两个选项,一个是打飞机的游戏 AIsteroids, 一个是即时策略游戏 0.A.D。
AIsteroids 其实不是正儿八经的游戏,而是专门的游戏 AI 模拟平台。在AIsteroids 游戏中,开始时只有若干礁石(由圆圈表示)、一个 AI 或者人类控制的飞船(由三角形表示)、增加玩家射击力的宝物(由方块表示)。飞船可以转弯和推进(前向或者逆向)。
在 GitHub 上有 Javascript 实现 AIsteroids, 我已经把它 fork 到自己的项目里了~___~。先安装 node.js, 然后从 GitHub 下载或者克隆 AIsteroids,在项目主目录运行 “node server.js”,就可以用浏览器访问 http://127.0.0.1:1337 看到下面的画面了。
从上图,我们发现 AIsteroids 确实很适合模拟游戏 AI。我们只需要在浏览器上填上 AI 的代码,就能看到 AI 操纵飞机和敌人对战了。
0.A.D 是由 WIldfire Games 开发的开源游戏。0 A.d 是一个实时的战略游戏,与微软的帝国时代类似。在游戏中用户可以建立文明,定义他们反对的敌人,这个游戏以公元前500年至公元500年之间为背景时间,包括了六个独特的文明和若干个多角色模式。0.A.D 的主页 介绍了游戏的详细资料,包括玩法、开发和 AI 相关的内容。游戏界面如下所示。
选择 0.A.D 作为游戏 AI 模拟平台的原因有两点:1)0.A.D 的 AI 做得比较好,2)0.A.D 提供了 AI 接口。
游戏中的人工智能系列会以 AIsteroids 为主要模拟平台讲解传统的游戏 AI 算法,比如有限状态机和行为树。后期的文章可能会涉及 0.A.D。
不过要等我再看下相关的资料~_~。下周先不更这个系列,会更新强化学习系列介绍 DQN 相关的算法。