09.游戏AI方法之基于效用的AI
GameAI专栏:游戏AI方法之基于效用的AI
效用的概念,已经存在了几个世纪,主要是用在对数学上依赖的领域,像经济学,社会学等等。因为游戏开发中需要将事物转化为数学,效用就被用来设计和表达游戏角色行为。
游戏AI中的效用AI是一种越来越流行的特定行为编辑方法,它消除了有限状态机和行为树的模块化限制,主要被用于设计游戏中的控制和决策系统。
基于效用的AI
效用理论(Utility theory)其核心思想是,任何一个可能的行为或者既定模型中任何一个状态都可以用一个统一的价值(即效用)来描述。
游戏中的决策往往不是简单的是否可以决定,它是由多个因素来决定的。比如,在追击敌人的例子中, 可以考虑的因素有:敌人距离自己的距离,自己的血量,自己的魔法值等各种因素。基于效用的AI就是通过对大量因素进行度量,权衡,组合,评价,排序,挑选来决定潜在的动作优先级。
在游戏实例中,都会被赋予一个特定的效用函数,并且为特定的实例的重要程度给出一个值。
在游戏《模拟人生》中,NPC会对当前的某种东西,像休息,食物,社交的需求与某个物体或者活动的得分相结合,用来满足需求。这些值的组合,决定了应该做什么的动作打分,这是模拟人生的核心游戏机制。
后面的《模拟人生3》,开发者用了一个波兹曼分布来选择模拟人生的动作。还加入了”个性”,扩展了动作打分,让不同的NPC在相同的情况下,也会根据内部需求做出不同的反应。
吃豆人的效用AI

在吃豆人中,存在三个能够在玩游戏过程中考虑的效用函数。每个函数都对应了相应的威胁级别的行为。
在上图中,X轴对应威胁等级,范围为0-1。
-
逃避鬼魂的效用会随着威胁等级增加而指数上升
-
追逐鬼魂的效用会随着威胁等级增加而折线下降
-
寻找豆子的效用会随着威胁等级的增加先线性上升后指数下降
在游戏的任意时刻,吃豆人都会选择拥有最高效用值的行为。
往期回顾: