Project1

标题: [FE战棋研究]电脑操控AI研究 [打印本页]

作者: 艾薇    时间: 2009-9-7 00:01
标题: [FE战棋研究]电脑操控AI研究
本帖最后由 艾薇 于 2009-9-7 11:11 编辑

在我眼里AI大体上分为两类,敌人和战友(NPC~~)
最近潜心研究AI(主要是敌方),初有成功,but,目前仅止于理论,米有实践……
想了很多也参考了很多,最后定格于以下方案:
首先,AI是可以分多阵营的,对于每个阵营,有一个核心指挥员。对于每个个指挥员,他可以指挥自己阵营的队伍,并将队伍分队,每队配以一个分队队长(简单模拟现实中军队模式)
也就是酱滴感觉(请无视偶滴烂字吧)


每个战斗单位都有几个基本状态:待战,备战,战斗ing,死亡
待战:只对备战指令有反应,不能进行任何动作
备战:分不同类型士兵而定,有不同方案。
      比如攻击型敌人将主动行动,逼近我方。
      守备型敌人,随时监视敌方(我方)行动,一旦进入攻击范围,立刻攻击。
      补血队员,随时查看队中人员的损血情况。
      宝箱猎人,搜索宝箱以宝箱为目标,开完宝箱,立刻逃跑。
      ……等等备战状态
战斗ing:当前战斗人员
死亡:不用我说了吧

对于队长,一般在游戏开就已经进入备战状态或者等待指挥员控制它(比如我方越过某条线)进入备战状态,而当他进入备战时,将控制该队中所有队员的进入备战状态。就是由队长操纵队员。
这样做的意义在于:
如果所示:

其中,ABCD队为敌军,我方为蓝色。
对于A对队长,他将从开始就进入了备战状态,并且为攻击型队长。那么,游戏一开始,他所率领的队员也将进入备战状态,随队长攻击我方队员。
对于B队,它也是从开始就进入了备战状态,当我方进入其攻击范围。将队员开启备战状态,等待迎击我方。
对于C,D队,离我方较远,当我方越过红线,队长进入备战,当队长感应到我方队员,将队员设为备战状态。
PS:一般,盗贼一开始就会是备战状态。
这样,游戏开始时,C、D对就不必要时时检测我方是否进入范围啦之类的,B对只有队长时时检测,只有我方进入范围,才会全队开始行动,节省了计算时间。

并且,队长应该掌握队中信息,比如对于需要补血和战斗支援的同伴,应立即告知队中同伴响应。无法解决时,应上报到总指挥处,总指挥安排其直属亲卫队援助(一般是全范围攻击或补血等战斗人员)

对于每个队员,有上报状态的义务,并且能够根据自身迎战方案,实施行动。

这个AI构思尚未完成,希望大家能多提一下建议。
作者: 九夜神尊    时间: 2009-9-7 01:35
相当强大的AI
据我的理解火纹的AI也不过就是由几个优先度逐次判断。

试试看用你玩SLG游戏的思维方式赋予电脑。别说代码不是智能的。
要是我玩SLG,也不过就是喜欢满血的进,没血的退。
能致死就致死,不能致死也要不能被敌方围攻。
然后下一回合我一样还是那样的一个策略(我想这个是比较有一定研究价值的)
就是大致策略
有一个总的大致策略,但是每一回合的大致总策略可能发生一些改变
(事实上在玩SLG的时候也是这么回事)
大致策略的大概实现方法
1  给己方队员根据职业和位置不同。赋予一个任务,这个任务就是像LZ说的那些类型
2 根据战员情况,随时可能改变策略,也就是改变一部分的队员的行动类型
这个也就是所谓的全局军师AI控制的。这个军师AI可以每一个地图单独设定一个。
也就是说,作者先设定好敌方在某一个地图的大致策略以及更改策略的跟据。
说实话:我觉得就是火纹的AI。你把它的那一个地图改一下,它也许还是按以前的战略,它也不一定就会按照新的地图来设定新的战略。
对于细化单个敌人的行动。我想也就是根据几个优先度。这个不知道用不用说
先看能不能打死敌方
打不死的话再看看敌方能不能打死自己
打不死的话看看打哪一个剩下的血最少
如果是敌方的回复单元的话,要增加一点优先度。

如果是有特定任务的单元
则看看攻击敌人的行动所获得的收益
跟此次行动对任务的耽误的评价。
比如说打死一个敌人所获得的评价是 10,少向目的地移动了3步
那么这次行动的价值为7(此行动要与无敌人的路径,和有敌人的路径共同对比)

哎!不专业说的就是土,单元→凭证。算了,我这个水平也不发表什么了、
作者: 艾薇    时间: 2009-9-7 09:12
To 九夜神尊 君:表说自己想法土啦,我的也粉土咩。很感谢你的意见哦,上次的移动范围的贴也关照过偶咧,嘿嘿。我会参考你的策略,然后对我的初步成型的策略做一些修改。以后还请多多关照咩。O(∩_∩)O!
作者: dbshy    时间: 2009-9-7 09:55
这AI已经相当强悍了,原来改写ZTBS的时候,那个SLG的AI就一个方法,攻击最近的敌人
作者: 艾薇    时间: 2009-9-7 10:00
这AI已经相当强悍了,原来改写ZTBS的时候,那个SLG的AI就一个方法,攻击最近的敌人
dbshy 发表于 2009-9-7 09:55

谢谢元素天使君哈,我会在进一步完善这个AI,终极目标当然是代码实现啦.对于设计中不合理的地方,还请多多关照呀.
作者: 精灵使者    时间: 2009-9-7 18:12
如果队长被歼灭的话其他的队员如何行动呢。
最好是自动换队长
作者: 艾薇    时间: 2009-9-7 18:27
如果队长被歼灭的话其他的队员如何行动呢。
最好是自动换队长
精灵使者 发表于 2009-9-7 18:12

对滴,自动换队长是绝对必要滴。因为队员是通过队长与主控指挥员联络的。
队员的设定应该是在初始化该地图时,队长可移动范围3格内的其他该方战斗力。(飞行系及全范围系为指挥者直属队员,不在考虑)。队员有选择队长的权力(根据距离远近可挑选要跟随的队长,所以队长的范围理论上是可冲突的~~)。初步是酱定的。
作者: dbshy    时间: 2009-9-7 21:18
刚玩某游戏想到的,先干那些脆皮的DPS 控场 aoe可以建立一个仇恨系统
别先打那些肉山就行了

另外叫偶快感炮王,一个低调的阿童木
作者: goahead    时间: 2009-9-8 11:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: 艾薇    时间: 2009-9-8 12:05
to dbshy 君:你滴词汇太专业以至于我米看懂咩 ……囧

To goahead 君:守备型是指敌人进入攻击范围时采取攻击。攻击型不论敌人在哪都奔过去。
                 顺便一提,你说的那是boss型。只有他才会站在不懂,等待我方人员群殴之。==
作者: 叶子    时间: 2009-9-11 06:46
指挥者可以是抽象的,也可以像你说的那样是由某个AI单位担任
抽象的时候,就感觉是跟现实中棋类博弈一样,你只能杀死对方的棋子,但不能杀死对方的指挥
由某个AI单位担任的话,就可以模拟擒贼先擒王的状况
作者: goahead    时间: 2009-9-11 08:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: 神思    时间: 2009-9-11 10:59
呵呵这个小组的概念我的游戏也存在。这样可以很好的分配工作。谁该干啥。如无工作。则支援队长。再不然就回家休息。呵呵
作者: 粟己    时间: 2009-9-21 12:21
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1