人工智能为最终幻想战术般的游戏

Xta*_*odi 16 game-ai

我正在最终幻想战术中实施一个基于小网格,基于回合制的战略.

您对我如何接近目标选择,运动和技能选择过程有什么想法吗?

我正在考虑将决定断开,但所有这3个决定都在很大程度上是耦合的.(例如,我无法决定在哪里移动,除非我知道我将要攻击谁,以及我将使用的技能范围有多少,反之亦然,我无法决定攻击者,除非我知道有多少人将其攻击将带我到达每个目标)

我想转向一个统一的系统,但尝试使用像Killzone 1 AI这样的方式使用的潜在野外研究的东西让我陷入局部最大值.

===更新1

我目前正在尝试使用潜在的字段/影响图来生成我做出决策的数据.

我不知道如何处理拥有许多技能,以及不会造成伤害而是减少buff/debuff或改变世界的技能.

其他人建议使用目前在Go游戏中使用的蒙特卡罗树搜索.

我相信我的演员将使用的空间并不好,因为游戏中的许多动作都不会导致你可以攻击和影响世界的位置(我在一个比最终幻想战术更大的世界)

在最终的幻想策略中它可能会成功应用,虽然分支因子比9x9 Go大得多(据我所知)

===

提前谢谢,Xtapodi.

ps.1 - 一个问题是,要准确地知道敌人需要多远才能找到他,因为虽然敌人在附近,但是一个无法通行的悬崖可能将我们分开,需要4个回合才能绕过.或者更糟糕的是,一个单位正阻挡着让我们说桥的方式,所以实际上没有办法接触到他.

cc.*_*cc. 14

我用过的一种方法是做一个双程系统.

首先,找出你的单位可以去哪里.使用A*或其他任何标记出地形,以查看本回合单位可以移动多远.

一旦你知道这一点,逐步完成你可用的战术(近战攻击,治疗友方单位,等等),并为战术的所有可用用途分配一个健身功能.如果你传入标记的地形,你可以很快地确定你可能的战术空间.

这为您提供了每个动作的可用策略及其适应度函数列表.选择最好的一个或从顶部随机化.如果没有任何可用的策略,请重复此过程,将地形标记为两次移动,依此类推.

健身功能的意思是决定在某个单位或某个位置执行战术的"价值".例如,你的"治愈友好单位"战术决策阶段可能会逐步通过所有友方单位.如果一个友方单位在范围内(即,可以从你的单位可以到达的位置到达),将其添加到可能的战术列表中,并给它一个等于100*(1.0 - 单位生命值)的健康等级,其中单位健康范围从0到1.因此,将一个角色恢复到仅剩下10%的生命值将获得90分,而仅仅下降5%的单位仅值5,并且该单位甚至不会考虑治疗未受损伤单元.特殊单位(即保护胜利条件所需的"保护老板"情景单位)可以获得更高的基数,

同样,你的"近战攻击"决定阶段将逐步通过所有可到达的敌方单位,计算可能的伤害,并将其与单位的生命值进行比较.给每个单位一个"吸引力"进行攻击,并将其乘以你可能做的剩余生命值的百分比,并且你有一个非常详细的健身功能,有利于消除单位,但你仍然追求高价值目标.

使用这样的过程,你将得到一个选项列表,如"移动到位置A并治愈友方单位B:50点","移动到位置C并攻击敌对单位D:15点"等等.突然,它是真的很容易选择一个战术.

可以通过将策略的适应度乘以您实施它所必须采用的路径的适应度来添加更多细节.例如,如果为了治愈友方单位而必须移动的地方会使你处于严重的危险之中(即站在熔岩空间或其他东西上),你可以通过乘以该战术的适用性来考虑这个因素. .2左右,以便该单位仍然可以考虑它,但前提是它非常重要.所有这些都需要编写一种算法来评估给定位置的适应性,并且可以像预先计算的"地形可取性"数字一样简单,也可以像维护敌方单位的"威胁图"一样复杂.

当然,困难的部分是找到使发动机变得智能的正确措施.但这是你系统调整的有趣部分.