公式會(huì)完全還原原著的設(shè)計(jì)模式,比如傷害實(shí)際計(jì)算會(huì)有各種方面可能存在的加成,這些加成會(huì)都保留,所有看起來有的公式可能會(huì)稍長。在寫出原公式之后,會(huì)花點(diǎn)文字解析并最后做個(gè)簡單的總結(jié)?;旧蟽?yōu)先從能用可參考的入手,希望大家喜歡。
整體還是會(huì)按照游戲深度由表及里,慢慢引出諸多內(nèi)容。
開始會(huì)很簡單,后面應(yīng)該也不會(huì)復(fù)雜到看不下去。希望能這樣一直總結(jié)到很多條,起到溫故而知新的作用,警示自我以后不會(huì)偏離一些初衷用戶體驗(yàn)。
這款游戲的經(jīng)典程度不用多談了,想必也都玩過,歡迎和諧討論交流與指正。《暗黑2》無疑是圣經(jīng)、教科書的級(jí)別。深入研究更像是一門無底洞的學(xué)術(shù),本著敬畏的心情,盡量不出錯(cuò)的去做好這些個(gè)人的心得總結(jié),以供參考。
MMORPG最重要的、最常見的公式部分還是戰(zhàn)斗方面。首先從這個(gè)最基本的地方提取出幾個(gè)基本的運(yùn)算公式,然后逐步展開。
一、輸出傷害公式
近戰(zhàn)最終傷害=
【(基本傷害x1.5{無形物品})*(1+武器ed數(shù)值/100)+直接最小/最大傷害增加值】
*【1+力量或敏捷/100+非武器ed數(shù)值/100+技能ed數(shù)值%/100)】
*【(1-技能傷害懲罰/100)】*2{臨界一擊或者致命一擊}
+元素傷害
這個(gè)公式無疑是運(yùn)用最多最廣泛的公式,游戲中所有的刷裝備,戰(zhàn)斗,都是圍繞著一次次的攻擊進(jìn)行,每一次攻擊都是以這個(gè)公式去進(jìn)行的。
備注:ed數(shù)值是增傷的意思,比如武器里面的20%ed,就是增加傷害20%的意思,大多技能也附帶這類效果。臨界和致命一擊就是暴擊的意思,傷害翻倍。
公式解析:
游戲設(shè)定中,裝備分為有形和無形,無形裝備的基礎(chǔ)傷害或防御會(huì)變成1.5倍。普通武器的基本傷害,加成上武器帶來的增傷比例與固定增傷,就是武器本身普攻一次的最基礎(chǔ)傷害了。這個(gè)輸出的最基礎(chǔ)傷害也就是武器面板上寫出來的單手傷害范圍A~B。
公式第二行括號(hào)中的力量敏捷系數(shù)、武器ed、技能ed,分別是角色的一級(jí)屬性對傷害加成、武器、技能帶的一些魔法增傷特效的總百分比加成,跟第一行的基本武器傷害疊乘。
最后第三行再結(jié)合技能與光環(huán)的增減傷害、暴擊傷害得出這一下物理或者魔法傷害的總值、加上冰火毒電方面的元素固定傷害,得到最后的輸出。
一把武器的自身傷害是最主要的,這個(gè)是基礎(chǔ)值,所以整個(gè)暗黑的世界中一大部分都會(huì)圍繞打出一把高傷好武器去進(jìn)行。得到好武器之后,人物的技能,裝備加成,元素傷害,形形色色的能力都參與運(yùn)算,最后形成了一個(gè)設(shè)計(jì)者想要的輸出數(shù)值。
游戲最初就給武器設(shè)定了固定的數(shù)值范圍,輸出取決于武器的自身能力好壞,武器的級(jí)別種類顏色不同,賦予了武器形形色色不同的特性、增傷、魔法元素。其次從公式里也可以看出來,人物的加點(diǎn)方法,對武器的能力輸出也有一定比例的影響。比如刺客拿爪,敏捷點(diǎn)數(shù)有加成;野蠻人拿各種近戰(zhàn),他的力量點(diǎn)數(shù)加的就比別人多,那么輸出傷害增幅更大。
除了暴擊翻倍,光環(huán)增幅等經(jīng)典的設(shè)計(jì),再一次突出了加點(diǎn)模式對人物成長方向的影響,而這個(gè)加點(diǎn)完全是玩家自主把控的。
總結(jié)公式:
最經(jīng)典的傷害公式,完全符合現(xiàn)實(shí)邏輯,給游戲上限做了大量可擴(kuò)展的豐富玩法。理解后簡單變形大概可以描述成
(武器固傷*武器自帶增幅)(+人物點(diǎn)數(shù)、所有裝備投放的傷害增幅、周圍光環(huán)與技能的傷害增幅)(-對方技能的減幅衰減)(暴擊與否)+元素總傷
在第一條公式最后順便講解一些法系的傷害,其實(shí)跟物理的類似。只是前面2個(gè)括號(hào)里,就是武器基礎(chǔ)固傷輸出的地方,變成法術(shù)輸出的技能的固定傷害,然后再后續(xù)進(jìn)行光環(huán),裝備加成。大體上一樣,只是輸出模式不同,輸出手法和命中方式也不同,后面詳述??傊娇车奈锢斫鼞?zhàn)大多從武器上去著手得到基礎(chǔ)輸出,法術(shù)的是從釋放的技能上著手得到基礎(chǔ)輸出。法系是攻擊必中的,物理的則不是。這就牽扯到命中率的設(shè)計(jì)。
二、命中率公式
實(shí)際命中率=自己命中率/(自己命中率+別人防御力)*[自己等級(jí)*2/(自己等級(jí)+對方等級(jí))]
假設(shè)一個(gè)小怪跟你等級(jí)一樣,你命中率100,小怪防御50,砍他一次命中率其實(shí)是2/3。
公式解析:
隨著游戲進(jìn)行,每個(gè)角色都有一個(gè)自己的命中率屬性。法系技能必中,所以物理普攻的命中率才有意義。游戲的防御力的效果就是降低別人的命中率,防御力高了別人不容易集中而已,擊中了哪怕你防御力再高傷害也一樣。和大多游戲流行的閃避屬性叫法不同本質(zhì)一樣,暫時(shí)可以把暗黑這里的防御理解成閃避就對了?!景岛谝灿袀p免,不過那個(gè)叫抗性,抗性越高傷害減免百分比就越多,當(dāng)然也分物理抗性魔法抗性,以及冰毒火電抗性?!?/p>
后面的等級(jí)修正是很有意思很經(jīng)典的一個(gè)設(shè)計(jì),自己等級(jí)2倍除以雙方的等級(jí)之和,在之后的游戲中被大量沿用。首先假設(shè)雙方等級(jí)一樣,在游戲的過程中很常見的雙方等級(jí)一樣的戰(zhàn)斗,那么這后面的等級(jí)修正比例結(jié)果就是1,如果自己等級(jí)是20對方是10,結(jié)果就是命中率要乘以4/2+1,你的等級(jí)比對方高,命中率還要高一下變成4/3倍。所以雖然大多游戲的裝備,加點(diǎn)與面板輸出很重要,最終設(shè)計(jì)者還會(huì)加上這個(gè)等級(jí)來把控一下平衡。記得以前玩過一些游戲,設(shè)計(jì)玩家等級(jí)差距到一定程度,直接增加傷害碾壓增傷百分比,低等級(jí)不存在逆襲。這樣的話直接很有效的削弱或規(guī)避了部分潛在的卡級(jí)玩法。只要在一些命中或者傷害后加這么個(gè)等級(jí)修正系數(shù)即可。
回到這個(gè)公式的命中計(jì)算法則,自己命中率夠高,別人閃避(防御力)夠低,才能有效的擊中對面。但是,游戲中防御力的數(shù)值有變動(dòng)范圍,固定在了5%到95%的區(qū)間內(nèi)。小怪的防御力防御力再低,你堆疊命中率,也不會(huì)超過95%,游戲里除非部分技能才存在百分百命中。
boss后期幾千幾萬的防御,假設(shè)有5000防御,那么a/a+b這個(gè)公式中,你有5000命中也就是一半概率擊中。以游戲經(jīng)驗(yàn)而已,疊加到七八千以上才會(huì)有比較有效的攻擊效率。正因?yàn)橛螒蛟O(shè)計(jì)了miss的機(jī)制,并不是每一次攻擊都中,大量的屬性和玩法設(shè)計(jì)才會(huì)有用武之地。
設(shè)計(jì)側(cè)重點(diǎn)根據(jù)體驗(yàn)而進(jìn)行,暗黑的戰(zhàn)斗設(shè)計(jì)大多都是很簡潔直觀的。在大多情況下,直觀的輸出多少傷害就是扣血的血量,尤其對于玩家而言。沒有什么百分百傷害減免的,生命槽是多少就表示能承受多少傷害。
游戲的減免手法更多的就是通過這個(gè)防御閃避,集中在使得對方無法擊中來取得一個(gè)平衡調(diào)整??剐缘挠?jì)算前期并不多,所以說,輸出扣血很直觀,傷害是多少數(shù)值基本就是掉多少HP,主界面紅球的血就表示你有多少的生存力。
而不是某些游戲一樣,自己輸出多少傷害對比對面HP,很難有一個(gè)準(zhǔn)確的能否擊殺的感受體驗(yàn)。因?yàn)榉烙鶞p傷疊乘算法一大堆,極為復(fù)雜,自然就造成了玩家的部分理解成本。
要知道,暗黑中玩家基本沒有物理抵抗的,也就是說多少傷害打到身上就是多少,除非那一件暗金免傷甲。怪物也是在中后期才會(huì)出現(xiàn)大量的物理抵抗,免傷。有這種能力的暗金怪物的頭銜很明顯會(huì)自帶這類稱謂,超過100物理抗性直接顯示為:隱形的XXXX。
任何一種屬性,暗黑中50抗性就是減免一半傷害,計(jì)算也是極度的精簡漂亮整潔,沒有那么多花里胡哨的括號(hào)。對處女座而言最舒服的一點(diǎn)。
所以前面說的,游戲中的防御屬性,是整個(gè)過程玩家都一直繞不開的的話題,況且所有的裝備,防御力都是一個(gè)最重要的指標(biāo)。
就游戲本質(zhì)體驗(yàn)而言,當(dāng)然是越直觀越好,到現(xiàn)在流行的游戲,復(fù)雜的公式已經(jīng)超過玩家的把控能力了,看一眼面板還真不能搞清楚幾下打死或者能不能打死。比如LOL,我看一下自己的攻擊力,技能輸出,點(diǎn)一下對面HP,不計(jì)算召喚師技等情況下,帶入護(hù)甲魔抗計(jì)算就已經(jīng)是要用到 護(hù)甲/100+護(hù)甲 這個(gè)乘法公式了。好在鼠標(biāo)移過去也都貼心的顯示傷害減免百分比,玩的多的情況下大概能有個(gè)數(shù),但是還是增加了一個(gè)減免計(jì)算過程(跟魔獸的減免算法有點(diǎn)像)。
公式匯總:
1、命中值/(命中值+對方閃避)=命中率
【設(shè)定數(shù)值區(qū)間5%到95%】
2、經(jīng)典的萬能等級(jí)收益平衡調(diào)整:
攻擊者等級(jí)*2/(攻擊者等級(jí)+防御者等級(jí))
說完命中率,接著要提到和命中所對應(yīng)的防御力屬性。
三、防御力總值公式
防御力總值=(人基本防御+裝備防御+各種地方的直接額外防御)*(1+各種防御百分百加成)
防御力也跟輸出、命中一樣,也是有幾個(gè)方面加成得到的。
公式解析:
類似第一條傷害公式,防御這其中主要就包括裸裝(也就是人物自身的)防御值,全身裝備防御值,光環(huán)技能等加成防御值百分比。
自身防御力公式:Base_Defence = [Dex/4];防御力的自身數(shù)值,就是敏捷點(diǎn)數(shù)除以4。敏捷加的越高,防御力越高(之前提過其實(shí)就是敏捷加的多,閃避數(shù)值高,防御的概念這里是閃避)。很經(jīng)典的一級(jí)屬性點(diǎn)到二級(jí)屬性點(diǎn)轉(zhuǎn)化。
裝備就是一身裝備防御力相加,有固定數(shù)值額外加成的也直接加,可以得到一套防御總值。最后這套總值再跟技能光環(huán)被動(dòng)等百分百加成相乘法。很中規(guī)中矩的計(jì)算方式。
公式匯總:
顯示防御力=[(當(dāng)前人物總敏捷點(diǎn)數(shù)/4)+所有裝備的防御力總值]*(1+其他各種技能光環(huán)對于防御力的加成)
四、談一下角色的基本屬性設(shè)定
《暗黑2》的一級(jí)屬性,如圖。隨著游戲的升級(jí),每一級(jí)升級(jí)給你5點(diǎn)點(diǎn)數(shù)平均分配在4項(xiàng)能力上,下面說的這幾個(gè)一級(jí)屬性、二級(jí)屬性,在后來的仿暗黑,傳奇類,或者mmo游戲里大多沿用了這一經(jīng)典設(shè)定。
可以加點(diǎn)分配的幾個(gè)屬性,對于各個(gè)職業(yè)有不同的側(cè)重點(diǎn)。4種可加點(diǎn)的屬性分別是力量,敏捷,體力,精力。
界面經(jīng)典的紅色藍(lán)色雙球代表生命和法力,施法消費(fèi)法力,挨打消耗生命,生命結(jié)束游戲結(jié)束,都是arpg基礎(chǔ)的設(shè)計(jì)。
基本屬性在作用上設(shè)定得很直觀,不同的職業(yè)里作用也會(huì)類似,但是收益系數(shù)各有調(diào)整??梢赃@樣簡單理解:
加力量增加站擼戰(zhàn)士近戰(zhàn)傷害系數(shù);
加敏捷主要影響命中率閃避率,此外還能增加部分職業(yè)比如射手傷害系數(shù);
加體力增加HP跟耐力;
加精力增加MP。
也就是說體力跟現(xiàn)實(shí)一樣對應(yīng)到生命和持久跑步的耐力。精力對應(yīng)施法消耗的魔力。如此玩家玩家也可以用一級(jí)屬性自由分配影響實(shí)際使用的生命類二級(jí)屬性。是不是非常簡單,很好理解。
關(guān)于力量敏捷的增傷作用,回頭看第一條公式就能理解其中的作用了,數(shù)據(jù)可以起到一個(gè)百分比系數(shù)的作用。其實(shí)不僅是增傷,其他地方的一些細(xì)節(jié),比如在職業(yè)裝備穿戴平衡設(shè)定、引導(dǎo)里也都用到這個(gè)一級(jí)屬性。比如非常經(jīng)典的:【板甲穿戴需求:力量點(diǎn)數(shù)50,法師一般穿不了,法師就穿布甲好了?!?/strong>
這一部分加點(diǎn)的設(shè)計(jì),涉及到1級(jí)或者前期的職業(yè)體驗(yàn),可以說是數(shù)值框架中最重要的部分,不能說用一套公式一拉就全部得出,所以暗黑的表格很多也是用細(xì)微調(diào)整,填表類比的方法得出的。這里試著重現(xiàn)一下設(shè)計(jì)過程。大多游戲初始職業(yè)的設(shè)定法都類似。
首先明確職業(yè)的一些基本側(cè)重點(diǎn):
野蠻人:近身作戰(zhàn)戰(zhàn)士,力量高HP高,法力加成少,法力值極低,要生存所以要多出一定的防御敏捷。
法師:遠(yuǎn)程女法師,體力點(diǎn)少,生命低,法力值高,法力恢復(fù)快,MP加成要高。作戰(zhàn)方式設(shè)定都是遠(yuǎn)程施法,法力值要遠(yuǎn)超于野蠻人弓箭手這類物理方式作戰(zhàn)的。
刺客:跑動(dòng)速度快且持久,所以精力要高。生命法力當(dāng)然都分別落后于戰(zhàn)士跟法系,但是敏捷要最高,擬定角色時(shí)設(shè)定的技能模式?jīng)Q定了必殺蓄力一擊一定不能落空。
圣騎士:也是近戰(zhàn)戰(zhàn)士,生命高,體力加成但是比野蠻人略少,比法師要高。精力也是介于二者之間。但是亮點(diǎn)是盾牌,玩家加點(diǎn)上合理的都繞不開盾牌的防御率公式,敏捷也得略高。
死靈:基本接近女法師,作戰(zhàn)模式的區(qū)別,生命還是要略微超過女法師,法力略低于女法師。整體四維還是圍繞法師微調(diào)。
力量因子主要是關(guān)系到中后期的力量加成,因?yàn)樽钋捌谖淦髦挥袔c(diǎn)攻擊力,加成看不出來的。這里舉個(gè)例子:
如圖武器輸出了傷害是4-7,敏捷點(diǎn)20,增傷變成120%,則范圍是4*1.2~7*1.2=4.8~8.4
所有游戲里你可以看到攻擊傷害,寫的就是5-9。就是這個(gè)加成幅度。
野蠻人擁有最高的力量,加成方面設(shè)定為初期30%,所以填最高的30,圣騎士則設(shè)定25,那么刺客、弓箭矛女亞馬遜則遞減為20%,法師最低到10%近戰(zhàn)加成最低,當(dāng)然力量初始點(diǎn)數(shù)就給最低的10即可,其實(shí)對于實(shí)際作戰(zhàn)也沒用,高級(jí)的盔甲也穿不上。
由于提高等級(jí)點(diǎn)數(shù)所有人獲得固定,后期點(diǎn)數(shù)的自由投放取決于玩家,但是最開始的職業(yè)設(shè)定和區(qū)別,關(guān)系到最前期的體驗(yàn),所以還是要完全手動(dòng)得填好每一個(gè)數(shù)值。
主要上面舉例了,初期的30%自帶增傷,也看不出體驗(yàn)區(qū)別,新手階段的武器傷害也控制在了1~5內(nèi)??橙诉@一下的游戲傷害數(shù)值的體驗(yàn),可以說波動(dòng)范圍在立項(xiàng)期間就設(shè)定成了嚴(yán)格的【1-999】絕不會(huì)崩。
所以新手階段,這里面主要的體驗(yàn)區(qū)別,其實(shí)在于生命,生命值的初期設(shè)定,需要再結(jié)合最低級(jí)小怪的攻擊力和作戰(zhàn)回合擬定。
《暗黑2》這部分的數(shù)值調(diào)整了肯定無數(shù)遍,這里只是大概嘗試逆推一下給個(gè)思路。
擬定小怪都是80%以上的擊中概率,因?yàn)殚_始小怪防御都只有三四點(diǎn)很低的。這個(gè)到野外任意作戰(zhàn)一次,打開面板都可以看到的。
以野外第一個(gè)1級(jí)小怪沉淪魔為例,其生命點(diǎn)數(shù)為4,攻擊1~2。最開始的體驗(yàn)設(shè)定都是低級(jí)小怪一擊必殺,第二輪種類野怪打跟2次就擊殺,比如在后面出現(xiàn)的骷髏等都是砍個(gè)2次左右,玩過的都知道作戰(zhàn)非常簡單絕不會(huì)卡關(guān)。結(jié)合野怪?jǐn)?shù)量一般作戰(zhàn)3-5個(gè)最多。假設(shè)沒有精英怪的場景,生命值最初期至少也要2*3*怪物數(shù)量*秒殺流作戰(zhàn)時(shí)間,2*3*6=36HP,大致預(yù)測計(jì)算下來就可以有這么個(gè)數(shù)字了。游戲設(shè)定單挑小怪肯定是無敵,加上有藥瓶持續(xù)恢復(fù),唯獨(dú)大量的群毆場景需要多測試。初期1級(jí)的場景,50的HP就算比較好的體驗(yàn)了,肯定確保玩家不會(huì)死。另外50的初始值,也方便其他職業(yè)上下調(diào)整。當(dāng)然這些都是初期填表的嘗試值。
大概把數(shù)字填上去之后初始職業(yè)1級(jí)屬性會(huì)變成這樣。
(點(diǎn)擊上圖,可放大查看)
可以說這里面右邊的成長加成系數(shù)是最主要的,初始值的大小影響不大而且修改方便。但是后面等級(jí)高了,加成系數(shù)會(huì)帶入到表格中生成1-100級(jí)的數(shù)據(jù)。加點(diǎn)玩家決定,各職業(yè)各種設(shè)定系數(shù)還有差別,好幾百點(diǎn)的投入下,對人物build效果會(huì)很大。某些效果接近的職業(yè)比如死靈與法師的法力加持,用更小數(shù)細(xì)微的方法,1.75,1.55,1.25這樣去接近。
(點(diǎn)擊上圖,可放大查看)
陸續(xù)補(bǔ)充完成后表如圖,左側(cè)是一級(jí)屬性,右側(cè)則是一些成長系數(shù)了。用這個(gè)簡單的小表格,乘以到等級(jí)算一下,能得到后期的裸裝所有角色的所有能力。一切自身能力都可以推算出來。每個(gè)職業(yè)屬性給一張表格就可以。
這里篇幅問題就不再逆推各種詳細(xì)數(shù)據(jù)了,打開游戲1級(jí)到5級(jí)打幾次,其實(shí)就可以特別清楚了。這款游戲的前期點(diǎn)數(shù)投放,體驗(yàn)上是很完美的,毋庸置疑,都不知道修改了多少次?,F(xiàn)實(shí)里如果項(xiàng)目中能越早有demo測試的條件就越好,否則只能表格模擬跟腦子里演算了。
這部分決定了基礎(chǔ)屬性跟成長的屬性。游戲里后面很多重要的因素:耐力、跑速、承重、命中率閃避率,到一些高階傷害計(jì)算都跟這個(gè)有關(guān),后面還會(huì)回頭再提到這部分的。實(shí)際設(shè)定這些數(shù)值的時(shí)候,推算不太確定的,拍腦袋寫下的數(shù)據(jù)可以先行標(biāo)記做筆記,后續(xù)難免會(huì)有調(diào)整的。但是回頭看暗黑這個(gè)簡潔的框架模型,就很值得學(xué)習(xí)吧,最經(jīng)典的就是最簡潔的。下面的篇幅就講一下跟耐力有關(guān)的移動(dòng)速度問題。
五、耐力與跑步的消耗公式
這一部分在我們大多項(xiàng)目里可能用不到,尤其手游里大多的mmo不會(huì)去做這個(gè)單位的多種類移速變化系統(tǒng),無限跑就完事了。目前端游也沒見過能做到當(dāng)年暗黑那個(gè)精致度級(jí)別的。存在幀數(shù),畫面,尺寸的各種技術(shù)限制的情況下,給人物設(shè)計(jì)的移動(dòng)已經(jīng)精準(zhǔn)到幾乎等同現(xiàn)實(shí)狀況的地步了。這里也只能對最表面可見的跑動(dòng)與耐力機(jī)制給出一個(gè)粗淺總結(jié)。
游戲中耐力的作用是給跑步消耗用。上一條公式中有寫,基礎(chǔ)的體力加點(diǎn)能提高耐力,耐力越多跑的越久。畢竟體力這個(gè)東西影響生命和跑步持久力簡直太好理解了。
耐力總值公式:基本耐力+每一級(jí)提高的耐力+分配的體力點(diǎn)加的耐力。這一條很簡單。
角色在走路或者不動(dòng)的時(shí)候,耐力會(huì)恢復(fù),跑步的時(shí)候耐力持續(xù)衰減。并且非常合乎邏輯的設(shè)定了不同職業(yè)不同的衰減速度?!栋岛?》的數(shù)值系統(tǒng)經(jīng)典的根本,感覺還是在于,無數(shù)地方都嚴(yán)格根據(jù)實(shí)際情況去執(zhí)行合理的運(yùn)算,真的是不怕麻煩。
耐力衰減的速度越快,跑的時(shí)間當(dāng)然也就越短。出于實(shí)際的模擬考慮,很自然的可以聯(lián)想到所取決于的因素:角色的先天能力不同,裝備輕或重,一些來自技能與裝備的額外的特別能力的加成。
首先剛剛已經(jīng)給出了總的耐力公式,那么保持跑動(dòng)的總時(shí)間就等于總耐力/每秒損耗值。
得到損耗公式就OK了。每秒損耗的耐力值由以下公式得出:
25*每個(gè)角色的耐力消耗參數(shù)*(1+重甲 或中甲 或輕甲的額外加成)*(1 - 裝備的減少耐力消耗屬性)/256
概括的說,輕巧的職業(yè)比如刺客,耐力消耗系數(shù)就小,設(shè)定30,其他人系數(shù)就大,設(shè)定為40。
穿的重甲則額外消耗比例為10%,中甲為5%,輕甲不變。
裝備那個(gè)屬于額外魔法屬性,游戲的附加屬性,幫你減少耐力消耗了,每一秒消耗的就會(huì)少。
25后面的這部分?jǐn)?shù)值,就是精準(zhǔn)到了的每一幀的耐力消耗。
以刺客的30帶入計(jì)算,25跟256抵消一下變成除以10,那么也就是30除以10得到3。
所以別看前面他消耗參數(shù)是30這么大,假設(shè)穿了布甲,但是后面又除以了一個(gè)256了,這個(gè)系數(shù)數(shù)值就是中后期微調(diào)的關(guān)鍵??梢砸淮涡越o所有職業(yè)的消耗時(shí)間長短做調(diào)整系數(shù),覺得跑的時(shí)間不夠給力不爽,把數(shù)字增加就行了。
設(shè)定消耗參數(shù)是30,才能更方便的給所有職業(yè)進(jìn)行微調(diào),而且可以做到準(zhǔn)確得無以復(fù)加。
一幀消耗乘以的25(《暗黑2》游戲幀數(shù)是25)就得到了1秒內(nèi)的消耗。對比一下總耐力值,就能很明顯的得到一個(gè)幾秒時(shí)間的感受。
前面舉過計(jì)算例子,我們先去掉所有加成,那么刺客的話1秒鐘消耗數(shù)值是25*30/256約等于3,初始的耐力翻上面表可以看到,初期大家百來點(diǎn)耐力,跑個(gè)30秒也是很合理的了。
可以自己簡化一下變成自己的公式:想設(shè)定不同職業(yè)的,比如刺客就用系數(shù)為30,戰(zhàn)士40。
直接得出每秒消耗系數(shù)/10就行了,或者直接在職業(yè)表中填每秒消耗的點(diǎn)數(shù)(存在逐個(gè)設(shè)定調(diào)整的就盡量做到可以設(shè)定可以逐個(gè)職業(yè)調(diào)整,這種調(diào)整比批量改動(dòng)要便捷保險(xiǎn),不會(huì)存在無可改動(dòng))。況且現(xiàn)在的游戲已經(jīng)不存在25幀的限制了。
公式總結(jié):
不同職業(yè)在各個(gè)場合的表現(xiàn),分別設(shè)定系數(shù),通用計(jì)算公式也要設(shè)定調(diào)整系數(shù)??梢灾饌€(gè)調(diào)也可以一起跳。暗黑這么簡單的公式中就做到了。
其次給裝備設(shè)定更多的有趣的屬性,重量的不同,需求的不同,這些設(shè)定的條目越多,后面可擴(kuò)展的可玩性才越多。真的用不到其實(shí)也沒關(guān)系~
六、耐力恢復(fù)公式
25*耐力最大值*(1+額外耐力恢復(fù)加成)/256
講完消耗,自然接著要提一下自動(dòng)恢復(fù)。公式理念一脈傳承,這里獨(dú)立寫一下。
上面說過走路跟站立的時(shí)候耐力恢復(fù)都設(shè)計(jì)成不一樣。站著不動(dòng)恢復(fù)的快,用走的方式也可以恢復(fù),會(huì)慢很多。
而且還有2個(gè)細(xì)節(jié),戰(zhàn)力不動(dòng)但是你在戰(zhàn)斗或者被打,耐力不回復(fù);如果你跑到0耐力,變成走路,也一直不回復(fù),至少要有一點(diǎn)耐力以上,才可以切換成走路然后再慢慢恢復(fù)。
另外,走路與跑步狀態(tài),你的實(shí)戰(zhàn)檢測代入計(jì)算的防御力也會(huì)不同,可以理解為,一路跑得快,別人就更容易打中你。如果慢慢走,格擋防御什么的都跟站立狀態(tài)一樣。所以高難度一頓亂跑的往往才容易死于飛箭。依舊是出于真實(shí)模擬考慮的角度。
站立不動(dòng)狀態(tài)的耐力恢復(fù)公式:
25*耐力最大值*(1+額外耐力恢復(fù)加成)/256
簡化一下,假設(shè)沒有裝備帶來的額外恢復(fù)加速,再把25/256約等于1/10;那么公式其實(shí)也就是耐力最大值/10,所以罰站10秒,空了的耐力可以加滿。這個(gè)就是游戲的節(jié)奏設(shè)定。通過對256這個(gè)系數(shù)的調(diào)整,可以控制恢復(fù)滿的時(shí)間。
這個(gè)公式設(shè)定其實(shí)結(jié)合耐力最大值除一下,發(fā)現(xiàn)跟耐力最大值沒有關(guān)系。也就是說恢復(fù)的時(shí)間固定。并不是說耐力最大值越大則越快,也是游戲設(shè)計(jì)理念的體現(xiàn),任何職業(yè)站立10秒差不多就恢復(fù)滿。
走路狀態(tài)的公式:上述公式結(jié)果除以2,讓恢復(fù)效率減半。也就是說走的話要花雙倍的時(shí)間回滿。
七、決定人物跑速的具體公式
最終行走速度=基礎(chǔ)行走速度【(1+來自技能跑速加成百分比)+(物品跑速加成系數(shù)*150/物品跑速加成系數(shù)+150)+盾牌重甲的衰減】
說完耐力消耗多少?zèng)Q定跑動(dòng)時(shí)間,也提到了走路和跑步站立的不同恢復(fù),接著引出跑速的具體設(shè)計(jì)。
這里會(huì)開始出現(xiàn)最經(jīng)典的檔位的概念了。時(shí)代的產(chǎn)物,引擎的限制。25幀的老游戲無法實(shí)現(xiàn)流暢的畫面實(shí)現(xiàn),比如攻擊速度有那么多種,得到的攻擊頻率畫面一秒內(nèi)會(huì)有無數(shù)種節(jié)奏,游戲只能25幀,所以只能把跑速,攻速,格擋速度這些變成一個(gè)個(gè)的數(shù)值檻,形成一個(gè)個(gè)檔位。有點(diǎn)歪打正著的感覺,其實(shí)反而讓數(shù)值的追求變得更有意思,產(chǎn)生了一個(gè)一個(gè)的興奮點(diǎn)。對于數(shù)值設(shè)計(jì)的興奮點(diǎn),一個(gè)個(gè)玩家努力突破堆積的檻,現(xiàn)在的游戲里應(yīng)該很常見。
不過暗黑這種基本畫面表現(xiàn)形式都存在的檔位,在現(xiàn)在的游戲技術(shù)里已經(jīng)不可能再存在了。這里旨在分析其中公式和理念。
游戲游戲分辨率可以有2種選擇,640*480和800*600,根據(jù)尺寸,假設(shè)一下畫面用固定間距的橫線豎線給予劃分,變成一個(gè)個(gè)用碼為單位的立體空間。比如800*600的分辨率,變成高16.7碼,寬23碼,長分成23份,高寬分成大概17份。
游戲代碼內(nèi),單位的移動(dòng)速度就是用這些一個(gè)個(gè)小長方體來代表距離,代表移動(dòng)速度。這個(gè)運(yùn)算方式不等同于當(dāng)下流行游戲的地圖坐標(biāo)方式,地圖坐標(biāo)是固定的地圖上的地點(diǎn)。而這方式主要的好處是,可以直接表示到不同單位的距離,移速,對比位置。比如安裝一些補(bǔ)丁工具之后,會(huì)發(fā)現(xiàn)所有單位都有一個(gè)固定的距離用碼來顯示的。另外游戲內(nèi)的所有技能,攻擊距離也都用自己的碼去顯示,當(dāng)然移速也是。
想象一下屏幕上這個(gè)長方形游戲畫面的長寬,長23碼寬高17碼左右。
游戲內(nèi)所有角色基礎(chǔ)移速都一樣。行走是4碼每秒,跑步變成1.5倍是6碼每秒。
游戲設(shè)定了最低行走跑步移速,是1碼每秒。因?yàn)橛螒蚝笃诠治锎罅康谋鶅?、詛咒、減速可能讓人物幾乎無法移動(dòng),最低的移速就跟最低的命中率5%一樣為游戲體驗(yàn)而設(shè)定。
此外移速受到很多因素的影響,比如人物裝備的盾牌重量,前面提到的盔甲種類輕重。跟之前提到的耐力衰減一樣,移速方面重甲重盾是10%衰減,中盾中甲是5%,輕甲不影響。
最重要的是一個(gè)跑速加成系數(shù)屬性,這個(gè)魔法屬性的投放跟傷害加成類似,在各種裝備飾品中都有,表現(xiàn)為:提高人物跑步速度X%。
人物移動(dòng)時(shí)候,畫面刷新受到25幀數(shù)的影響,所以實(shí)際上效果存在檔位。這里因?yàn)槟壳坝螒蚣夹g(shù)不再存在,就不多提,以實(shí)際公式分析為主。
最后除了裝備技能的特殊效果加速,重甲帶來的負(fù)重減速,還有敵人的大量特殊效果,比如玩過的都知道冰凍,衰老,都是減速50%。還有其他的一些敵人的冰凍光環(huán),指定數(shù)值減速效果。當(dāng)然怪物單位也有各種各樣的加速技能和光環(huán)。
行走移速公式:
最終行走速度=基礎(chǔ)行走速度【(1+來自技能跑速加成百分比)+(物品跑速加成系數(shù)*150/物品跑速加成系數(shù)+150)+盾牌重甲的衰減】
技能加成,盾牌衰減很好理解。但是中間物品的一個(gè)百分比用的公式形式是150a/a+150。
需要變形一下才好理解。變成a* (150/a+150)如果物品跑速加成是100%(后期不難達(dá)到),則帶入計(jì)算得到的結(jié)果是100*15/25,得到一個(gè)修正變成了60%。
如果物品跑速加成是10,帶入計(jì)算得到的是9.3。
有沒有想到LOL的護(hù)甲減免公式a/a+100?這里的150/a+150正是暴雪典型的追加系數(shù)公式。但是這里把常見的100/a+100改成了150/a+150,根本原因是針對的a的范圍不同。b/a+b,b的范圍越大,影響的值也會(huì)越大??梢约僭O(shè)一下一百跟一萬的區(qū)別就明白了。
這個(gè)以可以斷定為出于修正對物品帶來的跑速加成的影響而留的公式。游戲里物品方面的跑速非常多,后面積累多的話,包括物品鞋子武器,尤其是背包的一堆符文等等。加成高了會(huì)非???,這里做一個(gè)a/X+a的衰減也很好理解。
公式總結(jié):
對于我們自身的運(yùn)用,這個(gè)公式跟耐力等計(jì)算類似很簡單,拿到基礎(chǔ)值之后乘以各種系數(shù)就好了。唯獨(dú)中間的那個(gè)衰減運(yùn)用,可以看出高手的嚴(yán)謹(jǐn)。平時(shí)預(yù)感到溢出的或者很大的數(shù)值就多預(yù)留系數(shù),以后修改就會(huì)很方便,這方面的經(jīng)驗(yàn)很值得學(xué)習(xí)。暴雪爸爸的a/a+b用的很多,以小見大。
后面跑速方面的就簡單提一下就好??紤]到玩家的體驗(yàn)層級(jí)差異,實(shí)際游戲中計(jì)算是這樣設(shè)計(jì)的:
跑速直接=上述得出的行走速度再+2碼每秒
這樣的話任何單位的跑速和移速都保持在一個(gè)比較平衡和接近的體驗(yàn)上。突然跑起來不會(huì)太過突兀。畢竟游戲角色從頭到尾大多都在跑步走路。
另外考慮到中后期特殊情況的戰(zhàn)斗跑速下限, 當(dāng)最終行走速度<角色基本行走速度 的時(shí)候,最終行走速度=""><角色基礎(chǔ)跑步速度 的時(shí)候,最終跑步速度="">
未完待續(xù)。
聯(lián)系客服