【游戏精粹】AI个性化决策系统

目录

    • 创建影响力地图
    • 策略评估技术
    • 有关态度的一切:为意见、声望和NPC个性构建单元
    • 个人观点

一、创建影响力地图

        前言
            本节和下一节将介绍这样的一些技术:让AI主体能够从战术和战略的角度深入了解游戏世界中的角色和当前的游戏状态,还将讨论与不同的游戏类型和虚拟环境相关的技术。
        影响力地图
            影响力地图是AI主体关于游戏世界知识的空间表示,让计算机玩家能够根据游戏环境的物理/地理表示获悉当前游戏状态的战术视图。影响力地图的结构还使得根据环境中不同位置的特征做出智能的推断成为可能。
            并不存在惟一标准的创建影响力地图的算法,创建和应用影响力地图的方式在很大程度上取决于游戏的战略和战术需求以及AI主体所在的游戏世界的设计。
        一个简单的影响力地图
            影响力地图几乎可用于任何类型的游戏世界地形中——方形网格、六角形网格和三维环境。本节假设为2D网格,我们首先将游戏世界划分为一系列的方形单元格。根据需要初始化单元格的初始值,给单元格加上某种类型的“影响力”,如“战力影响力”。每个友军个体加上一个正值,敌军则为负值。接下来将每个单元格影响力扩散到邻近单元格,这样层层扩散直到没有影响力为止,全部单元格影响力扩散后最终的影响力地图就是我们需要的,AI将根据这张影响力地图进行决策选择(如影响力大于1的数说明我军优势大于敌军,AI选择将边界向前推进进攻;影响力小于1的,说明敌军优势大,则AI会选择收缩边界,增强优势权重)。以上就是一个简单的影响力地图,接下来会介绍稍复杂的影响力地图逻辑。
        影响力地图中的单元格数据
            实际游戏中的影响力地图要复杂多了,每个单元格都存储一些关于游戏世界的数据,实际上,每个单元格都是一个小型数据库,其中存储了位于该单元格的所有个体和资源的相关数据。以下是单元格通常包含的一些统计数据类型:
                战斗力:单元格当前个体的战斗力(攻击、攻击范围、活力、海军、空军、步兵、骑兵等);
                易被攻击的资产:单元格中玩家当前资产的估算值(如兵营、资源采集器等);
                区域可见性:一个数字,指多长时间以来,该地区对玩家一致是可见或不可见的(如许多游戏中的战争迷雾);
                尸体数:单元格内多少个体死亡及其死亡时间;
                资源:待采集的各种资源(如木材、游戏货币资源);
                通行性:通过该单元格的难易程度(这个值用于更准确地将单元格的影响力传播到其他单元格,分别存储8个通行性值,每个对应一个离开该单元格的方向)。
            影响力地图通常分别跟踪游戏中每个玩家的这些变量——简而言之就是维护多个并行的影响力地图。需要注意的是,当AI玩家过多时(超过3~4个),性能将难以控制。
            当然也可以只为玩家维护一个影响力地图,并允许所有AI玩家访问它。在有隐藏地图或战争迷雾的游戏中,会构成AI的“作弊”行为,在某些情况下会导致次优的行为。
        计算合意值
            与其直接将单元格的基本统计数据作为决策的根据,不如将它们合并为一个“合意值”。这是一个通过计算得到的值,它指出了单元格对特定决策的合意程度。通过比较不同单元格的合意值,可以确定对某种任务而言,哪些单元格比其他单元格更合适。
            最有用的计算公式是简单的加权和。根据要作的决策,选择每个单元格中与之相关的变量,并根据每个变量对决策的影响程度乘以一个相应的系数,然后将乘积相加得到合意值。
            计算不同的合意值时,具体选择的参数很大程度上取决于游戏的需求和游戏设计的独特特征。系数的选择也是主观的,必须仔细调整才能够获得最佳结果。模拟退火或竞争进化方法是可行的,但可能不可取。注意:可能需要对用于统计数据的不同度量单位(如个体生命值、火力等)进行补偿。以下是一些合意值:
                攻击和防御愿望:我们通常可以分别计算玩家及其敌人的“脆弱分数”。敌人的脆弱分数高表明我们可以轻松地破坏该地区的资产,因此考虑攻击该单元格中的敌人;AI玩家的脆弱分数高表明我们在该单元格中有重要的资产,易被攻击,需要保护它们。通常,有很多资产和重要资源但附近的守军很少的区域脆弱;
                探索:对于使用隐藏地图或FOW的策略游戏而言,AI玩家将派遣侦查员以刷新战场视图。一种不错的探索方法:优先探索不可见但时间最长的影响力地图单元格。进行这种决策时,其他重要的因素有单元格中的敌军影响力和区域的通行性。
                防御资产的位置:不能移动的防御资产应部署在脆弱资产附近;关隘是部署防御资产的好地方。通过预先计算通行性值,可以确定影响力地图上的地形关隘点;关隘点是影响力地图中与其他高通行性区域相连但周围是通行性低单元格的高通行性单元格。
                资源采集资产位置;
                设备生产资产位置;
                脆弱资产位置;
        确定最佳单元格大小
            影响力地图的单元格大小可以是任意的。但单元格太大,则影响力地图将难以识别诸如地形关隘点等小型要素;单元格太小,则难以控制,导致大量重复计算、内存。
            在实践中,最好适当地设置单元格大小,建议单元格的宽、高设置为刚好容纳10~20个标准“个体”并肩排列,然后仔细调整单元格大小以获得最佳效果。
            可能的问题:如果个体跨越两个影响力地图单元格,将可能导致不同的结果。如果采用影响力传播,这就不是什么问题了。一种不错的解决方式:定期地(可能是每次计算影响力地图)调整整个影响力地图的空间偏移量,使用随机或周期的偏移值。类似海洋中飘动的渔网,由海浪的冲击前后移动。
        影响力传播
            计算影响力地图中每个单元格的初始值后,需要将每个单元格的值传播到附近的单元格。这一过程被称为修匀或模糊化。
            传播只不过是使用“衰减规则”将每个单元格的影响力扩散到邻近单元格。衰减规则决定了给定单元格的影响力在地图上扩散时,将如何随距离的增大而降低。选择何种衰减规则有一定的主观性——需要进行调整以获得最佳结果。
            指数衰减最有用:选择0~1的衰减常数(通常为0.6~0.8),然后每次将影响力扩散到邻近单元格时,将该常数作为乘数。假设衰减常数为0.75(75%),则邻近单元格值为原值75%;与之相距一个单元格的值为

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值