关于AI难度变化的设计【转载】
游戏AI和游戏设计紧密相关,我也经常说,一个好的游戏AI,不在于算法的艰深和行为的完全拟真,而在于和整体游戏性的契合,在平时工作中,也是和游戏设计师打交道的最多,有这样一句话,一个好的AI程序员相当于半个游戏设计师,所以这次就来谈谈关于AI难度的设计问题。
谈到游戏设计,有些人觉得可能是灵光乍现的东西,只可意会不可言传,我以前也是这么认为的,但去年以AI程序员身份参加了一个为期两周的设计培训课程,感到收获颇丰,原来游戏设计通过总结前人对于游戏设计的实践,是可以形成一系列科学有效的方法的,好的游戏都有一些共性在里面,所以像《愤怒的小鸟》,《植物大战僵尸》这种游戏的成功,也绝不是偶然的。虽然在分工上,设计大部分都是游戏设计师的职责,但作为AI程序员,有时需要给出一些技术上的建议,并能提供一些技术上的支持。这次提到的关于AI难度的设计,也是我最近遇到的一个问题,我想如果运用一些科学的方法,就可以在设计时明确AI的方向和做法,这样对开发是有相当的益处的。
先假设一个场景,如下图所示(P代表玩家,E代表敌人,黑色的块代表障碍,黄色的圈代表目标),这是一个潜行类的游戏,游戏目的是控制游戏内的主人公拿到敌人基地内的情报图,而敌人会在基地内不停的巡逻,如果被发现就会Game Over。假设我们要做成关卡类的游戏,每一关都会比前一关难一点,关卡中的AI行为也要有难易之分。那作为AI程序员,自然就要去思考如何来AI的难度变化,来符合游戏设计人员的需要。
当我们设计敌人的AI的时候,会先考察有多少因素会影响到敌人的AI难度,这些因素也是我们可以提供给关卡设计师的,值得说明的是,我们只考量AI层面的难度,不考察由关卡本身带来的难度,因为显而易见的一些因素,诸如敌人数量,敌人出生位置,障碍的位置等等,也是可以增加或者减少关卡难度的,虽然说我们在这里不考虑这些因素,但这些因素也是可以用我接下去的设计方法来设计的。
好,继续我们的AI难度设计,我们仔细分析问题之后,会列出如下可能影响到AI难度的因素
- 巡逻方式:静止的,可预判的,不可预判的
- 巡逻范围(用巡逻路线长度衡量):0,4米,8米,12米,无穷
- 视野角度:0度,30度,60度,90度,120度,360度
- 视野范围:0米,1米,3米,5米,7米,无穷
- 移动速度:0米/秒,2米/秒,4米/秒,6米/秒,10米/秒
- 声音感知范围:0米,1米,3米,5米,无穷
- …
上面的这些因素后面的取值,都是由简单至难依次递增的,特别值得注意的一点是,每一个因素的第一个值都是最简单的情况,可以称之为“空值”,最后一个值是最不可能的情况,一般称之为“无穷值”,在空值和无穷值之间的值,是根据需求,按经验定义的,一般情况下(除巡逻方式外),我们不会取空值和无穷值。就拿“视野角度”这个因素来说,它的空值就是0度,表示这个敌人没有视野,它的无穷值是360度,表示这个敌人能看到周围所有的东西,在这之间的值都是比较合理的视野角度,可以任意取用。
有了这些因素,我们就可以用一张二维的表格来定义各种难度下的AI设置了,如下面这个表格
巡逻方式 | 巡逻范围 | 视野角度 | 视野范围 | 移动速度 | 声音感知范围 | |
AI1(新手) | 静止 | 4米 | 30度 | 1米 | 2米/秒 | 1米 |
AI2(简单) | 可预判 | 8米 | 60度 | 3米 | 2米/秒 | 1米 |
AI3(中等) | 可预判 | 8米 | 90度 | 5米 | 4米/秒 | 3米 |
AI4(困难) | 可预判 | 8米 | 120度 | 7米 | 6米/秒 | 3米 |
AI5(超神) | 不可预判 | 12米 | 120度 | 7米 | 6米/秒 | 5米 |
这里我们通过设置不同的因素值,定义出了5种难度的AI设置,当把这些AI放入关卡中后,就会对关卡的难度产生影响,也帮助了关卡设计师来更好的设计和调整关卡的难度。
当然,作为AI程序员,可能我们并不需要参与到最后的关卡难度设计,但这样的设计方式,我觉得,是值得我们学习的,也可以帮助我们在实现AI的过程中,辅助游戏设计师,定义出可控的参数来,做到参数化的AI控制。我在现在的项目中,经常听到玩家的一些抱怨,什么AI太难啦,AI太简单啦什么的,而且有时游戏测试人员也需要一种“傻AI”模式来帮助他们测试,所以,如果我们能在实现AI初期,就把一些能够控制AI难度的因素定义出来,那也可以更好的来使我们的AI行为更可控,何乐而不为呢?
—————————————————————————————
作者:Finney
Blog:AI分享站(http://www.aisharing.com/)
Email:finneytang@gmail.com
本文欢迎转载和引用,请保留本说明并注明出处
—————————————————————————————