对面出了坦克,AI就造反坦克炮,这条规则看上去很会反应,其实是战争游戏里最省事也最容易露馅的设计。真正的指挥官先问的是:我付得起吗,送得上去吗?

看到坦克就造反坦克,这条规则错在哪一步

最常见的战争游戏AI,核心逻辑只有一行:统计对面单位构成,谁多就造谁的克星。对面出了坦克,就出反坦克炮;对面出了飞机,就出防空车。这个规则在演示里很好看,因为它“会反应”,可一旦局面稍微复杂,它立刻露馅:它不问自己有没有钢,不问反坦克炮能不能被送到需要它的地方,也不问对面那些坦克到底是不是真的要往这里来。

反坦克炮只是一个例子。真正的问题在于,它把战争压缩成“单位对单位”的克制表,而克制表只回答了战斗最后几分钟的问题。战斗之前,有钢铁从矿区运到工厂,燃料从炼油厂送上铁路,卡车在山路上排队;战斗之后,有修理、补员和重新补给。战争游戏里真正拉开差距的,往往是这些不出现在战斗画面里的部分。大发娱乐战略模拟的设计目标,就是让AI指挥官先读懂这些约束,再决定造什么、打哪里、什么时候停。

先看一个假设战区:三种资源决定了谁能把坦克开到前线

下面所有数字都是模拟示例(假设场景),只用来说明逻辑,不代表任何实测数据。设想一个战区:北岸的甲国有一座钢厂和一条单线铁路,南岸的乙国有一座炼油厂和两条公路。中间隔着一条河,只有一座桥;桥北是丘陵,桥南是沼泽。

甲国钢铁充足,每回合可造 12 辆坦克,但燃料只够 8 辆坦克在前线连续行动。乙国钢铁紧张,每回合只能造 5 辆坦克,燃料却很充裕。一个只会数坦克的AI看到甲国的坦克数量是乙国两倍多,会立刻判定“甲国占优,乙国应该造反坦克炮”。

项目甲国(模拟示例) 乙国(模拟示例)
每回合钢铁可造坦克 12 辆 5 辆
每回合燃料可支撑前线坦克 8 辆 14 辆
主要运输 单线铁路,运量有限两条公路,可被打断
前线距补给站 6 回合(过桥、翻丘陵) 2 回合

把四行放在一起,判断就变了。甲国真正能同时在前线行动的坦克只有 8 辆上下,过桥还要再扣掉运输损耗;乙国只要守住桥南沼泽的出口,就能用远少于对方的力量把对方拖在原地。乙国最好的选择未必是造反坦克炮,很可能是把钢铁花在工程兵和地雷上,去炸掉那座桥,再把多出来的燃料留给机动的轻型单位。

地形不是背景图,而是一张行动成本表

很多游戏里的地形只是加减防御:山地加 20%,森林加 10%。这不够。地形真正做的事,是改变“到达那里要付出什么”。在大发娱乐的设计方案里,每一块地形对每一类单位有三个独立的数:通行速度、单位时间的燃料消耗、每回合能通过的最大流量。道路和桥梁尤其看重最后一个。

沿用上面的假设:沼泽对轮式卡车的通行速度只有平地的三成,对坦克的燃料消耗是平地的 1.8 倍;那座桥每回合最多通过 6 个单位的补给。这三个数一旦存在,AI的路径规划就不再是“最短路”,而是“在燃料预算内、且不超过流量上限的可行路径”。同一支坦克部队,走桥北丘陵慢但省油,走沼泽快却可能中途趴窝。AI选哪条,取决于它对后方补给有多大把握。

地形还决定了“什么对手值得担心”。丘陵出口只有一条窄路时,反坦克炮的价值很高;到了开阔平原,机动和侧翼才是关键。同样是“对面有坦克”,在不同地形上AI给出的建议应该不同。所以克制关系不该写成一张固定的表,而应当是一个输入:在这块地形、这条补给线上,这种单位能不能发挥出来。

下令之前,AI指挥官要先回答三个问题

回到乙国。它的AI在看到甲国集结坦克时,不是直接查表,而是按顺序回答:

  1. 威胁是真的吗?信息必须来自己方侦察,并带时间戳。两回合前看到的坦克,现在可能已经不在那里,也可能只是一次佯动。
  2. 我付得起吗?钢铁、燃料、人员,以及它们运到需要的地方要多久。反坦克炮送到得太晚,等于没造。
  3. 有没有更便宜的解法?炸桥、布雷、后撤到丘陵出口、袭击对方补给站,或者请求盟友分担一段运输。

三个问题的答案汇成一份候选方案清单,每个方案带着预期收益、资源占用和风险,再由评分函数排序。假设这一回合,炸桥的成本只相当于 1 辆坦克的钢铁,却能让甲国的前线补给流量降为零;反坦克炮要花 3 辆坦克的钢铁,还要 4 个回合才能运到位。评分自然会把炸桥排在前面。反坦克炮依然在清单里,只是经常不是得分最高的那一项。

把这一回合完整走一遍,会更清楚这套流程和查表的差别。回合开始时,乙国的侦察只在桥北看到了 10 辆坦克,是两回合前的情报。AI先把这条信息标上“已过期两回合”,并把甲国可能的兵力区间估为 8 到 14 辆,而不是当作确切的 10 辆。接着它读取自己的账本:钢铁 20 单位,燃料 40 单位,工程兵 2 队。然后逐个评估候选:炸桥需要工程兵 1 队和 3 单位钢铁,2 回合完成;反坦克炮需要 9 单位钢铁,4 回合运到;后撤则几乎没有成本,但会丢掉沼泽出口这个阵地。最后按“预期收益减风险减占用”排序,炸桥居首,后撤居末,反坦克炮居中。整个过程里没有任何一步是“对面有坦克,所以造克星”,每一步都是在问自己能做什么、值不值得。

如果不这样设计,玩家很快就会发现规律:AI永远对着你的兵种造克星,你只要换一种兵种,它就晕头转向;你炸掉一座桥,它也不撤,仍然照原计划送部队过河。这种“可预测的笨”比“明显的弱”更让人扫兴。

补给线让每一次进攻都有保质期

对进攻方来说,前线离补给站越远,能持续作战的时间越短。战略模拟里可以给每支部队维护一个“补给储备天数”:出发时假设为 5 天(模拟示例),每回合消耗 1 天,回到补给圈内才恢复。储备降到 2 天以下,AI就必须在“继续推进、原地固守、后撤”之间做出选择,而不是照旧冲锋。

放回假设战区里看,这个数字会直接改写甲国的计划。前线距补给站 6 回合,出发时的 5 天储备在途中就已经耗掉大半,到桥北丘陵时只剩不到 2 天。也就是说,甲国的进攻窗口并不长,AI如果算清了这一点,会选择先建一座前进补给站,把储备重新补满再推进,而不是带着残余的燃料强行过桥。乙国的AI同样能看出这个窗口:只要在对方储备见底的那几个回合里守住出口,就不必与对方硬拼。

这解释了一个常被忽略的现象:进攻方推进到一半,往往会自己停下来。这不是AI胆怯,而是它算出了“再往前一步,后面的供给流量撑不住”。补给线被切断时部队的具体表现,可以看补给线断了以后,AI军队为什么不能继续像什么都没发生一样进攻,这里只强调一点:补给不是一个惩罚数值,而是决定行动是否可行的硬约束。

聪明和作弊之间,只隔一层战争迷雾

让AI更强最省事的办法,是让它直接读取玩家的部队位置。它会突然“预判”你的每一次调动,玩家很快就会觉得被欺骗。战略AI的“聪明”只能来自它自己的信息:侦察兵看到了什么,这些信息有多旧,以及它根据对方过往行为做了怎样的推断。

做法是让AI维护一个“信念状态”:对每支可能存在的敌方部队,记录最后一次确认的位置、确认的时间和可能去向的概率。信息越旧,概率分布就越散。AI可以据此做出“主力可能从北面来”的判断,但不能凭空知道具体坐标。经典游戏AI的公开资料里也有类似的谨慎:DeepMind 介绍 AlphaStar 时说明,发表在 Nature 上的版本通过摄像机视角获取信息,并对操作频率施加了更严格的限制,目的是让比较更接近人类条件;至于这样是否真的公平,业内至今仍有争论。

审计办法很朴素:在日志里记录AI每一次决策依据的信息来源。任何一条决策,只要依赖的信息在该AI的视野和情报记录里查不到,就是漏洞。至于AI应该多快学习玩家的习惯,才不至于像开了透视,我们放在AI敌人应该“学习玩家”到什么程度里单独讨论。

盟友和中立国也在消耗同一份资源

战争不只有两个国家。中立国可以出售燃料,盟友可以分担一段运输,禁运可以直接扩大某一方的缺口。继续用假设数字:如果甲国每回合从第三国进口相当于 3 辆坦克的燃料,一旦被禁运,前线能支撑的坦克就从 8 辆降到 5 辆。这时甲国AI的最优动作,可能不是在前线多造两辆坦克,而是花一个回合去争取盟友开放铁路。

外交和军事共用一套资源账,是让战争“像战争”而不是“像即时战术”的关键。同一份钢铁,不能既拿去造坦克,又拿去换盟友的支持。AI每一次分配都是在做取舍,玩家从对手的行为里能读出它此刻最缺什么。

大模型说明意图,模拟器负责算数

会说话的大模型在战略游戏里最容易被误用。它擅长把局面翻译成计划和解释,比如“我们判断桥梁是对方唯一的补给通道,所以优先阻断”,却不擅长每回合准确计算燃料、流量和距离。相关研究也提示了它的边界:Lamparth 等人 2024 年在关于兵棋推演的论文中报告,在美中危机场景里,LLM模拟的团队比 214 名国家安全专家参与的人类推演更具攻击性,而且明显受场景措辞影响。这类结论只适用于被测试的模型和场景,但足以说明,不能让大模型直接“决定”战争结果。

所以在大发娱乐AI的混合方案中,大发娱乐大模型,大模型只提议“想做什么”,物资、路程和战斗结果一律由模拟器结算,结算结果再返回给它复盘。这套分工在大模型负责“想”,传统模拟器负责“算”里有更完整的说明。对战争场景来说,好处很直接:AI的每一句解释都能在账本里找到对应的数字。

一份可检查的清单:怎么知道AI真的理解了资源和地形

“理解资源和地形”听起来很虚,落到测试上可以拆成四项,每一项都能在回放里检查:

检查项 通过时的表现出问题时的样子
补给敏感储备低于阈值时主动停止或后撤 燃料归零仍在冲锋
地形敏感 同一单位在不同地形选择不同路线和战术无论地形都走最短路
信息合法每条决策可追溯到自己的侦察记录 精准预判从未侦察到的部队
成本意识 不总选“克制”单位,会考虑炸桥、袭扰 对面出什么就造什么

在大发娱乐战略模拟的测试思路里,这四项是每次改动AI逻辑后都要重跑的回归场景:把补给线砍断、把桥炸掉、把侦察关掉,看AI的行为是否随之合理地改变,而不是看它最后有没有赢。赢是很容易造出来的,笨也是。

一个战略AI值不值得当对手,不看它造了多少反坦克炮,而看它在钢铁、燃料、桥和时间都不够的时候,愿意放弃什么。