游戏战斗力量模型量化
戰斗力量化是戰斗數值設計中極為重要的一環,戰斗數值中涉及平衡性的設定基本都會以戰斗力為衡量標準。本文以角色戰力=EHP*EDPS這一表達式為抽象模型,嘗試量化單個角色的戰斗能力,介紹了將各類屬性和角色技能量化為戰斗力的方法,并分析了該量化方法的準確性與普適性。
抽象模型的建立
EHP=EDPS*TIME——這是戰斗數值的平衡性設計的關鍵等式,也是戰斗能力量化的核心與起點。假想A、B兩個角色,雙方同時出手,同時死亡,則有如下表達式:
EHP(A)/EDPS(B)=TIME=EHP(B)/EDPS(A)
由此,我們可以得到單個角色戰斗能力的表達式:
角色戰斗力=EHP*EDPS
對單個角色戰斗能力的量化,便是將該角色各個維度的屬性與能力,轉化為EHP與EDPS的過程。
值得澄清的是,對戰斗能力進行量化,其目的主要在于提供一個角色能力的衡量依據,從而更好地指導角色及職業設計,而非機械性地將各類角色的能力進行絕對平衡。一般來說,“特性>平衡”或是“平衡>特性”,取決于游戲的核心玩法是1VS1的單人競技,還是多VS多的團隊配合戰;取決于游戲的基調是更強調策略搭配還是更強調數值比拼。而就個人喜好而言,筆者更喜歡強職業區分的游戲,也更傾向于“特性>平衡”的數值設計。
注:文中表述的戰斗力,指的是角色實際戰斗能力的抽象數學模型,而非游戲中顯示的角色面板戰力。
各類屬性及能力的轉化
1、常規攻擊屬性與防御屬性
一般來說,在衡量戰斗能力時,我們會將命中率、暴擊率等攻擊類屬性轉化為EDPS,將免傷率、閃避率、招架率等防御類屬性轉化為EHP。但是不少策劃在屬性轉化時選用的公式非常隨性,有的甚至對每個游戲都使用了統一的表達式。
在筆者的《攻擊判定流程研究》一文中,我們已經推演出:基于不同的攻擊判定流程,EHP和EDPS的表達式是不同的。值得提前說明的是,文中大多數的EHP和EDPS表達式僅為應用乘法傷害公式時的示例。
瀑布算法下:
若命中閃避分兩次判定:
EHP=HP/(1-免傷率)/(1-閃避率)/(1-招架率)
EDPS=DPS*命中率*[1+暴擊率*(暴擊傷害倍率-1)]
若命中閃避合并判定:
EHP=HP/(1-免傷率)/(敵方命中率-閃避率)/(1-招架率)
EDPS=DPS*(1+暴擊率*(暴擊傷害倍率-1))
圓桌算法下:
EHP=HP/(1-免傷率)/(1-閃避率-招架率)
EDPS=DPS*[命中率-敵方閃避率-敵方招架率+暴擊率*(暴擊傷害倍率-1)]
注:閃避、招架>暴擊>普通命中,且各狀態發生概率之和未超過圓桌大小
在計算角色的戰斗能力時,其計算式務必與攻擊判定流程匹配,并不是在所有游戲中EHP和EDPS的計算都有統一的表達式。
2、技能
角色的攻擊屬性通過技能這一載體對敵方目標造成傷害(普攻也可以理解成一種技能)。在量化角色的攻擊能力時,可以以標桿輸出技能為衡量基準,也可以嘗試制定一個在特定的戰斗時長中,角色技能的施放組合(例如:法師在45秒的PVP戰斗內施放8次寒冰箭、4次烈焰沖擊、2次冰環、1次冰錐;術士在5分鐘的PVE戰斗中使用混亂箭、獻祭、燒盡、點燃的循環等等),并不斷實測修正一個組合。用這個技能組合提供的傷害量之和除以戰斗時長,可以得出角色在該戰斗情景下的EDPS能力。
除此之外,單個技能的EDPS,也能通過計算量化。
(1)、標桿輸出技能
無論是魔獸世界中戰士的英勇打擊(60、70版本),還是暗黑3中野蠻人的先祖之錘,它們或是附加在下一次普攻之上,或是以該技能替代普攻打出,都可以理解為一次威力增幅版的普通攻擊:
類普攻技能的EDPS=技能傷害/攻擊間隔
而讀條施法的技能,也可以依此抽象出單位時間內的EDPS:
讀條施法技能的EDPS=技能傷害/施法時間
值得思考的是,施法時間越長的技能,其施放失敗的可能性越大(被打斷,目標跑出施法距離等),因而在設計的時候往往會補足額外的傷害量,即所謂的高風險高回報。所以,在量化戰斗力時,同樣需要進行適當的削弱還原。
至于補足傷害量是多少,以及施法時長超過多少的技能需要補正,均需要反復測試,不能一概而論,因為它與其他的相關設計及游戲的特點密切相關,例如:游戲中各種職業、怪物的打斷技能數量與施放頻率,受到傷害是否造成施法延遲,游戲的類型,操作的流暢性,服務器的平均延遲時間等等。同理,量化戰斗力時需要削弱多少,也可能需要多次測試。
(2)、瞬發輸出技能
若是沒有公共CD的設定,則瞬發技能帶來的EDPS增幅具有如下表達式:
瞬發技能的EDPS=技能傷害*(TIME/技能CD+1)/TIME
注:戰斗剛開始先施放一次
若是有公共CD的設定,則:
瞬發技能的EDPS=(技能傷害-公共CD時長*標桿技能的EDPS) *(TIME/技能CD+1)/TIME
注:當然也可以按照先前設定的技能施放組合中設置的次數計算。
(3)、傷害吸收技能
顯而易見,傷害吸收類技能可以簡單地換算為EHP:
傷害吸收技能的EHP =傷害吸收量/(1-角色免傷率)
注:此處設計為受到的傷害先被角色免傷減免一部分,當然也可以設計為不受減免
(4)、控制型技能
控制技能可以理解為對戰斗時間的延長,即在控制技能持續的時間內,我方受到的傷害降低,甚至可以單方面地對敵方造成傷害。通過我方EHP=敵方EDPS*TIME的表達式,可以理解為削弱了敵方的EDPS,進而可以變相增加了我方的EHP:
換算后的我方EHP增幅=敵方EDPS*控制技能削弱百分比*控制持續時間
注:降低攻擊速度的控制技能相當于百分比削弱了敵方的DPS,暈眩等技能相當于在這段時間內敵方的DPS降為0。
(5)、友情提示
技能可以量化為戰斗能力,但其實在常規的數值設計流程下,應該以角色戰力為出發點,進行技能的設計。我們可以將EHP轉化為控制技能和傷害吸收技能,將EDPS轉化為物理技能、施法時間不同的各類傷害技能和瞬發技能等。事實上,戰斗能力相近的屬性模板,通過各具特點的技能設計,可以衍生出多個特性鮮明的職業。
3、格擋屬性的計算——固定免傷與百分比免傷
常見的格擋屬性有兩種不同的設計:
A、 成功格擋后百分比免傷
這種格擋效果相當于自身免傷的一部分,只不過是概率觸發的:
瀑布算法下:
EHP=HP/(1-免傷率)/(1-閃避率)/(1-招架率)(1-格擋率*格擋免傷百分比)
圓桌算法下:
EHP=HP/(1-免傷率)/(1-閃避率-招架率-格擋率*格擋免傷百分比)
應用實例:魔獸世界、龍珠
B、??成功格擋后減免固定值的傷害
這種格擋效果可以抽象為對敵方EDPS的削弱,也可以進而換算為我方EHP的增幅:
敵方EDPS削弱值=格擋免傷值*格擋率/敵方攻擊間隔
換算后的我方EHP增幅=格擋免傷值*格擋率*TIME/敵方攻擊間隔
應用實例:暗黑3
注:這個算法不能算很嚴謹,極端情況下,格擋免傷值大于了敵方的EDPS,溢出的部分就是浪費的。但大多數情況下仍是適用的。
可以看出,不光格擋屬性,類似格擋效果的天賦、被動免傷技能,均可以按此計算。
4、HPS的計算
這里所指的HPS包括:持續治療的HOT類技能、每秒生命回復、擊中生命回復等等。這類效果同樣可以抽象為對敵方EDPS的削弱:
敵方EDPS削弱值=我方HPS
也可以將HPS專門看作生命回復能力,代入EHP=EDPS*TIME的戰力平衡等式進行計算:
角色HP=[敵方EDPS*(1-免傷率)*(1-閃避率)*(1-招架率)-HPS]*TIME
角色EHP= [敵方EDPS-HPS/(1-免傷率)/(1-閃避率)/ (1-招架率)]*TIME
注:攻擊判定流程為瀑布算法
角色EHP=[敵方EDPS-EHPS]*TIME
通過這個等式我們可以發現一些微妙的情況:
HPS的效果會被人物的免傷、閃避等防御屬性放大,設計其數值時務必將這一點納入考量,必要時應加入降低治療效果的屬性應對之。
換言之,當EHPS(被增幅后的HPS)大于敵方角色的EDPS時,玩家角色永遠不會死。 正如同暗黑3早期版本中,秘術師通過能量護盾的天賦搭配高秒回裝備,只要不被秒殺,瞬間就回滿了。國產游戲由于強調付費成長,當超R撐高了防御屬性后,HPS的效果被大幅放大,就可能使得這類屬性或是能治療的職業過于強勢的情況。應提前考慮應對之策,以免職業平衡嚴重崩壞。
戰斗力量化的準確性與普適性分析
在上一塊內容中,我們將角色各個維度的屬性和能力轉化成了與EHP和EDPS相關的表達式,在大功告成之際,我們是否可以認為,剝離操作等人為因素、網絡延遲等不可抗力因素,每個角色的戰斗能力都已經轉化為了精準的數字表達了呢?
似乎在部分數值策劃的認知之下,角色戰斗能力=角色EHP*角色EDPS這一表達式僅與己方角色的屬性相關,能夠完美地反應出一個角色的絕對戰斗力。據筆者觀察,這種認知在各種論壇的數值版塊廣泛存在,而許多游戲設計者論壇推送的“深度好文”也似乎都沒有深入地探討過這一點。
在這一模塊,讓我們暫時從幻想中抽身出來,審視一下以這個模型量化出的戰斗力的準確性與普適性。
1、對抗屬性的參與計算
其實細心推演一下就能發現,在角色EHP和EDPS的表達式中,有大量敵方的屬性參與了計算。現階段的游戲中對抗屬性的存在隨處可見(暴擊與抗暴、閃避與精準、護甲與穿甲、特攻與特防等等)。只要有對抗屬性的存在,EHP或是EDPS的表達式必然與敵方屬性相關,幾乎不可能剝離得開,也就意味著玩家角色的戰斗力隨敵方屬性的變化而變化。
游戲的數值體系中若存在對抗屬性,則角色的戰斗力會隨對抗目標的屬性變化而變化,不具有普適性。
2、攻擊判定流程
假設在一個沒有任何對抗屬性存在的數值體系,是否可以認為以EHP*EDPS表達的角色戰斗能力具有普適性呢?也未必。
(1) 圓桌算法
若攻擊判定流程采用圓桌算法,一定無法抽象出僅與己方屬性相關的EHP和EDPS。由于只有一次狀態判定,所以必然無法剝離攻守雙方的屬性對抗,EHP和EDPS的計算式依賴于敵方屬性。
這里所指的無法剝離的屬性,已經不是指精準與閃避、暴擊與抗暴的成對對抗的屬性,而是指:我方EHP計算式與敵方命中率相關,我方EDPS計算式與敵方防御屬性相關
EDPS=DPS*(命中率-敵方閃避率-敵方招架率+暴擊率*(暴擊傷害倍率-100%))
EHP=HP/(1-免傷率)/(敵方命中率-我方閃避率-我方招架率)
(2) 瀑布算法
即便采用瀑布算法,若是將命中與閃避的判定合并擲骰(將命中率與閃避率合并計算出實際擊中概率再進行擲骰判定),則我方戰斗力的表達式仍然與敵方的屬性脫不了關系。
EDPS=DPS*(命中率-敵方閃避率)(1+暴擊率*(暴擊傷害倍率-100%))
EHP=HP/(1-免傷率)/(敵方命中率-我方閃避率)
攻擊判定流程的每一次擲骰判定都沒有對抗目標的屬性參與計算,角色的戰斗力量化才可能具有普適性。
3、傷害計算公式
若是不設計對抗屬性,同時選用瀑布算法進行攻擊判定,一次擲骰只擲單方事件,且不摻雜對抗目標的屬性,那么對其戰斗力的量化就是絕對準確的了嗎?仍然未必。
(1)、減法公式:傷害=我方攻擊-敵方防御
顯而易見,若是游戲的傷害計算使用減法公式,一定無法抽象出與敵方屬性無關的EHP或EDPS,傷害=攻-防的計算過程與對抗雙方的屬性均相關。
(2)、乘法公式:傷害=我方攻擊*(1-敵方免傷率)
在乘法公式的體系下,可以得出與敵方屬性無關的EDPS、EHP表達式。
(3)、除法公式:傷害=我方攻擊*我方攻擊/(我方攻擊+敵方防御)
除法公式的體系下,敵我雙方的屬性在傷害計算的環節仍然混雜在一起,無法剝離。
傷害公式若為減法或除法,則角色的戰斗力會隨對抗目標的屬性變化而變化,不具有普適性。
4、HPS屬性
HPS屬性的作用方式與減法體系的傷害計算方法相當,必然與敵方屬性相關。
將HPS的效用納入計算時,角色的戰斗力會隨對抗目標的屬性變化而變化,不具有普適性。
5、控制技能
無需贅述,通過控制敵方產生效果的技能,其戰斗能力的量化怎能不與敵方屬性相關……
若考慮控制類技能,則角色的戰斗力會隨對抗目標的能力變化而變化,不具有普適性。
6、潑冷水的總結
只有在EHP和EDPS的表達式僅與己方屬性相關的情況下,通過文中所述的方式量化出的角色戰斗能力才是最具普適性和準確性的絕對數值;其他時候,角色的EHP和EDPS計算基本都是以預設的敵人為基準的一個參考值。
而EHP和EDPS的表達式僅與己方屬性相關的必要條件有:
攻擊判定流程中,單次擲骰只有單方的屬性參與計算。
傷害結算公式為乘法體系。
應用實例:暗黑3中攻擊判定流程采用了瀑布算法,傷害公式為乘法公式,并且不存在對抗屬性,在將擊回、秒回等算作回復能力(EHPS)的情況下,玩家角色的EHP和EDPS僅與己方屬性相關,因而才可以在面板顯示,以方便玩家選擇裝備和比較屬性價值。
看到此處,是否有一股絕望與悲涼涌上心頭?平常拿來即用的EHP和EDPS表達式,所量化出來的戰斗能力不過是一個基于特定敵人的參考值,幾乎永遠都不具備普適性。這并不是該模型本身的缺陷導致的,事實上在筆者的認知之下,這個量化模型已經是適用性最高,同時也是模擬得最為準確的了。
注:如果你知道更為精準、適用性更廣的戰斗能力量化方法,請不吝賜教~
7、暖心的雞湯
我們已經得出:在絕大多數情況下,對角色戰斗能力的量化,需要以預設的敵人為參照系,計算得出的也僅僅是參考值。那么,對角色戰斗能力的計算,是不是徒勞無功的,又是否還有進行的必要呢?
答案十分確定——非常有必要!因為即便是參考值,只要設置了合適的參照系,就具有極為重要的意義。作為數值的設計者,我們無法左右玩家的行為,無法保證玩家按照我們的預期進行游戲,自然也就無法保證玩家角色的各維屬性按設計者規劃的方式穩步成長。
我們雖然無法控制玩家角色在成長過程中每一次戰斗的體驗,但我們能夠控制玩家角色戰斗能力的極限。通過對玩家角色EHP、EDPS、EHPS極限值的控制,我們可以限定不同階段玩家角色的能力范圍,我們可以把控RMB玩家與免費玩家間的能力差距,我們可以保證玩家的行為,無法越界。
無論何時,我們都應牢牢握有對屬性和技能極限值的把控。作為戰斗數值的設計者,我們非但應該確保角色能力的投放有明確的極限,還必須能清晰地模擬出角色獲得極限戰力時的戰斗情況。而這,正是戰斗力量化模型的實際應用價值所在。
應用這種極值設計法,或許無法做到對玩家體驗的精準定制,但至少能保證數值體系的穩固和有序。
8、一點點吐槽
曾見過不少論壇里的教學帖,將EHP與EDPS的算法講的繪聲繪色,卻只字未提相應的攻擊判定流程設計。也曾見過不少的數值策劃,甚至沒有搞清楚一款游戲的整體數值架構,就用統一的EHP、EDPS計算式將角色戰斗力分析得風生水起。這種文章和這種風氣其實害人匪淺,也曾使我一葉障目不見泰山。
筆者絕不否認有一些經驗豐富的大佬僅憑feeling就能設計出體驗絕佳的游戲數值,但我們大多數的普通人,是否應該放下這種似懂非懂的治學態度,審問之,慎思之,明辨之。
寫在最后
筆者剛入行的前半年來,四處瀏覽游戲設計網站數值區的文章,發現一個有趣的現象:那些膚淺空泛到不值一讀的文章,往往有著氣吞山河的宏大標題,同時正文的字里行間無不透露出身為規則制定者的隱隱自傲。這可能是因為國內市場收入導向的大環境,將游戲的付費數值設計的重要性抬到了前所未有的高度。
但那些真正有價值的文章,反而用最平和的措辭,傳遞了經過實戰洗禮才得出的真知灼見。隨著對數值設計理解的不斷深入,我越發感受到前人經驗的可貴。其可貴之處,不光在于不斷實踐反復驗證得來的經典模型與成熟設計,更在于對設計理念的革新與重塑。
在入行之初,我的leader對我說:
數值設計若是只停留在EXCEL表格中,永遠無法有大作為。
在我初窺門徑之際,我的leader又對我說:
身為數值策劃,能夠掌控的東西其實很少。但若真能牢牢掌控住那些東西,也就足夠了。
一位卓越的數值策劃,正是清楚地明白自己無法全知全能,才構建出了虛擬世界的堅實邊界。
正是在這樣的引領之下,我清晰地認知了理論推演的局限;明白了再優秀的模型也無法精準模擬一切;知道了所有優秀的項目,都經歷過無數次從實測到修正模型的循環往復。
數值只是工具,其依托于系統,也服務于系統。既然身處服務業,不如拋下那份“數值凌駕一切”的自傲,拾起服務行業的基本素養——一顆謙卑的心。
試圖掌控一切,不過只是妄念。
?
總結
以上是生活随笔為你收集整理的游戏战斗力量模型量化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 声笔码6.00版使用指南
- 下一篇: 数据结构试卷及答案(五)