《战国》游戏及武将联协体系——背景介绍与问题的提出
《战国》是我在2018年2月入坑的一款手游(iPad端),它主要以战国时代为背景,内容辐射了那个历史时期九国(韩赵魏、楚燕齐、秦、吴越)的众多名臣武将与历史轶事,是一款单机与网游成分各半的策略型游戏。如下图所示,玩家可以在“副本”、“征战诸侯”、“列传”等模式中以单机的形式进行游戏,也可以在“国战”、“军团”、“势力战”中与在线真实玩家进行对战或协作。丰富的剧情与浓厚的历史感给了我不错的游戏体验——即使它对免费玩家显然不那么友好。
《战国》的大致游戏玩法简介如下:
1. 创建角色:创建一个操控者玩家角色
2. 收集武将:通过抽武将卡、打副本、做活跃任务(如签到)、角色升级等方式,获得新的武将并纳入自己的武将池。
3. 排兵布阵:在打副本或与其他真实玩家对战时,战斗遵循一个规则:双方各从自己的将池中选择5名武将进行对战。决定胜负的因素有很多——武将等级与等阶、装备强度、兵种克制关系、战场位置关系、武将联协体系、技能(大招)操作情况等。
4. 网游互动:玩家在通过单机模式训练(包括收集和强化武将)自己的武将后,可以在每天的20:00 - 21:00这一个小时间进行名为“国战”的网游互动模块,每位玩家都必须选择一个国别(如楚国)并代表该国与其他国家的玩家交战;交战胜利则可以夺取城池,失利则有可能被占领城池。其余如观战加成、公会加成、佣兵营等系统,不详述。
作为一个充不起很多钱的小R玩家,我深知像武将等级、装备等因素极大程度上受充钱多少而影响——所以我只能在“策略”上动点脑筋(所谓用“聪明”战胜“土豪”的痴心妄想)。所幸这款游戏给拥有我这种想法的玩家留了一点发挥的空间——“武将联协体系”便是如此。我在后文将着重分析这一体系,不过在此之前,有相当篇幅的背景知识需要介绍。
如果你还记得前文中提过的该游戏中唯一的战斗形式——5v5,你就知道当你的将池中有80个武将时,你得做出一个选择:我该派哪5个武将上阵?
这是本文想探讨的唯一核心问题。
武将战力:谁是“最强”的武将?
这里不得不先铺垫一些“武将战力”相关的背景:
武将分档:我们只要前三档的优秀武将
《战国》游戏中的武将总数有134名(截至18年5月的版本),武将分为S+,S,A+,A,B,C六档:
S+级的武将有秦始皇、楚庄王等王侯,孙膑、管仲等名臣,白起、李牧等名将,甚至有西施、鬼谷子这类传奇人物。
S级则显得成色略差一些:越王勾践、李斯、王翦、伯牙等。
A+级的武将仍然令人耳熟能详:战国四公子、田忌、高渐离、庖丁等。
直到A级及以下的武将才不那么受欢迎:楚怀王、秦武王、赵括、秦舞阳之流——你得承认,几乎没有玩家想让他们上战场。
在《战国》中,S+,S,A+级武将占到了武将总数的2/3以上,而他们相比较于A-C级武将又有着更出色的基础数值,所以我们可以先进行一步排除——我们只会选择S+,S,A+级的84名武将作为出战的候选人。
武将战力:一个武将在场上到底有多能打?
幸运的是,每个武将都有一个“战力”数值(正如上图左侧显示,商鞅的战力为968)。那么其实游戏的目标看起来很简单了——去最大化这个数值即可。那么“战力”这个数值是如何计算的呢?或者说它是哪些属性的函数呢?
我们看到上图中“乐毅”这名武将(此处是武将详情,而不是武将图鉴)的基础战力是985,等于其力量、谋略、统帅三个属性之和(292+361+332=985)。但我们同时也可以从图中发现“总计战力”跟很多因素有关:武将等级(升级系统)、武将等阶(升阶系统)、科技加成、装备加成、门庭加成(集齐某些指定武将)、玩家官阶(角色声望)等。然而我对这些因素并没有兴趣——基本上他们都和充钱数额成正比,对于预算有限的玩家,这些都属于“不可控”或“没有优化空间”的领域。
或许有心的读者在“乐毅”的武将卡底端,发现了另外一个细节:除了已知的4个属性(战力=力量+谋略+统帅)外还有3个属性:武力,智力,军事——这三个属性代表什么呢?其实他们和力量、谋略、统帅确实是一一对应的,我们称之为“固有属性”,即不会随武将等级、等阶、装备等变动。但两套属性的区别在于“武力、智力、军事”为增量,而“力量、谋略、统帅”为存量。我们用乐毅举个简单的例子:
1级乐毅:力量292,谋略361,统帅332
9级乐毅:力量320,谋略397,统帅369
从1级到9级,各属性的增加量:力量28,谋略36,统帅37
我们发现各属性的增加量并不是一致的——这与乐毅这个武将的“固有属性”有关——因为乐毅的武力有85,但智力有95,大于武力值,所以在升级、升阶时,乐毅谋略的增长量一般会大于力量。
我们将84名武将的3个固有属性(武力智力军事)和3个存量属性(力量谋略统帅)全部输入表格,并计算出基础战力(力量+谋略+统帅)。下图是部分武将的信息:
从简化性考虑,我们将在本文只分析“基础战力”,也即1阶1级武将,在无装备、无加成状态下的战力。并且我们注意到,因为不涉及武将升阶及升级,其实“固有属性”对我们的分析并没有任何影响(注:可能会有一种质疑是,会不会有一名武将的基础战力很低,但因为固有属性强大,导致他在升阶和升级后变得很强而可堪一用呢?我们经过观察,大致排除了这种因素的干扰——三大存量属性和三大固有属性之间高度正相关,也就是说,一个本来就不够优秀的武将,也不会在升阶升级后,相比较于基础战力本来就更高的武将有质的飞跃)。
战斗的其他影响因素:只知道武将战力还不够
有了上图的84名武将的完整战力信息,我们似乎有个初步方案了:选取5个战力最高的武将出场,不就行了吗?剩下的任务不就是不断地砸钱升级买装备,让“基础战力”充分增长为强大的“总计战力”?
然而这种毫无技巧性和操作感可言的出将方案,以及100%的“只有充钱才会变强”的理念,一定很快就会让玩家扫兴。并不意外的是,影响战斗胜负的除了前面提到过的“总计战力”,还有如下四个因素;而第四个因素“武将联协”,也是本文的分析主题。
因素一:武将类型——哪个才是核心属性?
《战国》的武将非常多元:正如“将相和”的故事里,蔺相如总揽朝政,廉颇把控军务,一文一武相得益彰,才使得赵国强盛。所以如“蔺相如”一般的名臣,在游戏中被赋予了“策士”的武将类型;而如“廉颇”一样的猛将,则被赋予了“勇将”。除此之外,我们还有“将军”和“智将”两种武将类型。这四种武将类型的根本区别,其实在于他们的“核心属性”不同:
策士:核心属性谋略,如孙膑、蔺相如
智将:核心属性谋略,如吴起、乐毅
勇将:核心属性力量,如白起、廉颇
将军:核心属性统帅,如楚庄王、信陵君
在这里介绍“核心属性”的原因与上一节介绍“固有属性”颇有关系:我们从前文已经看到“乐毅”是“智将”类型,谋略是他的核心属性;而恰巧的是他的三个固有属性中,智力也是最高的。这意味着,乐毅在未来的升阶升级中,其“谋略”在战力中所占的比重将越来越大(一般说来,武将基础战力中的核心属性已经占超过1/3的比重,而随着升级升阶、有针对性的配置装备,“核心属性/战力”这一比值将逐渐升高到40%左右)。我们先记住这一个指标,和“40%”这个估计值,它在第四个因素“武将联协”中将发挥作用。
因素二:战斗类型——兵种的克制、布阵的禁忌
《战国》武将的复杂性体现在他们不止有一个label:除了“武将类型”之外,每个武将还具备各自的“战斗类型”。具体来说,有远战类型的弓兵,以及近战类型的戟兵、盾兵、骑兵四种,而他们之间也有着战斗时的克制关系:
弓兵:远程杀伤敌人,被其他三个兵种克制,但如果不成为对方的直接进攻目标(比如躲在阵型的后排),杀伤力巨大。“策士”经常从属于这种战斗类型,如孙膑、管仲。
戟兵:近战,克制骑兵。将军、勇将经常从属于该类型,如庞涓、王翦。
盾兵:近战,克制戟兵。将军、勇将、智将经常从属于该类型,如齐桓公、项燕、范蠡。
骑兵:近战,克制盾兵。勇将、智将经常从属于该类型,如白起、乐毅。
“战斗类型”不仅让我们在排兵布阵时有针对性(比如尽量用自己的骑兵对上对面的盾兵),更重要的是让我们的选将策略几乎遵循了一条铁律:因为战斗分左中右三路,所以基本上我们一定要排出3近战+2弓兵的阵型。
如果参考上文中“战斗阵型”一图,可以发现我排出了1骑兵(白起)+2戟兵(秦孝公、王翦)+2弓兵(商鞅、张仪)的阵型。道理是显而易见的:如果你排出4个近战,则有一个近战则在战斗开始尚未减员时,处于后排而无法攻击到对手;如果只排出2个近战,那么又势必有一路的后排弓兵被暴露于敌人的近战直接攻击之下。
因此,在玩家长期的对战中,大家普遍遵循了3近战+2弓兵的策略。所以我们的选将又有了很强的一条Constraint——你不能因为自己拥有3个战力上佳的弓兵就把他们全派上场,你必须舍弃其中一个,换为一个不那么强的近战武将去前排当肉盾。
因素三:技能配合——国家队效应
我不是一个狂热的游戏迷,但“可玩性”这个概念对于各个阶层的玩家应该都有共通之处。在早期的一些简单的回合制策略型游戏中,有一种模式便是玩家只要负责派出合适的阵容,而计算机会自动模拟战斗的过程和结果。无疑玩家在“战斗过程”中是几乎没有参与度的。而《战国》作为2018年的游戏自然不会容忍自己如此“复古”。相反,在每一场5v5的战斗中,玩家可以操纵自己的某一名武将有代价(集气/攒蓝)地运用技能(放大招),从而极大地增加了战斗的乐趣。
由于每个武将的技能有着诸多维度的不同(需要集气的点数、作用对象、作用范围、作用时间、作用效果等),如果你想击败一个强劲的对手,可能需要特别调用自己的某个“奇兵”武将(尽管他未必是你的Best-5之一)。
比如赵国名将李牧的技能是——强力伤害敌方后排弓兵,那么当我们需要快速消灭对方强大的后排(比如拥有AOE技能的弓兵商鞅)时,让李牧出战就是一个极佳的选择。
但是我想强调的还不是这种特殊技能效果。游戏中其实更有趣的是一种“技能配合”。《战国》这款游戏中的武将分属于十个势力(韩赵魏楚燕齐秦吴越周),而几乎每个势力的国君(比如秦-秦始皇/秦昭襄王,楚-楚庄王)的技能都是特殊的,国君的技能可以加成同时出战的本国武将,让我们看下图“赵武灵王”的例子:
在战国中期跃居中原一霸的赵国,曾在赵武灵王的统领下改革军政,向北方游牧民族学习“胡服骑射”,从而大大增强了军队的战斗力和国力。而我们发现这位被誉为“黄帝之后第一伟人”的圣君在《战国》中,也有着特有的“只对赵国武将生效”的强力加成技能。换句话说,如果我的出场武将里已经定下了廉颇、李牧、蔺相如,那么我的下一个人选最好就是能够让这三位都受益的赵武灵王;反过来,当我对组队一筹莫展之时,我甚至也可以先决定以哪个国家的国君为核心来组队(正如我选择以秦孝公为核心组建了一套秦国阵容,当然,我没有选择秦始皇的原因也很简单——我买不起)。
所以我们不难想象的是,这种“国家队效应”是可以充分被考虑进“出场阵容决策”中的;然而国君技能的配合性,其实还只是“国家队效应”泛滥的其中一个原因而已——更重要的原因,是第四个影响胜负的因素:武将联协。
下表里我们给出了部分武将在因素一、二、三的值——如果你够敏锐,你应该知道这些因素在一个“完美出场阵容决策”里都应该被考虑到。
因素四:武将联协——最强的阵容 ≠ 5个最强的武将
战国时代的故事多如牛毛:从三家分晋到魏霸西河,从田氏代齐到围魏救赵,从吴越相争到合纵连横,从长平之战到一统天下——这是一段波澜壮阔的史诗,而写就它的风流人物也往往相互关联:典范君臣(齐桓公与管仲)、将相之和(蔺相如与廉颇)、师徒情深(鬼谷子与苏秦)、高山流水(钟子期与伯牙)、窃符救赵(信陵君与平原君)、伉俪传奇(干将与莫邪、西施与范蠡、芈月与秦惠文王)。甚至有些故事,虽然不像刚才列出的这些可被称为“佳话”,却也是浩瀚历史里的耀眼星辰:荆轲刺秦(荆轲与秦始皇)、兔死狗烹(范蠡与文种)、纵横捭阖(苏秦与张仪)、同窗相杀(庞涓与孙膑)。
有太多这样的故事了——与其把故事主人公之间的交情称为“联协”,倒不如“羁绊”来得更合适。也是因此,《战国》没有放弃一个在游戏中放大历史情怀的机会:武将联协体系俨然成为了选择出场阵容时的重要考量。这个体系让5名出场武将的总战力随着一定规则进行大幅加成,这让玩家们了解到:并不是5个战力最高的武将都出场,总战力就会最高;必须考虑的,还有武将之间的“羁绊”加成。让我们看看“荆轲”的武将联协:
如果“荆轲”和“秦始皇”被排进了一套出场阵容里,荆轲的“力量”属性则会升高20%。我们在“因素一”中分析过,武将的“核心属性”占总战力的比例约为40%,也就是如果荆轲的初始基础战力为100,那么如果秦始皇在场,战力会成为108(100+100*40%*20%)。请不要小看这8个百分点的提升:5个武将之间最多可以有20条联协(有不少“双向联协”的案例,比如蔺相如与廉颇),而如果每条联协可以加成8个点,一个总战力500的阵容可以因为“武将联协”这一项而被加成为660!
在这个充值的边际收益快速递减的游戏里,越是大R玩家(当然,土豪不论,这里指的仍然是希望钱花到刀刃上的玩家),越是珍惜在游戏开区三个月后(提高1个百分点的总战力甚至都需要上百RMB的投入)任何一个低成本提高战力的机会。
我们记录了游戏中84个武将之间,产生的共351条“联协路径”整理如下表所示:
当你留意到,齐桓公可以给管仲25%的谋略加成,而管仲可以同时给齐桓公25%的统帅加成时,你还觉得“武将联协”是一个不值一提的因素吗?
小结与后文预告:这篇分析究竟要做什么?
注意!没有兴趣或耐心看上面5000字的读者,请直接看下面!
正如篮球队教练需要选择一套合适的首发阵容一样,我们在《战国》游戏中决定一套5个人的战斗阵容时,面临一个更大的选择空间(84名备选人)。与篮球类似,我们需要考虑到队员的个人能力(基础战力)、在场上所打的位置(战斗类型)及队员之间的配合默契度(武将联协)。稍有经验的读者应该可以猜得出了——这是一个最优化问题,而且是一个整数规划问题。
这个整数规划问题的复杂性在于杂糅进了社交网络(即武将联协系统)——一个节点(node)的贡献不仅取决于自身,也很大程度上受到与之相连的边(edge)的影响。也许有读者觉得没有必要对一个游戏如此serious,但其实我们生活的世界、我们关心的绩效,都在社交网络的影响之下。这篇分析的目的,并不真的仅仅为了打一款手游省几块钱,而是要设计一个模式,为“社交网络下的整数规划”决策问题做一个“套路”。我们将借助社交网络分析工具(Gephi)和编程语言(Python)来实现决策支持(Decision Support)的过程。
在上篇(即本文)里,我们已铺垫了所有必要的背景。中篇将精确地刻画这个问题,并从社交网络分析(SNA)的角度给出有用的发现。而在下篇,我们将用Python实现对这个问题的终结。