基礎(chǔ)戰(zhàn)斗公式學(xué)習(xí)

一、減法公式

減法公式,通常設(shè)定為 己方造成傷害 = 己方攻擊 - 對(duì)方防御。

為了便于分析將模型簡(jiǎn)化,未考慮其他類型的攻擊和防御形式,但是基本的原理是一致的,相關(guān)變量如下:

Dam、Dam*:己方造成的傷害、對(duì)方造成傷害;

Atk、Atk*:己方攻擊、對(duì)方攻擊;

Def、Def*:己方防御、對(duì)方防御;

HP、HP*:己方生命值、對(duì)方生命值。

那么采用減法公式時(shí),傷害的表達(dá)式通常為 Dam = Atk - Def* 和 Dam* = Atk* - Def。

假定雙方的攻擊速度一致,均為每秒1次。

則每秒造成傷害DPS = Dam、DPS* = Dam*。

在此次戰(zhàn)斗中,己方存活時(shí)間Time = HP / DPS* = HP / ( Atk* - Def)( 暫不考慮Atk* < Def的情況 )。

這里假設(shè)己方防御Def為0的話,那么存活時(shí)間Time = HP / Atk* ,也就是說(shuō)由于防御Def的存在,己方的存活時(shí)間增加了,等效為己方生命值增加,可以用有效生命值EHP來(lái)表征等效防御之后的生命值,EHP = Time × Atk* = HP / ( 1 - Def / Atk* )。

那么,由防御所提升的生命值DefHP = EHP - HP = HP × Def / ( Atk* - Def ),在HP、Atk*不變的情況下,Def與DefHP之間的關(guān)系曲線如下:

可以看出來(lái),在采用減法公式時(shí),隨著防御Def的增加,其帶來(lái)的收益DefHP也是呈指數(shù)增加的,且在己方防御Def無(wú)限接近對(duì)方攻擊時(shí),提升的生命值DefHP接近無(wú)窮大。這就是減法公式帶來(lái)的第一個(gè)問(wèn)題,當(dāng)Def等于Atk*時(shí),Def帶來(lái)的收益為無(wú)窮大,即使承受再多次數(shù)的攻擊,由于不破防,受到的傷害都是0。

雙方的戰(zhàn)斗力可以通過(guò)兩者在一場(chǎng)戰(zhàn)斗中的存活時(shí)間進(jìn)行對(duì)比,如果己方存活時(shí)間比對(duì)方存活時(shí)間長(zhǎng),即Time > Time*,則認(rèn)為對(duì)方角色先死亡,己方的戰(zhàn)斗力比對(duì)方強(qiáng),也就是HP / ( Atk* - Def )> HP* / ( Atk - Def* )。

僅考慮攻擊大于防御的情況下,不等式可以轉(zhuǎn)化為HP ×( Atk - Def*)>HP* × ( Atk* - Def ),也因此可以用HP ×( Atk - Def*)即HP*DPS來(lái)評(píng)價(jià)戰(zhàn)斗力,戰(zhàn)斗力越高,存活時(shí)間越長(zhǎng)。這就導(dǎo)致了減法公式的第二個(gè)問(wèn)題,己方的戰(zhàn)斗力評(píng)價(jià)Pow = HP ×( Atk - Def*),居然跟對(duì)方的防御Def*有關(guān),導(dǎo)致無(wú)法準(zhǔn)確的確定玩家的戰(zhàn)斗力水平,而且不便于對(duì)多個(gè)游戲角色進(jìn)行戰(zhàn)斗力平衡。

當(dāng)然采用減法公式也有一些好處,比如:

1、公式非常簡(jiǎn)單明了,玩家每提升1點(diǎn)防御,都會(huì)對(duì)應(yīng)減少1點(diǎn)傷害;

2、類似防御之類的屬性,其價(jià)值隨著屬性的提高而增加,如果設(shè)計(jì)成消費(fèi)類的商品,玩家消費(fèi)越多提升越明顯,能夠激勵(lì)更多消費(fèi);

3、減法公式中戰(zhàn)斗力與戰(zhàn)斗對(duì)象有關(guān)系,可能出現(xiàn)a強(qiáng)于b,b強(qiáng)于c,而c又強(qiáng)于a 的情況,能夠據(jù)此設(shè)計(jì)一些元素或職業(yè)克制的情景。


二、乘法公式

乘法公式,通常設(shè)定為 己方造成傷害 = 己方攻擊 × ( 1 - 對(duì)方傷害減免)

Drr、Drr*:己方免傷、對(duì)方免傷,表示減免的傷害百分比

則DPS = Dam = Atk ×( 1 - Drr*? )

己方存活時(shí)間Time = HP / DPS* = HP / Atk* / ( 1 - Drr )

對(duì)方存活時(shí)間Time* = HP* / Atk / ( 1 - Drr* )

有效生命值EHP = Time × Atk* = HP / ( 1 - Drr )

如果Time > Time*,即HP / Atk* / ( 1 - Drr )> HP* / Atk / ( 1 - Drr* ),說(shuō)明己方戰(zhàn)斗力較強(qiáng),可以推導(dǎo)出乘法公式下的戰(zhàn)斗力評(píng)價(jià)為Pow = HP × Atk / ( 1 - Drr )= EHP × Atk。

很明顯發(fā)現(xiàn),在乘法公式下EHP和Pow都是由自身屬性決定的,與其他角色無(wú)關(guān),因此能夠非常準(zhǔn)確的判斷角色的戰(zhàn)斗力。

但是乘法公式同樣也會(huì)帶來(lái)一些問(wèn)題,首先Drr作為一個(gè)百分比屬性,存在增長(zhǎng)的上限100%,而且隨著Drr的增加,所帶來(lái)的EHP、Pow收益是急速增加的,如下圖所示:


當(dāng)Drr接近100%時(shí),帶來(lái)的收益接近無(wú)窮大。

考慮到這兩點(diǎn)原因,通常不會(huì)將免傷率Drr直接作為角色的屬性,而是通過(guò)防御Def進(jìn)行換算得來(lái)。

根據(jù) EHP = HP × 1? / ( 1 - Drr )和 Pow = HP × Atk × 1? / ( 1 - Drr ),

因?yàn)? - Drr < 1,得出1? / ( 1 - Drr )>1,所以通常的做法是:

設(shè)定1? / ( 1 - Drr )=? 1 + Def? /? f(lv) ,其中f(lv)為一個(gè)等級(jí)相關(guān)的函數(shù),作用后續(xù)分析。

則Drr = Def / ( Def + f(lv) )

EHP = HP × ( 1 + Def? /? f(lv) )

Pow = HP × Atk × ( 1 + Def? /? f(lv) )

可以看到,EHP、Pow與Def的關(guān)系是線性的,即在HP、Atk和等級(jí)不變的情況下,每提升1點(diǎn)Def,對(duì)應(yīng)的EHP、Pow將會(huì)獲得等比例的提升,對(duì)于屬性的價(jià)值就可以精確的把控。

接下來(lái),假設(shè)不引入f(lv),設(shè)定1? / ( 1 - Drr )=? 1 + Def,

則Drr = Def / ( Def + 1 )

EHP = HP × ( 1 + Def? )

Pow = HP × Atk × ( 1 + Def )

隨著Def的增加,其所帶來(lái)的Drr的收益越來(lái)越小,如下圖所示:


免傷率隨著防御的提升,快速接近100%,然后增速逐漸變緩,會(huì)讓玩家產(chǎn)生一種Def的收益逐漸減小的錯(cuò)覺,但是實(shí)際上EHP、Pow依然與Def呈線性關(guān)系,Def收益并沒有變化。

因此需要給分母加上一個(gè)函數(shù),使Drr = Def / ( Def + f(lv) )。

這樣就能夠減緩免傷率的增長(zhǎng)速度,保證在游戲等級(jí)范圍內(nèi),免傷率一直維持在一個(gè)便于玩家理解的數(shù)值范圍,且逐漸增加,而之所以采用與角色等級(jí)相關(guān)的函數(shù)f(lv),也是為了使防御能夠隨著等級(jí)的提升而無(wú)限提升下去。

但是加上這個(gè)等級(jí)相關(guān)的函數(shù)之后,也會(huì)帶來(lái)另外一個(gè)問(wèn)題,即隨著等級(jí)的提升,增加同樣的戰(zhàn)斗力Pow,需要的屬性Def是同步增加的,也就是說(shuō)隨著等級(jí)提升防御屬性居然貶值了。

總的來(lái)看兩種公式都有各自的優(yōu)劣,需要結(jié)合游戲?qū)嶋H的類型,期望做出的玩家體驗(yàn)等進(jìn)行選擇。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容