幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5231|回复: 1

关于SLG的AI设计思路分析

 关闭 [复制链接]

8

主题

37

帖子

1622

积分

⑥精研

积分
1622
发表于 2004-5-13 19:59:37 | 显示全部楼层 |阅读模式
    SLG的AI是最关键的部分,直接影响整个SLG的运作。首先要明确AI的目的,然后确定方向,最后作好分类工作。下面的分析只是我个人的思路,不免存在错误,希望提出指正。

    AI的目的。
    AI的目的是让用户在完成用户任务时最大限度受到阻挠。宏定义最大阻挠可以为各种各样的阻挠任务。在AI子单元上表现出来的基本响应可以定义为最大限度减少用户完成任务的可能性。通过对SLG的操作分析,可以知道越多的可操作单位会带来越大的完成任务可能性。减少用户可操作的单位为最直接的阻挠。而减少可操作单位由SLG的规则可知,将可操作单位的操作凭证取消即可。在SLG中取消可操作单位的操作凭证的方法即为使可操作单位的HP降低为0。当HP降低为0后,由SLG规则将取消用户对可操作单位的操作凭证,从而减少用户的可操作单位数量。
    要减少可操作单位的HP,可以通过SLG规则中AI可操作单位的伤害算法来实现。这种伤害算法一般表现为SLG中的攻击和技能。只要能启动伤害算法,就可以实现减少可操作单位HP的目的。
    为了启动伤害算法,就要构建满足的条件。让我们来看伤害算法的起始条件,用户可操作单位在AI可操作单位的启动伤害算法范围内。
    让用户可操作单位进入启动伤害算法范围内成为下一个分析目标。通过SLG规则可以看到,AI可操作单位可以等待用户操作可操作单位进入AI可操作单位启动伤害算法范围内以后再在AI操作轮中实现启动伤害算法;也可以主动操作AI可操作单位移动到可以将用户可操作单位囊括进启动伤害算法范围内后再启动伤害算法。AI对于拥有移动权限的AI可操作单位当然可以采取后种方式启动伤害算法以增加在操作轮中的启动伤害算法的次数。

    在获得AI基本目的后,就开始考虑设计策略。
    AI策略的目的依旧是增大阻挠的可能性。因为战棋类的各种可能性加在一起是个巨大的数量级,所以不容易制作出类似人脑的操作策略。但是可以根据AI特点做出AI的策略。

    先来看用户策略。
    用户策略按照优先级分为:
    1完成SLG给出任务达成条件;
    2尽量避免操作凭证少减,以增大完成任务的可能性;
    3尽量获得操作单位增大数据算法的条件,以增大AI可操作凭证减少的可能性从而增大完成任务的可能性。
    1为最基本条件,2,3依次增加为次高条件,高条件。

    AI策略不可能依照用户策略来运作。但是可以参照用户策略来做出对应策略遏制用户策略。AI策略首先应该对AI可操作单位进行优先级编队,按照优先级来组织策略,而同一级的AI可操作单位可以不必分先后顺序,因为它们启动的伤害算法都是同等的。

    在同一级别的AI可操作单位中,针对单一的普通AI可操作单位,可以先将可以启动伤害算法的用户可操作单位作一个查询判断,
    先将启动伤害算法能取消用户操作凭证的用户可操作单位保留为最终目标,
    如果存在多个最终目标,则选取用户可操作单位中启动伤害算法数值较大的用户可操作单位作为为最终目标;
    如果没有可以取消操作凭证的,则将启动伤害算法数值较大的用户可操作单位保留为终点目标;
    如果没有可以启动伤害算法的用户可操作单位在AI可操作单位启动伤害算法范围之内,则移动AI可操作单位向最近的用户可操作单位移动。优先级低,可以被其他有任务条件的AI可操作单位策略中断。

    针对有任务的AI可操作单位,则需要做出其他判断,除了普通AI可操作单位的查询判断外,还要做出对任务完成的判断。优先级最高,不被任何其他策略中断。下面为有任务条件的AI可操作单位:

    固守的AI可操作单位,当没有用户可操作单位进入其启动伤害算法范围的时候,不作任何动作;

    有固定启动伤害算法目标的AI可操作单位,目标单位在启动伤害算法范围之内,启动伤害算法,如果当次操作轮不能让目标单位进入启动伤害算法范围,则启动普通AI策略,如果查询为0,则移动AI可操作单位向目标单位移动;

    有固定移动路径的AI可操作单位,操作轮次中按照移动路径移动,如果没有移动时就有用户可操作单位在启动伤害算法范围之内,则启动伤害算法;

    AI可操作单位中应该存在没有启动伤害算法能力或者启动伤害算法弱的单位,根据SLG规则,这些单位不方便直接启动伤害算法,但是可以帮助其他AI可操作单位进行对用户可操作单位的阻挠。其策略为任务条件策略下的个体属性策略。其效果可以分为两类:对AI可操作单位产生作用的单位和对用户可操作单位产生作用的单位。

    对AI可操作单位产生作用的单位策略:当有符合启动效果条件的AI可操作单位在其启动效果范围之内,启动效果。当没有单位在其启动效果范围之内,参照AI可操作单位策略进行移动或者不移动。当有用户可操作单位在其没有移动时就在其启动伤害算法范围之内,启动伤害算法。当启动效果为不可能的时候,参照AI可操作单位普通策略进行移动或者启动伤害算法。优先级中,可以被有任务条件的AI可操作单位策略中断。

    对用户可操作单位产生作用的单位策略:当有符合条件的用户当有符合条件的AI可操作单位在其启动效果范围之内,启动效果。当没有单位在其启动效果范围之内,参照AI可操作单位策略进行移动或者不移动。当启动效果为不可能的时候,参照AI可操作单位普通策略进行移动或者启动伤害算法。优先级中,可以被有任务条件的AI可操作单位策略中断。

    特殊的BOSS可操作单位的策略可以不固化,参照具体情况做出响应策略,毕竟每个战斗的BOSS是少数,工作量不会大。

    AI可操作单位使用技能的策略为个体属性策略的子策略。为每个技能设定起始判断条件,满足后在操作轮中启动技能。应该对所有技能也进行优先级分类,只处理符合启动条件的技能中优先级高的技能。优先级中,可以被有任务条件的AI可操作单位策略和个人属性策略中断。

    AI可操作单位使用物品的策略为个体属性策略的子策略。为每个物品设定起始判断条件,满足后在操作轮中启动使用物品。物品分类到伤害算法和启动技能中同时判断,优先级也和所分在的类别同时进行优先级分类。优先级中,可以被有任务条件的AI可操作单位策略和个人属性策略中断。

    AI可操作单位移动寻路策略为普通AI可操作单位策略的基本策略之一。在到达目的地的路径中选取最短的路径移动,在最短路径上要尽可能移动到最靠近目的地的位置。优先级最低,可以被任何其他策略中断。
   
回复

使用道具 举报

8

主题

37

帖子

1622

积分

⑥精研

积分
1622
 楼主| 发表于 2004-5-14 20:42:23 | 显示全部楼层

关于SLG的AI设计思路分析

我就正在用rm做slg啊

就是做到AI部分才需要考虑这个slg的AI策略...



[此贴子已经被作者于2004-5-14 20:44:11编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-16 16:38 , Processed in 0.026631 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表