《戰(zhàn)國》游戲及武將聯(lián)協(xié)體系——背景介紹與問題的提出
《戰(zhàn)國》是我在2018年2月入坑的一款手游(iPad端)桐款,它主要以戰(zhàn)國時代為背景,內(nèi)容輻射了那個歷史時期九國(韓趙魏菠剩、楚燕齊求厕、秦趣苏、吳越)的眾多名臣武將與歷史軼事年柠,是一款單機與網(wǎng)游成分各半的策略型游戲凿歼。如下圖所示,玩家可以在“副本”、“征戰(zhàn)諸侯”答憔、“列傳”等模式中以單機的形式進(jìn)行游戲味赃,也可以在“國戰(zhàn)”、“軍團(tuán)”虐拓、“勢力戰(zhàn)”中與在線真實玩家進(jìn)行對戰(zhàn)或協(xié)作心俗。豐富的劇情與濃厚的歷史感給了我不錯的游戲體驗——即使它對免費玩家顯然不那么友好。
《戰(zhàn)國》的大致游戲玩法簡介如下:
1. 創(chuàng)建角色:創(chuàng)建一個操控者玩家角色
2. 收集武將:通過抽武將卡侯嘀、打副本、做活躍任務(wù)(如簽到)谱轨、角色升級等方式戒幔,獲得新的武將并納入自己的武將池。
3. 排兵布陣:在打副本或與其他真實玩家對戰(zhàn)時土童,戰(zhàn)斗遵循一個規(guī)則:雙方各從自己的將池中選擇5名武將進(jìn)行對戰(zhàn)诗茎。決定勝負(fù)的因素有很多——武將等級與等階、裝備強度献汗、兵種克制關(guān)系敢订、戰(zhàn)場位置關(guān)系、武將聯(lián)協(xié)體系罢吃、技能(大招)操作情況等楚午。
4. 網(wǎng)游互動:玩家在通過單機模式訓(xùn)練(包括收集和強化武將)自己的武將后,可以在每天的20:00 - 21:00這一個小時間進(jìn)行名為“國戰(zhàn)”的網(wǎng)游互動模塊尿招,每位玩家都必須選擇一個國別(如楚國)并代表該國與其他國家的玩家交戰(zhàn)矾柜;交戰(zhàn)勝利則可以奪取城池,失利則有可能被占領(lǐng)城池就谜。其余如觀戰(zhàn)加成怪蔑、公會加成、傭兵營等系統(tǒng)丧荐,不詳述缆瓣。
作為一個充不起很多錢的小R玩家,我深知像武將等級虹统、裝備等因素極大程度上受充錢多少而影響——所以我只能在“策略”上動點腦筋(所謂用“聰明”戰(zhàn)勝“土豪”的癡心妄想)弓坞。所幸這款游戲給擁有我這種想法的玩家留了一點發(fā)揮的空間——“武將聯(lián)協(xié)體系”便是如此。我在后文將著重分析這一體系车荔,不過在此之前昼丑,有相當(dāng)篇幅的背景知識需要介紹。
如果你還記得前文中提過的該游戲中唯一的戰(zhàn)斗形式——5v5夸赫,你就知道當(dāng)你的將池中有80個武將時菩帝,你得做出一個選擇:我該派哪5個武將上陣?
這是本文想探討的唯一核心問題。
武將戰(zhàn)力:誰是“最強”的武將呼奢?
這里不得不先鋪墊一些“武將戰(zhàn)力”相關(guān)的背景:
武將分檔:我們只要前三檔的優(yōu)秀武將
《戰(zhàn)國》游戲中的武將總數(shù)有134名(截至18年5月的版本)宜雀,武將分為S+,S,A+,A,B,C六檔:
S+級的武將有秦始皇、楚莊王等王侯握础,孫臏辐董、管仲等名臣,白起禀综、李牧等名將简烘,甚至有西施、鬼谷子這類傳奇人物定枷。
S級則顯得成色略差一些:越王勾踐孤澎、李斯、王翦欠窒、伯牙等覆旭。
A+級的武將仍然令人耳熟能詳:戰(zhàn)國四公子、田忌岖妄、高漸離型将、庖丁等。
直到A級及以下的武將才不那么受歡迎:楚懷王荐虐、秦武王七兜、趙括、秦舞陽之流——你得承認(rèn)福扬,幾乎沒有玩家想讓他們上戰(zhàn)場惊搏。
在《戰(zhàn)國》中,S+,S,A+級武將占到了武將總數(shù)的2/3以上忧换,而他們相比較于A-C級武將又有著更出色的基礎(chǔ)數(shù)值恬惯,所以我們可以先進(jìn)行一步排除——我們只會選擇S+,S,A+級的84名武將作為出戰(zhàn)的候選人。
武將戰(zhàn)力:一個武將在場上到底有多能打亚茬?
幸運的是酪耳,每個武將都有一個“戰(zhàn)力”數(shù)值(正如上圖左側(cè)顯示,商鞅的戰(zhàn)力為968)刹缝。那么其實游戲的目標(biāo)看起來很簡單了——去最大化這個數(shù)值即可碗暗。那么“戰(zhàn)力”這個數(shù)值是如何計算的呢?或者說它是哪些屬性的函數(shù)呢梢夯?
我們看到上圖中“樂毅”這名武將(此處是武將詳情言疗,而不是武將圖鑒)的基礎(chǔ)戰(zhàn)力是985,等于其力量颂砸、謀略噪奄、統(tǒng)帥三個屬性之和(292+361+332=985)死姚。但我們同時也可以從圖中發(fā)現(xiàn)“總計戰(zhàn)力”跟很多因素有關(guān):武將等級(升級系統(tǒng))、武將等階(升階系統(tǒng))勤篮、科技加成都毒、裝備加成、門庭加成(集齊某些指定武將)碰缔、玩家官階(角色聲望)等账劲。然而我對這些因素并沒有興趣——基本上他們都和充錢數(shù)額成正比,對于預(yù)算有限的玩家金抡,這些都屬于“不可控”或“沒有優(yōu)化空間”的領(lǐng)域瀑焦。
或許有心的讀者在“樂毅”的武將卡底端,發(fā)現(xiàn)了另外一個細(xì)節(jié):除了已知的4個屬性(戰(zhàn)力=力量+謀略+統(tǒng)帥)外還有3個屬性:武力梗肝,智力榛瓮,軍事——這三個屬性代表什么呢?其實他們和力量统捶、謀略榆芦、統(tǒng)帥確實是一一對應(yīng)的柄粹,我們稱之為“固有屬性”喘鸟,即不會隨武將等級、等階驻右、裝備等變動什黑。但兩套屬性的區(qū)別在于“武力、智力堪夭、軍事”為增量愕把,而“力量、謀略森爽、統(tǒng)帥”為存量恨豁。我們用樂毅舉個簡單的例子:
1級樂毅:力量292,謀略361爬迟,統(tǒng)帥332
9級樂毅:力量320橘蜜,謀略397,統(tǒng)帥369
從1級到9級付呕,各屬性的增加量:力量28计福,謀略36,統(tǒng)帥37
我們發(fā)現(xiàn)各屬性的增加量并不是一致的——這與樂毅這個武將的“固有屬性”有關(guān)——因為樂毅的武力有85徽职,但智力有95象颖,大于武力值,所以在升級姆钉、升階時说订,樂毅謀略的增長量一般會大于力量抄瓦。
我們將84名武將的3個固有屬性(武力智力軍事)和3個存量屬性(力量謀略統(tǒng)帥)全部輸入表格,并計算出基礎(chǔ)戰(zhàn)力(力量+謀略+統(tǒng)帥)克蚂。下圖是部分武將的信息:
從簡化性考慮闺鲸,我們將在本文只分析“基礎(chǔ)戰(zhàn)力”,也即1階1級武將埃叭,在無裝備摸恍、無加成狀態(tài)下的戰(zhàn)力。并且我們注意到赤屋,因為不涉及武將升階及升級立镶,其實“固有屬性”對我們的分析并沒有任何影響(注:可能會有一種質(zhì)疑是,會不會有一名武將的基礎(chǔ)戰(zhàn)力很低类早,但因為固有屬性強大媚媒,導(dǎo)致他在升階和升級后變得很強而可堪一用呢?我們經(jīng)過觀察涩僻,大致排除了這種因素的干擾——三大存量屬性和三大固有屬性之間高度正相關(guān)缭召,也就是說,一個本來就不夠優(yōu)秀的武將逆日,也不會在升階升級后嵌巷,相比較于基礎(chǔ)戰(zhàn)力本來就更高的武將有質(zhì)的飛躍)。
戰(zhàn)斗的其他影響因素:只知道武將戰(zhàn)力還不夠
有了上圖的84名武將的完整戰(zhàn)力信息室抽,我們似乎有個初步方案了:選取5個戰(zhàn)力最高的武將出場搪哪,不就行了嗎?剩下的任務(wù)不就是不斷地砸錢升級買裝備坪圾,讓“基礎(chǔ)戰(zhàn)力”充分增長為強大的“總計戰(zhàn)力”晓折?
然而這種毫無技巧性和操作感可言的出將方案,以及100%的“只有充錢才會變強”的理念兽泄,一定很快就會讓玩家掃興漓概。并不意外的是,影響戰(zhàn)斗勝負(fù)的除了前面提到過的“總計戰(zhàn)力”病梢,還有如下四個因素胃珍;而第四個因素“武將聯(lián)協(xié)”,也是本文的分析主題飘千。
因素一:武將類型——哪個才是核心屬性堂鲜?
《戰(zhàn)國》的武將非常多元:正如“將相和”的故事里,藺相如總攬朝政护奈,廉頗把控軍務(wù)缔莲,一文一武相得益彰,才使得趙國強盛霉旗。所以如“藺相如”一般的名臣痴奏,在游戲中被賦予了“策士”的武將類型蛀骇;而如“廉頗”一樣的猛將,則被賦予了“勇將”读拆。除此之外擅憔,我們還有“將軍”和“智將”兩種武將類型。這四種武將類型的根本區(qū)別檐晕,其實在于他們的“核心屬性”不同:
策士:核心屬性謀略暑诸,如孫臏、藺相如
智將:核心屬性謀略辟灰,如吳起个榕、樂毅
勇將:核心屬性力量,如白起芥喇、廉頗
將軍:核心屬性統(tǒng)帥西采,如楚莊王、信陵君
在這里介紹“核心屬性”的原因與上一節(jié)介紹“固有屬性”頗有關(guān)系:我們從前文已經(jīng)看到“樂毅”是“智將”類型继控,謀略是他的核心屬性械馆;而恰巧的是他的三個固有屬性中,智力也是最高的武通。這意味著霹崎,樂毅在未來的升階升級中,其“謀略”在戰(zhàn)力中所占的比重將越來越大(一般說來厅须,武將基礎(chǔ)戰(zhàn)力中的核心屬性已經(jīng)占超過1/3的比重仿畸,而隨著升級升階食棕、有針對性的配置裝備朗和,“核心屬性/戰(zhàn)力”這一比值將逐漸升高到40%左右)。我們先記住這一個指標(biāo)簿晓,和“40%”這個估計值眶拉,它在第四個因素“武將聯(lián)協(xié)”中將發(fā)揮作用。
因素二:戰(zhàn)斗類型——兵種的克制憔儿、布陣的禁忌
《戰(zhàn)國》武將的復(fù)雜性體現(xiàn)在他們不止有一個label:除了“武將類型”之外忆植,每個武將還具備各自的“戰(zhàn)斗類型”。具體來說谒臼,有遠(yuǎn)戰(zhàn)類型的弓兵朝刊,以及近戰(zhàn)類型的戟兵、盾兵蜈缤、騎兵四種拾氓,而他們之間也有著戰(zhàn)斗時的克制關(guān)系:
弓兵:遠(yuǎn)程殺傷敵人,被其他三個兵種克制底哥,但如果不成為對方的直接進(jìn)攻目標(biāo)(比如躲在陣型的后排)咙鞍,殺傷力巨大房官〗裳郑“策士”經(jīng)常從屬于這種戰(zhàn)斗類型酒觅,如孫臏、管仲话肖。
戟兵:近戰(zhàn)疲酌,克制騎兵蜡峰。將軍、勇將經(jīng)常從屬于該類型朗恳,如龐涓事示、王翦。
盾兵:近戰(zhàn)僻肖,克制戟兵肖爵。將軍、勇將臀脏、智將經(jīng)常從屬于該類型劝堪,如齊桓公、項燕揉稚、范蠡秒啦。
騎兵:近戰(zhàn),克制盾兵搀玖。勇將余境、智將經(jīng)常從屬于該類型,如白起灌诅、樂毅芳来。
“戰(zhàn)斗類型”不僅讓我們在排兵布陣時有針對性(比如盡量用自己的騎兵對上對面的盾兵),更重要的是讓我們的選將策略幾乎遵循了一條鐵律:因為戰(zhàn)斗分左中右三路猜拾,所以基本上我們一定要排出3近戰(zhàn)+2弓兵的陣型即舌。
如果參考上文中“戰(zhàn)斗陣型”一圖,可以發(fā)現(xiàn)我排出了1騎兵(白起)+2戟兵(秦孝公挎袜、王翦)+2弓兵(商鞅顽聂、張儀)的陣型。道理是顯而易見的:如果你排出4個近戰(zhàn)盯仪,則有一個近戰(zhàn)則在戰(zhàn)斗開始尚未減員時紊搪,處于后排而無法攻擊到對手;如果只排出2個近戰(zhàn)全景,那么又勢必有一路的后排弓兵被暴露于敵人的近戰(zhàn)直接攻擊之下耀石。
因此,在玩家長期的對戰(zhàn)中蚪燕,大家普遍遵循了3近戰(zhàn)+2弓兵的策略娶牌。所以我們的選將又有了很強的一條Constraint——你不能因為自己擁有3個戰(zhàn)力上佳的弓兵就把他們?nèi)缮蠄霰记常惚仨毶釛壠渲幸粋€,換為一個不那么強的近戰(zhàn)武將去前排當(dāng)肉盾诗良。
因素三:技能配合——國家隊效應(yīng)
我不是一個狂熱的游戲迷汹桦,但“可玩性”這個概念對于各個階層的玩家應(yīng)該都有共通之處。在早期的一些簡單的回合制策略型游戲中鉴裹,有一種模式便是玩家只要負(fù)責(zé)派出合適的陣容舞骆,而計算機會自動模擬戰(zhàn)斗的過程和結(jié)果。無疑玩家在“戰(zhàn)斗過程”中是幾乎沒有參與度的径荔。而《戰(zhàn)國》作為2018年的游戲自然不會容忍自己如此“復(fù)古”督禽。相反,在每一場5v5的戰(zhàn)斗中总处,玩家可以操縱自己的某一名武將有代價(集氣/攢藍(lán))地運用技能(放大招)狈惫,從而極大地增加了戰(zhàn)斗的樂趣。
由于每個武將的技能有著諸多維度的不同(需要集氣的點數(shù)鹦马、作用對象胧谈、作用范圍、作用時間荸频、作用效果等)菱肖,如果你想擊敗一個強勁的對手,可能需要特別調(diào)用自己的某個“奇兵”武將(盡管他未必是你的Best-5之一)旭从。
比如趙國名將李牧的技能是——強力傷害敵方后排弓兵稳强,那么當(dāng)我們需要快速消滅對方強大的后排(比如擁有AOE技能的弓兵商鞅)時,讓李牧出戰(zhàn)就是一個極佳的選擇和悦。
但是我想強調(diào)的還不是這種特殊技能效果退疫。游戲中其實更有趣的是一種“技能配合”∧∶觯《戰(zhàn)國》這款游戲中的武將分屬于十個勢力(韓趙魏楚燕齊秦吳越周)蹄咖,而幾乎每個勢力的國君(比如秦-秦始皇/秦昭襄王褐健,楚-楚莊王)的技能都是特殊的付鹿,國君的技能可以加成同時出戰(zhàn)的本國武將,讓我們看下圖“趙武靈王”的例子:
在戰(zhàn)國中期躍居中原一霸的趙國蚜迅,曾在趙武靈王的統(tǒng)領(lǐng)下改革軍政舵匾,向北方游牧民族學(xué)習(xí)“胡服騎射”,從而大大增強了軍隊的戰(zhàn)斗力和國力谁不。而我們發(fā)現(xiàn)這位被譽為“黃帝之后第一偉人”的圣君在《戰(zhàn)國》中坐梯,也有著特有的“只對趙國武將生效”的強力加成技能。換句話說刹帕,如果我的出場武將里已經(jīng)定下了廉頗吵血、李牧谎替、藺相如,那么我的下一個人選最好就是能夠讓這三位都受益的趙武靈王蹋辅;反過來钱贯,當(dāng)我對組隊一籌莫展之時,我甚至也可以先決定以哪個國家的國君為核心來組隊(正如我選擇以秦孝公為核心組建了一套秦國陣容侦另,當(dāng)然秩命,我沒有選擇秦始皇的原因也很簡單——我買不起)。
所以我們不難想象的是褒傅,這種“國家隊效應(yīng)”是可以充分被考慮進(jìn)“出場陣容決策”中的弃锐;然而國君技能的配合性,其實還只是“國家隊效應(yīng)”泛濫的其中一個原因而已——更重要的原因殿托,是第四個影響勝負(fù)的因素:武將聯(lián)協(xié)霹菊。
下表里我們給出了部分武將在因素一、二支竹、三的值——如果你夠敏銳浇辜,你應(yīng)該知道這些因素在一個“完美出場陣容決策”里都應(yīng)該被考慮到。
因素四:武將聯(lián)協(xié)——最強的陣容 ≠ 5個最強的武將
戰(zhàn)國時代的故事多如牛毛:從三家分晉到魏霸西河,從田氏代齊到圍魏救趙叹坦,從吳越相爭到合縱連橫熊镣,從長平之戰(zhàn)到一統(tǒng)天下——這是一段波瀾壯闊的史詩,而寫就它的風(fēng)流人物也往往相互關(guān)聯(lián):典范君臣(齊桓公與管仲)募书、將相之和(藺相如與廉頗)绪囱、師徒情深(鬼谷子與蘇秦)、高山流水(鐘子期與伯牙)莹捡、竊符救趙(信陵君與平原君)鬼吵、伉儷傳奇(干將與莫邪、西施與范蠡篮赢、羋月與秦惠文王)齿椅。甚至有些故事,雖然不像剛才列出的這些可被稱為“佳話”启泣,卻也是浩瀚歷史里的耀眼星辰:荊軻刺秦(荊軻與秦始皇)涣脚、兔死狗烹(范蠡與文種)、縱橫捭闔(蘇秦與張儀)寥茫、同窗相殺(龐涓與孫臏)遣蚀。
有太多這樣的故事了——與其把故事主人公之間的交情稱為“聯(lián)協(xié)”,倒不如“羈絆”來得更合適。也是因此芭梯,《戰(zhàn)國》沒有放棄一個在游戲中放大歷史情懷的機會:武將聯(lián)協(xié)體系儼然成為了選擇出場陣容時的重要考量险耀。這個體系讓5名出場武將的總戰(zhàn)力隨著一定規(guī)則進(jìn)行大幅加成,這讓玩家們了解到:并不是5個戰(zhàn)力最高的武將都出場玖喘,總戰(zhàn)力就會最高胰耗;必須考慮的,還有武將之間的“羈絆”加成芒涡。讓我們看看“荊軻”的武將聯(lián)協(xié):
如果“荊軻”和“秦始皇”被排進(jìn)了一套出場陣容里,荊軻的“力量”屬性則會升高20%费尽。我們在“因素一”中分析過赠群,武將的“核心屬性”占總戰(zhàn)力的比例約為40%,也就是如果荊軻的初始基礎(chǔ)戰(zhàn)力為100旱幼,那么如果秦始皇在場查描,戰(zhàn)力會成為108(100+100*40%*20%)。請不要小看這8個百分點的提升:5個武將之間最多可以有20條聯(lián)協(xié)(有不少“雙向聯(lián)協(xié)”的案例柏卤,比如藺相如與廉頗)冬三,而如果每條聯(lián)協(xié)可以加成8個點,一個總戰(zhàn)力500的陣容可以因為“武將聯(lián)協(xié)”這一項而被加成為660缘缚!
在這個充值的邊際收益快速遞減的游戲里勾笆,越是大R玩家(當(dāng)然,土豪不論桥滨,這里指的仍然是希望錢花到刀刃上的玩家)窝爪,越是珍惜在游戲開區(qū)三個月后(提高1個百分點的總戰(zhàn)力甚至都需要上百RMB的投入)任何一個低成本提高戰(zhàn)力的機會。
我們記錄了游戲中84個武將之間齐媒,產(chǎn)生的共351條“聯(lián)協(xié)路徑”整理如下表所示:
當(dāng)你留意到蒲每,齊桓公可以給管仲25%的謀略加成,而管仲可以同時給齊桓公25%的統(tǒng)帥加成時喻括,你還覺得“武將聯(lián)協(xié)”是一個不值一提的因素嗎邀杏?
小結(jié)與后文預(yù)告:這篇分析究竟要做什么?
注意唬血!沒有興趣或耐心看上面5000字的讀者望蜡,請直接看下面!
正如籃球隊教練需要選擇一套合適的首發(fā)陣容一樣刁品,我們在《戰(zhàn)國》游戲中決定一套5個人的戰(zhàn)斗陣容時泣特,面臨一個更大的選擇空間(84名備選人)。與籃球類似挑随,我們需要考慮到隊員的個人能力(基礎(chǔ)戰(zhàn)力)、在場上所打的位置(戰(zhàn)斗類型)及隊員之間的配合默契度(武將聯(lián)協(xié))。稍有經(jīng)驗的讀者應(yīng)該可以猜得出了——這是一個最優(yōu)化問題兜挨,而且是一個整數(shù)規(guī)劃問題膏孟。
這個整數(shù)規(guī)劃問題的復(fù)雜性在于雜糅進(jìn)了社交網(wǎng)絡(luò)(即武將聯(lián)協(xié)系統(tǒng))——一個節(jié)點(node)的貢獻(xiàn)不僅取決于自身,也很大程度上受到與之相連的邊(edge)的影響拌汇。也許有讀者覺得沒有必要對一個游戲如此serious柒桑,但其實我們生活的世界、我們關(guān)心的績效噪舀,都在社交網(wǎng)絡(luò)的影響之下魁淳。這篇分析的目的,并不真的僅僅為了打一款手游省幾塊錢与倡,而是要設(shè)計一個模式界逛,為“社交網(wǎng)絡(luò)下的整數(shù)規(guī)劃”決策問題做一個“套路”。我們將借助社交網(wǎng)絡(luò)分析工具(Gephi)和編程語言(Python)來實現(xiàn)決策支持(Decision Support)的過程纺座。
在上篇(即本文)里息拜,我們已鋪墊了所有必要的背景。中篇將精確地刻畫這個問題净响,并從社交網(wǎng)絡(luò)分析(SNA)的角度給出有用的發(fā)現(xiàn)少欺。而在下篇,我們將用Python實現(xiàn)對這個問題的終結(jié)馋贤。