尽管我同意DampeS8N的开篇段落(即游戏AI只需要足够聪明才能使玩家认为它很聪明),但我认为这个问题需要更多阐述。所使用的数据结构可以是所有级别的FSM,但这并不能真正回答各个系统如何工作的问题。
免责声明:我几乎没有玩过《文明》游戏,所以我对游戏玩法的理解受到限制。如果有任何明显的错误,我深表歉意。请纠正我,我会很乐意编辑。
我将引用原始IGN文章的报价。
1.战术AI
在最低级别,战术AI使用手头的力量在局部规模上赢得一场战斗。
这可能是子系统的最标准部分。可以使用FSM,行为树(甚至根据AI的难度甚至执行随机动作)来执行此操作的方法无穷无尽。
但是,由于这是回合制游戏,类似于风险游戏,我认为更可能发生的是为每个单元分配一个分数。然后根据不同的变量(算法,地形奖金等)将乘数附加到该分数上。
然后通过类似以下内容的方法来计算结果:
If (AI unit score >> (much greater) enemy unit score) Then Completely destroy enemy unit
If (AI unit score > (somewhat greater) enemy unit score) Then Partially destroy enemy unit
If (AI unit score < (somewhat less) enemy unit score) Then Partially destroy AI unit
If (AI unit score << (much less) enemy unit score) Then Completely destroy AI unit
AI在战斗中会尝试并最大化该分数是有意义的。
添加一个ε值(例如,失败/成功的机会很小),您将拥有相当不错的外观AI(没有人想要一个完美的对手,那可真不好玩!)。
2.运营人工智能
与之相比,可操作的AI更进一步,它可以选择要战斗的战斗,并确保有必要的部队可用。
我认为有两点:
评估当前强度 -这只会向我尖叫影响力图。它可以很容易地在十六进制网格上表示。由于该子系统以战斗为导向,因此影响值可以代表附近每个单元的强度值。如果您有一支庞大的军队集中在小范围的六边形上,那么影响力值将是巨大的,而作战AI会在评估挑拣战时考虑到这一点。别忘了,对立军队的影响力值也会被计算出来。这使操作AI可以预测潜在的传入威胁。
部队增援 -通过从影响图中接收有关敌对派系的信息,AI可以确定哪些部队受到的威胁最大。然后,AI可以发出命令,让附近的部队去加强受威胁的各方。
评估选择/避免打架 -这里可能发生几种情况。如果AI检测到某个单位正受到威胁并且附近没有单位可以帮助它,则可以a)决定牺牲该单位(例如,如果他们只是低下的步兵,而不是不可替代的将军)或b)订购该单位撤退。相反,如果AI在军队附近检测到一个弱小的敌方单位,则可以命令该单位将这个敌人赶出。
这是一篇不错的论文,它在实时策略游戏中利用了影响力图。
3.战略AI
更高的战略AI将整个帝国进行管理,重点是在哪里建造城市以及如何处理城市。
“我应该在哪里建一座城市?” 听起来像是位置评估 国际象棋程序和其他游戏使用它来确定给定位置的合意性。例如:
十六进制A:靠近资源,在高地形上,靠近盟友,靠近敌人十六进制B:远离资源,在中级地形上,距离盟友中等距离,远离敌人
位置评估功能可以考虑以下三个因素:
Score = Proximity to resources (closer yields a higher score) +
terrain elevation (higher yields higher score) +
proximity to allies (closer is better) +
proximity to enemies (farther is better)
得分最高的六角形将是城市的建造地点。有关评估功能的更多信息,请参见此处。
我认为战略性AI在游戏中也有很多伪预言的策略,这取决于AI追求的胜利类型。
4.大战略人工智能
最重要的是战略AI,它决定了如何赢得比赛。
我认为这可能是最简单的方法,给人的印象是比实际情况要令人印象深刻。在这样的游戏中,只有有限数量的胜利类型。文章提到了Conquest的胜利,并假设联盟也有胜利等,这可能很简单,就像随机选择其中一种类型然后将其传递给其他系统一样。
编辑:当然,正如DampeS8N所指出的那样,地图的类型可以决定要争取的最佳胜利条件,在这种情况下,地图可以由设计人员进行硬编码,或将不同变量归入某种评估函数。
结束语
我认为关于这种系统的真正重要注意事项是子系统的分层方式,它们实际上不需要相互之间进行大量交流。它看起来像是一个自上而下的架构,组件之间松散耦合。从技术设计的角度来看,它是干净且灵活的,并且可能从紧急行为和/或包容性体系结构中汲取灵感。
我真的很抱歉这篇文章的长度,它变成了野兽:(
无论哪种方式,希望对您有所帮助!