深度發(fā)掘的第一步,機制與計算(1)——以英雄聯(lián)盟“抗性”與“穿透”機制為例
文章中所有數(shù)據(jù)取小數(shù)點后一位
游戲的樂趣是多樣的,操作,排名,收集,榮譽,故事,沉浸體驗,自定義,合作,策略,甚至恐懼,這些都可以是玩家游玩一款游戲是能夠得到滿足,獲取快樂的地方。
本篇以“英雄聯(lián)盟”中的“抗性”與“穿透”機制為例,給各位講解關(guān)于游戲的機制以及數(shù)據(jù)計算方面的內(nèi)容,希望能給各位帶來一些平常游戲時不曾留意到的內(nèi)容。如果可以的話最好能起到拋磚引玉的效果,引發(fā)各位關(guān)于游戲獨到的理解與思考。
?前排提示:本篇以網(wǎng)游“英雄聯(lián)盟”為基礎(chǔ),其中有大量的計算過程,但是并不困難,不會有任何復(fù)雜的要素,請耐心看完,希望看完后你會有自己的理解與思考。

“護甲”與“魔法抗性“統(tǒng)稱為“抗性”,起到減免受到傷害的效果。
其效果相同,所以這里僅以“護甲”為例:
“護甲”能夠減免的傷害由以下公式計算


魔法傷害減免=魔抗/(100+魔抗)
在不考慮對方任何穿透的情況下受到傷害的公式如下

代入傷害減免公式后

例如:當(dāng)你有300點護甲
傷害減免=300/(100+300)=75%
當(dāng)你受到數(shù)值為100點的物理傷害時(不考慮對方的穿甲),你會失去100*(1-75%)=25點生命值。
魔法抗性針對魔法傷害完全同理。

↑護甲數(shù)值造成的差別↓

護甲穿透與法術(shù)穿透則對應(yīng)削弱上面二者減免的效果
以護甲穿透為例:
“護甲穿透”分為“固定穿透”與“百分比穿透”
例如“鋸齒短匕”和“多米尼克領(lǐng)主的致意”分別提供這兩種穿甲效果


那么實質(zhì)上目標所承受傷害時的護甲值的計算公式就如下

這里要注意“穿甲”與“固定穿透無視的護甲值”是不相等的,其二者的數(shù)值與攻擊者等級有關(guān)
其二者數(shù)值上的關(guān)系公式如下

再根據(jù)之前的公式,就得到目標受到傷害時計算完穿甲后的護甲值公式

游戲內(nèi)測試:
1
攻擊力100
穿甲0
百分比穿透0%
護甲10

最終護甲值=10*(1-0%)-(0.6*0+0.4*0*1/18)=10
最終傷害值=100*(1-(10/(100+10)))=90.9
2
攻擊力100
穿甲0
百分比穿透0%
護甲20

最終護甲值=20*(1-0%)-(0.6*0+0.4*1*1/18)=20
最終傷害值=100*(1-(20/(100+20)))=83.3
3
攻擊力100
穿甲0
百分比穿透20%
護甲20

最終護甲值=20*(1-20%)-(0.6*0+0.4*0*1/18)=16
最終傷害值=100*(1-(16/(100+16)))=86.2
4
攻擊力100
穿甲10
百分比穿透0%
護甲20

最終護甲值=20*(1-0%)-(0.6*10+0.4*10*1/18)=13.8
最終傷害值=100*(1-(13.8/(100+13.8)))=87.8
5
攻擊力110
穿甲10
百分比穿透20%
護甲20

最終護甲值=20*(1-20%)-(0.6*10+0.4*10*1/18)=9.78
最終傷害值=110*(1-(9.78/(100+9.78)))=100.20
上面五個場景都是攻擊者1級的情況(回憶“穿甲”與“無視護甲值”的關(guān)系,然后看到第六個)
6
等級18
攻擊力158
穿甲10
百分比穿透0%
護甲20

最終護甲值=(20-(0.6*10+0.4*10*18/18))*(1-0%)=10
最終傷害值=158*(1-(10/(100+10)))=143.6
這個場景是等級18的情況
以上是有關(guān)“抗性”與“穿透”機制數(shù)據(jù)部分的解讀與證明,現(xiàn)在我們可以思考這些機制運作背后的含義,我在這邊舉一個例子:
我們仔細觀察“抗性”的計算方式

我們把這個公式換一個寫法

“DR”(傷害減免)=x/(100+x)
現(xiàn)在將這個公式畫出函數(shù)圖像

可以發(fā)現(xiàn),隨著護甲增長,傷害減免確實是在增長,
但是,從0到100點護甲,傷害減免提高了50%,而從100到200點護甲,傷害減免只增長了17%,并且傷害減免的增長速度不斷減慢,且在護甲到正無窮大時趨近于100%。
游戲中我們是不可能疊出那么高的護甲的。
可能有人這時會問,
難道說護甲疊的越高,我后面疊的護甲防御效果就越差,性價比就越低?

??????????????????????
這邊暫時不否認這種說法并且先把這個問題放一邊,
現(xiàn)在需要拋出一個新的名稱。
“有效生命值”
這么做是為了與“生命值”區(qū)別開來,
“有效生命值”指的是計算護甲的情況下單位能夠承受的傷害。(此時一概不討論護甲穿透)
或者也可以理解為一擊擊殺這個目標所需要的最小傷害(考慮抗性且不考慮穿甲)的數(shù)值即為“有效生命值”的數(shù)值。
按照原理,“有效生命值”的計算方法應(yīng)該如下

代入傷害減免的公式即為

如何理解這個概念,請看下面兩組gif
1


2


這兩次索拉卡的生命值都是535,
但是,
1號護甲是38,受攻擊10次,每次傷害56,
2號護甲是128,受攻擊17次(圖片大小限制沒放完),每次傷害34。
注意,二者生命值都為535。
則1號索拉卡的“有效生命值”=535/(1-(38/(100+38)))=738.3
2號索拉卡的“有效生命值”=535/(1-(128/(100+128)))=1219.8
現(xiàn)在我們將有效生命值以數(shù)學(xué)公式呈現(xiàn)出來
h為“有效生命值”,設(shè)“生命值”為1,“抗性值”為x
得到了這樣的公式

將其化簡得到

是的,這是一個一次函數(shù),圖像如下

在這個函數(shù)中我們就能發(fā)現(xiàn),每提升一點護甲都能使“有效生命值”提升百分之一“生命值”的數(shù)值。也就是說你能抗的傷害多百分之一。
堆高護甲所得到的收益,是來自于你所能抗住的傷害的總和,而非受到單次傷害的大小。
到這里是否你就能明白護甲提升過程中傷害減免降速的原因了,想必這也是設(shè)計師冥思苦想得到的機制。
在你苦惱自己堆了如此之高的護甲卻還是受到了不少的傷害時,你沒有注意到自己吸收的總傷害量已經(jīng)大幅提升了。
相對應(yīng)的游戲中的輸出位也可以通過了解對方的出裝方法使用不同的對策,
例如主百分比破甲來對付高護甲目標,或者是通過提高攻擊力以及固定數(shù)值的穿甲來快速解決低護甲的目標。
除了“抗性”部分,“穿透”的內(nèi)容也有自身特殊的用意,
比如說“穿甲”數(shù)值所對應(yīng)的“無視護甲”數(shù)值,其二者之間的關(guān)系,以及實戰(zhàn)時固定穿透與百分比穿透直接的取舍。
并且在此也并沒有討論“護甲穿透”與“有效生命值”之間的關(guān)系。
這些部分留給各位自行探索。
網(wǎng)上也有很多大佬解析其游戲機制之中的含義,大家可以自行挖掘。
內(nèi)容繁瑣復(fù)雜,
再次感謝看到這里每一位觀眾。
