总之,今次的核心话题就是这个全自动战略游戏《钢铁雄心3》了。这个游戏确实BUG无数,也有着难以数清的设计细节缺失和欠考虑的处理失误,更有大量的程序失误和不足,但它的设计思路还是很有可观之处的。
还是先来简单的游戏介绍。这游戏也叫哈特矮人3(Hearts of Iron 3),小胡子养成计划3或者其他的什么名字(这些名字的出现是,因为直译在东亚某国是不可以出现的),是个以模拟第二次世界大战全景(1936-1948)作为目标的宏观战略游戏。
如果夸张一点说,我们甚至可以说这是迄今为止唯一一个试图做出“宏观战略感”的游戏系列。HOI初代成功导入了整个二战的历史和数据,HOI2代提供了强力的事件系统让玩家们编写了无数的MOD重现了各种各样的历史,而到了三代——
他们终于写了一些代码,让军队可以在明确的目标下去自行战斗了!
这么描述或许很难理解。换一种说法,以前的HOI系列的游戏过程是“我的目标是攻克柏林”,所以我需要去手动调遣每一个师、生产所需要的武器,调集所需要的海军和空军,从库尔斯克开始逐寸逐寸地夺回土地,消灭敌人的武装力量。每天,每天(游戏里每小时是一个行动阶段),作为指挥官的玩家都要从早到晚地拖动结束了攻击的部队继续发动攻击,或者把溃败了的部队拖回后方整补。这些麻烦事情曾经让我屡次放弃重玩的打算——大规模战斗实在是太烦人了。
而在三代里呢?现在玩家只需要把几百个师编组成一个“红军总参谋部”,然后在下面编制上“白俄罗斯方面军”、“乌克兰方面军”之类的部队,再给他们指定一个最终作战目标——比如说“柏林”,一个作战方针——比如说“闪击”,接着这整个军团就会自动开始作战。从部队移动、进攻到补给、修整,这个集团军群都会按照自己的AI自动去完成。虽然效率不是很高,AI也有很多漏洞,但这种设计思路确实在试图把人从枯燥乏味的补战线漏洞的行动中解脱出来,值得鼓励——事实上整个游戏进行的流程也因此流畅了很多。同样,所有战略层面的AI也可以选择性托管,包括外交、内政、生产、谍报、科研在内的各个分项都可以选择交给AI进行托管。
——没错,这几乎就是我们俗称的“外挂”了。不用操作,自动进行,只有在出错时偶尔来用一些操作进行调整。作为头绪繁杂的战略游戏来说,我个人认为这是个相当不错的方向,比模拟并要求操作一切(那些不操作就不会动或者动得很差即时战略游戏)或者完全不能操作一切(比如孢子什么的)的做法来得有趣。
但这里仍然有一个问题,再明显不过而且很难解决的问题:自动委托的AI怎么可能比人脑高明?
当然,答案可以是改善AI。但改善AI永远是最难的,AI永远不知道自己会有些什么漏洞。钢铁雄心系列以及其兄弟系列们的历史,就是聪明的玩家钻AI漏洞的历史。用飞机+伞兵占领胜利点,用部队诱骗舰队不足的电脑国家离开驻防地,利用海战AI的漏洞偷渡,这些手段被狡猾的玩家们玩得炉火纯青。这一切也理所当然地在HOI3里面重演着,这么一个庞大的系统,不可能没有漏洞;牵涉到海空的复杂计算,则会让漏洞成倍增长。
但HOI3的对策思路仍然值得借鉴:设计人员的思路在最终的版本中显得相当清晰,虽然执行得还不够好。
第一条思路是“如果AI不能改善,那就让这件事情复杂化,直到人脑不乐意进行全面的计算为止”。如果AI算不太好的部分,干脆让人也算不太好不就好了吗?如果能让复杂度增加到一般人的表现还不如AI就更好了。所以,在HOI3里面,设计人员把地面行省的数量增加了4倍,让整个突破的过程变得漫长了许多。他们还增加了战斗宽度(Combat Width)的概念,一个省同时能展开的部队数量是有限的,这是用来阻止玩家最喜欢的优势兵力集中突破。堆叠惩罚就更狠一点,一旦部队投入过多战斗力就下降的这个设计不光针对地面部队,还威逼着玩家要把空军部队也分开,否则就要面临惊人的惩罚。至于指挥链,就是个更赤裸裸地和玩家计算能力作对的设计了;如果不是补给系统的实现算法实在太糟糕拖了后腿,这个设计本来应该能像一代战棋名作东线战役(War In Russia)里面的指挥链一样令人激动。
这条思路上的最终设计目标应当是,在玩家所消耗的时间和取得的成效之间达成一个巧妙的平衡,让玩家清楚应该把哪些权限和不必要的操作释放给AI。确实,AI的战斗行动经常很愚蠢,它们的进攻行动也很慢,但多数玩家最终都会做出明智的选择:把非主攻方向完全交给AI的步兵师进行渗透,而将珍贵的精锐部队控制在自己手里进行突破。当然,这个设计在目前的版本中还远远不完善,有大量的部队不得不全部被控制在玩家的手中,但我乐观地估计,经过几个版本和玩家自制MOD的优化之后,HOI3应当能够取得一个较为合理的平衡。
第二条思路是“如果AI不能改善,那就让设计内容简单化,直到AI在这件事情上不会再出错为止”。典型的设计犹如本次的贸易系统,在所有的收支都统一到了金钱后,他们终于写出了一个简单而有效的算法,可以确保AI能够用手里的资源交换回足够的资源,以确保所有的工厂都能正常开工。再比如说空军,他们把空军的任务分解到和飞机种类一一对应之后,空军AI看起来也正常得多了,各个机种各司其职。归根结底,玩家最害怕的其实是“AI做蠢事”;如果一个AI所对应的设计内容简单到AI几乎不会做蠢事,那玩家会非常心安理得地将这些内容委托给AI。
但如果做不到,这条思路却会产生很糟的结果,一个典型的例子犹如海军。海军各个舰种的角色混杂,所需要执行的任务也非常多样,试图简单化的努力让海军AI的表现显得非常糟糕。如果你委任了一整支海军,登陆部队会不带任何护航舰队就进行登陆尝试,潜艇和驱逐舰会在不需要巡逻和破交的海域进行行动,珍贵的由航母和战列舰组成的主力舰队却会因为不知道敌方主力舰队的所在而呆在母港里面趴窝。类似的问题还有战区增援需求和AI托管生产,这两块内容的简化也显得非常愚蠢,完全不需要的运输机会得到惊人数量的请求而被大量制造,真正急需的补给部队反而无法得到生产优先权。内容简单化是个比较有风险的设计决策,你必须确认“AI确实不会干蠢事”才好把这些内容彻底托管给它们。
第三条思路是“如果没有把握让AI掌管全局,那就把AI控制的部分拆散。”这方面他们设计的时候已经考虑到了,但似乎考虑的程度还不够。整个游戏拆散成了六块,军事、外交、内政、生产、谍报、科研,如果玩家觉得哪个部分不放心,就可以交给AI托管;但为什么不能继续分散托管呢?游戏中的每个模块分明都可以分解成更小的模块进行AI设计。举例来说,在生产里面,运输船和IC调配都明显可以写出十分实际可用不会犯错的AI,但生产流水线部分就难多了,这几部分明显应该让玩家来选择将哪些内容交给AI。谍报也有相同的问题,间谍派遣的优先度和实际执行的任务也是两个独立的模块,应该分开。任何可以拆开的AI模块,都应该拆散开来,让玩家自己来评判代码的水准。让玩家最大限度地持有对AI的控制权,反而能带来一种“用委任战胜了系统”的特殊游戏体验。
当然,如果把以上这些设计思路逆向解读,对网络游戏的设计师就很有用了。
如果系统能够被宏或者外挂的自动程序打败,通常这证明这个系统太过简单。信任玩家大脑的智力或许会是更好的选择。
如果系统能够被宏或者外挂的自动程序取代,通常这证明这个系统太过单调。如果发生了这种情况,那为什么不索性直接把这个单调的部分拜托给系统内的AI呢?
如果系统因为过于庞大而真的潜藏着太多的风险,那为什么不索性将可以委任的部分拆开,然后让玩家自行去选择他需要把那些部分的内容“自动化”呢?
现在是一个计算能力已经能够负担得起相当程度AI代码的时代了。最终幻想12在RPG风格的AI制定上已经做了一些尝试,而钢铁雄心3则在战略游戏方面做了一些尝试。从神谷英树的新作猎天使魔女(Bayonetta)的Trailer里面来看,他似乎正在动作游戏领域内做着类似的尝试,复杂的移动和连续技被集中到了“自动锁定移动”和“自动连续技”两个系统上来。在这样的一个时代里,我们应当思考并研究,究竟哪些不必要的操作和关注是我们可以从玩家手里解放的,又有哪些崭新的体验是我们可以在玩家解放之后交给他们的。