概率流程圖的數(shù)學(xué)計(jì)算瀑布算法圓桌算法混合算法解析_第1頁
概率流程圖的數(shù)學(xué)計(jì)算瀑布算法圓桌算法混合算法解析_第2頁
概率流程圖的數(shù)學(xué)計(jì)算瀑布算法圓桌算法混合算法解析_第3頁
概率流程圖的數(shù)學(xué)計(jì)算瀑布算法圓桌算法混合算法解析_第4頁
概率流程圖的數(shù)學(xué)計(jì)算瀑布算法圓桌算法混合算法解析_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、概率流程圖的數(shù)學(xué)計(jì)算:瀑布算法、圓桌算法、混合算法解析攻擊判定流程研究: 瀑布算法、圓桌算法、混合算法解析攻擊判定流程幾乎是所有包含戰(zhàn)斗玩法的游戲都無法繞過的一塊內(nèi)容,常見的攻擊判定流程有瀑布算法、圓桌算法以及混合算法三種。本文簡述了這三種判定流程的特征,以實(shí)例對(duì)比分析了瀑布算法與圓桌算法各自的優(yōu)點(diǎn),以期為后續(xù)其他戰(zhàn)斗數(shù)值設(shè)計(jì)內(nèi)容的論述提供一定的基礎(chǔ)。攻擊判定流程概述自此開始正文內(nèi)容的敘述讓我們直接代入一個(gè)實(shí)例:在一款游戲中,攻擊方有命中率和暴擊率兩個(gè)攻擊屬性,而防守方有閃避率、招架率和格擋率三個(gè)防御屬性。于是相應(yīng)的,一次攻擊有可能產(chǎn)生6種判定結(jié)果:未命中、普通命中、閃避、招架、格擋和暴擊。當(dāng)

2、采用不同的判定流程進(jìn)行攻擊結(jié)算時(shí),6種判定結(jié)果出現(xiàn)的頻率會(huì)截然不同。1.  瀑布算法顧名思義,在瀑布算法中,各事件的判定順序如同瀑布一般自上而下。如果“水流”在某個(gè)位置被截?cái)?,則后面的流程都將不再繼續(xù)進(jìn)行。據(jù)我所知,瀑布算法是大多數(shù)游戲所采用的攻擊判定算法。上述實(shí)例若采用瀑布算法,則會(huì)以如下方式進(jìn)行判定:· 先判定攻方是否命中· 再判定是否被守方閃避· 再判定是否被守方招架· 再判斷是否被守方格擋· 最后判定該次攻擊是否為暴擊<ignore_js_op> 瀑布算法流程圖由此我們可以得出:瀑布算法特征1:

3、多次擲骰,一次擲骰只判定單個(gè)事件的發(fā)生與否瀑布算法特征2:后置判定依賴于前置判定的通過注:有的游戲會(huì)將命中和閃避合并在一次擲骰中判定,這意味著將攻方命中率與守方閃避率合并計(jì)算出實(shí)際擊中概率后再進(jìn)行擲骰判定,仍是瀑布算法我們?cè)俅胍恍┚唧w的數(shù)值,設(shè)攻守雙方角色的面板屬性如下:攻方命中率=90%攻方暴擊率=25%守方閃避率=20%守方招架率=15%守方格擋率=30%按照上述的流程判定,6種判定結(jié)果將會(huì)按如下的概率分布:實(shí)際未命中概率=1-命中率=1-90%=10%實(shí)際閃避概率=命中率*閃避率=90%*20%=18%實(shí)際招架概率=命中率*(1-閃避率)*招架率=90%*(1-20%)*15%=10.

4、8%實(shí)際格擋概率=命中率*(1-閃避率)*(1-招架率)*格擋率=90%*(1-20%)*(1-15%)*30%=18.36%實(shí)際暴擊概率=命中率*(1-閃避率)*(1-招架率)*(1-格擋率)*暴擊率=90%*(1-20%)*(1-15%)*(1-30%)*25%=10.71%實(shí)際普通命中概率=命中率*(1-閃避率)*(1-招架率)*(1-格擋率)*(1-暴擊率)=90%*(1-20%)*(1-15%)*(1-30%)*(1-25%)=32.13%<ignore_js_op> 瀑布算法的判定結(jié)果分布由此我們可以得出:l 瀑布算法特征3:各事件出現(xiàn)的概率符合經(jīng)典的概率計(jì)算

5、方法l 瀑布算法特征4:擲骰輪次越偏后的屬性衰減程度越大,但不會(huì)出現(xiàn)無效的屬性2.圓桌算法將所有可能出現(xiàn)的事件集合抽象成一個(gè)圓桌桌面,便是圓桌算法這一稱呼的由來。圓桌算法的實(shí)質(zhì),是將所有可能發(fā)生的事件狀態(tài)按優(yōu)先級(jí)依次放上桌面,直至所有事件被放完或桌面被填滿。圓桌算法正是史詩級(jí)巨作魔獸世界中所采用的算法。據(jù)筆者了解,使用該算法的游戲并不多見,但即便僅魔獸世界這一款,已足以使這種算法成為永恒的經(jīng)典上述實(shí)例若采用圓桌算法,則會(huì)用一次擲骰判定該次攻擊的結(jié)果。<ignore_js_op> 圓桌算法流程圖圓桌算法的操作步驟可以歸納為:(1)攻方角色的命中率決定圓桌桌面的大?。?)將各

6、個(gè)事件狀態(tài)按優(yōu)先級(jí)依次放上桌面,直至所有的事件均放置完或桌面被填滿(3)若桌面還未填滿,則用普通命中填滿空桌面將先前設(shè)定的數(shù)值代入,6種判定結(jié)果將會(huì)按如下的概率分布:實(shí)際未命中概率=10%實(shí)際閃避概率=20%實(shí)際招架概率=15%實(shí)際格擋概率=30%實(shí)際暴擊概率=25%實(shí)際普通命中概率=90%-實(shí)際閃避概率-實(shí)際招架概率-實(shí)際格擋概率-實(shí)際暴擊概率=90%-20%-15%-30%-25%=0%注:在上述計(jì)算中,優(yōu)先級(jí)按如下排序:閃避>招架>格擋>暴擊>普通命中<ignore_js_op> 圓桌算法的判定結(jié)果分布可以看出,由于普通命中的優(yōu)先級(jí)最低,所以

7、它被完全擠出了桌面。這意味著,若攻守雙方以此數(shù)值模型進(jìn)行對(duì)決,則攻擊方的攻擊結(jié)果中將不存在普通命中。由此我們可以得出:圓桌算法特征1:一次擲骰即得出該次攻擊的判定結(jié)果圓桌算法特征2:事件有優(yōu)先級(jí),圓桌放滿后優(yōu)先級(jí)低的事件將被擠出桌面。這意味著那部分溢出的屬性將不再生效圓桌算法特征3:圓桌內(nèi)的各事件出現(xiàn)概率不會(huì)衰減,只要優(yōu)先級(jí)低的屬性沒有被擠出圓桌,各種事件的實(shí)際發(fā)生概率就與面板屬性數(shù)值吻合3. 混合算法這是一種先判定攻方事件,再判定守方事件的判定流程。筆者曾在一篇帖子中看到過這樣判定流程,不確定是否有實(shí)際的游戲應(yīng)用,故僅在此做一些簡單的理論分析?;旌纤惴ㄔ趩畏绞录呐卸ㄖ胁捎脠A桌算法,即:攻方

8、判定結(jié)果:普通命中OR未命中OR暴擊守方判定結(jié)果:閃避OR招架OR格擋OR被命中<ignore_js_op> 混合算法流程圖注:上面這個(gè)圖僅作示意之用,從流程圖的角度來看可能不太嚴(yán)謹(jǐn)將先前設(shè)定的數(shù)值代入,6種判定結(jié)果將會(huì)按如下的概率分布:實(shí)際未命中概率=10%實(shí)際閃避概率=攻方命中率*閃避率=90%*20%=18%實(shí)際招架概率=攻方命中率*招架率=90%*15%=13.5%實(shí)際格擋概率=攻方命中率*格擋率=90%*30%=27%實(shí)際暴擊概率=攻方暴擊率*敵方被命中概率=25%*(1-20%-15%-30%)=8.75%實(shí)際普通命中概率=攻方普通命中概率*敵方被命中概率=(

9、90%-25%)*(1-20%-15%-30%)=22.75%<ignore_js_op> 混合算法的判定結(jié)果分布由此我們可以得出:混合算法特征1:先判定攻方事件,再判定守方事件,共進(jìn)行兩次擲骰混合算法特征2:先在單方事件的判定中采用圓桌算法,再用瀑布算法串聯(lián)攻守雙方事件混合算法特征3:會(huì)產(chǎn)生并發(fā)動(dòng)作,例如暴擊被閃避等注:這也正是實(shí)際暴擊率較低原因所在瀑布算法與圓桌算法的特性對(duì)比在上一塊內(nèi)容的鋪墊之下,我們不妨繼續(xù)以魔獸世界中的攻擊判定流程設(shè)計(jì)實(shí)例作為切入點(diǎn),對(duì)比分析一下圓桌算法與瀑布算法各自的特性。(1)面板屬性傳遞信息的直觀性瀑布:由于各屬性在判定流程上的生效時(shí)間有先

10、后之分,所以各屬性的實(shí)際效用與面板顯示的不符。圓桌:由于屬性的判定沒有先后之分,只要沒有屬性被擠出圓桌,則所有屬性的實(shí)際效用與面板顯示的相當(dāng)。這里可以看出圓桌算法的優(yōu)點(diǎn):屬性的實(shí)際效用與面板顯示相符顯然更易于普通玩家的理解,便于玩家掌握自身的戰(zhàn)力情況。(2)屬性的價(jià)值瀑布:擲骰輪次越偏后的屬性衰減程度越大,但所有的屬性均會(huì)生效。圓桌:只要沒有屬性被擠出圓桌,則不存在屬性效用的衰減。這里可以看出圓桌算法的優(yōu)點(diǎn):由于不存在判定流程上的先后,所以各屬性的實(shí)際價(jià)值會(huì)比較接近,一般不會(huì)出現(xiàn)玩家堆了某個(gè)判定流程靠后的屬性結(jié)果很廢的情況。同樣也可以看出其缺點(diǎn):一旦有屬性溢出,則該部分屬性的效用為0,完全沒有

11、價(jià)值。(3)相同面板數(shù)值下的生存能力圓桌:在面板數(shù)值相同的情況下,魔獸世界用圓桌算法大大提高了坦克角色的生存能力,使得他們可以應(yīng)對(duì)來自首領(lǐng)怪的超高攻擊,匹配大型團(tuán)隊(duì)副本的玩法設(shè)計(jì)。瀑布算法下,免傷概率=18%+10.8%+18.36%=47.16%圓桌算法下,免傷概率=20%+15%+30%=65%傳統(tǒng)的概率為相乘關(guān)系,圓桌為相加關(guān)系,后者的概率總和要大的多并且,當(dāng)防御職業(yè)將三維堆至一個(gè)閾值(70%)后,配合技能可達(dá)100%的免傷覆蓋,將命中和暴擊全部擠出桌面,從而衍生出特定的玩法(70級(jí)年代伊利丹的剪切技能)。瀑布:相同的面板數(shù)值在瀑布算法的框架下,免傷概率相較于圓桌算法要低得多。換言之,角

12、色達(dá)到相同的有效生命值,所需的免傷屬性要高得多。這里可以看出:在圓桌算法的框架之下,屬性投放若是脫離了控制超過了閾值,將對(duì)平衡性產(chǎn)生較大的沖擊(70級(jí)的盜賊單刷格魯爾當(dāng)然在暴雪光環(huán)的作用下,玩家會(huì)認(rèn)為這是精妙的設(shè)計(jì))。在國產(chǎn)游戲收入導(dǎo)向的大環(huán)境下,設(shè)計(jì)者是否能頂住收入壓力,嚴(yán)守屬性投放的極值不越界,是值得慎思的問題。采用瀑布算法,能有更大的數(shù)值空間用于能力投放,更為適合現(xiàn)階段的市場環(huán)境。(4)運(yùn)算量瀑布:多次擲骰圓桌:單次擲骰顯而易見:擲骰次數(shù)越多,運(yùn)算量越大。圓桌相較于瀑布,有著相對(duì)較小的運(yùn)算量。簡單即是美。注:除魔獸世界外,冒險(xiǎn)與挖礦的技能施放也采用了圓桌算法,大大簡化了技能施放的判定流程

13、。可以想象一下,一次攻擊至多發(fā)動(dòng)一個(gè)技能。而每一次攻擊,一個(gè)隊(duì)伍中有幾十個(gè)角色的技能施放需要判定,如果采用瀑布算法,將產(chǎn)生多大的運(yùn)算量。思考與總結(jié)對(duì)戰(zhàn)斗數(shù)值的研究,應(yīng)該基于理論推導(dǎo)而歸于實(shí)踐應(yīng)用。畢竟游戲數(shù)值設(shè)計(jì)不是做數(shù)學(xué)研究,其本質(zhì)應(yīng)是一種體驗(yàn)設(shè)計(jì)。最后希望交流的是筆者個(gè)人對(duì)于這兩種算法的一些理解。(1)不同的攻擊判定流程會(huì)向玩家傳達(dá)不同的戰(zhàn)斗感受究其本質(zhì),不同的攻擊判定流程,影響著一場戰(zhàn)斗中的各種攻擊判定結(jié)果將以何種概率分布出現(xiàn)。假設(shè)在一款游戲中,閃避率的投放上限是30%,暴擊率的投放上限是40%,命中率的投放上限是100%。瀑布算法下,出現(xiàn)閃避、暴擊和普通命中的概率是30%、28%和42

14、%;圓桌算法下,則為30%、40%和30%。這兩種不同的概率分布,必然會(huì)帶給玩家不同的戰(zhàn)斗體驗(yàn),但在缺少其他條件的情況下,并不能判斷孰優(yōu)孰劣。使戰(zhàn)斗體驗(yàn)匹配游戲的核心玩法,使屬性投放的極限值能滿足游戲的商業(yè)化需要,是設(shè)計(jì)攻擊判定流程時(shí)首先要考慮的。注:甚至于部分競技游戲強(qiáng)調(diào)公平性,將暴擊做成了偽隨機(jī)。使用瀑布算法,則不應(yīng)該設(shè)計(jì)種類繁多的事件狀態(tài)若是仿照魔獸世界的做法設(shè)計(jì)一連串的事件狀態(tài)(未命中、閃避、招架、格擋、暴擊、普通命中、偏斜、碾壓),非但運(yùn)算繁雜,而且后置判定的屬性衰減幅度較大,效果極不明顯。這種隱晦的設(shè)計(jì)將不易傳達(dá),同時(shí)還會(huì)影響玩家的游戲感受(某個(gè)判定流程靠后的屬性堆得很高結(jié)果卻沒用

15、)。使用圓桌算法,則應(yīng)該嚴(yán)守屬性投放的上限,防止平衡崩壞的情況發(fā)生需要澄清的是,并不是說使用瀑布算法就可以無限投放數(shù)值,而是說,相較于瀑布算法,圓桌算法的屬性投放上限會(huì)低很多(免傷概率的相加與相乘)(2)不同的攻擊判定流程將影響有效生命EHP和有效攻擊EDPS的表達(dá)式幾乎每個(gè)數(shù)值策劃都會(huì)將角色的屬性轉(zhuǎn)化為EHP和EDPS以衡量其的戰(zhàn)斗能力,但曾見過不少人對(duì)所有的游戲都用統(tǒng)一的EHP、EDPS表達(dá)式進(jìn)行分析模擬。這種偏差較大的模擬方式必然會(huì)影響體驗(yàn)設(shè)計(jì)的精準(zhǔn)性。在不同的攻擊判定流程之下,EHP與EDPS有著截然不同的表達(dá)式,舉例說明如下。瀑布算法下:若命中閃避分兩次判定:EHP=HP/(1-免傷

16、率)/(1-閃避率)/(1-招架率)EDPS=DPS*命中率*1+暴擊率*(暴擊傷害倍率-1)若命中閃避合并判定:EHP=HP/(1-免傷率)/(命中率-閃避率)/(1-招架率)EDPS=DPS*(1+暴擊率*(暴擊傷害倍率-1)圓桌算法下:EHP=HP/(1-免傷率)/(1-閃避率-招架率)EDPS=DPS*命中率-敵方閃避率-敵方招架率+暴擊率*(暴擊傷害倍率-1)注:閃避、招架>暴擊>普通命中,且各狀態(tài)發(fā)生概率之和未超過圓桌大小混合算法下:EHP=HP/(1-免傷率)/(1-閃避率-招架率)EDPS=DPS*命中率+暴擊率*(暴擊傷害倍率-1)可能有人會(huì)覺得:模擬得這么準(zhǔn)又有什么卵用,數(shù)值平衡最后還不是靠調(diào)?誠然,在數(shù)值設(shè)計(jì)領(lǐng)域,確實(shí)有名言曰:數(shù)值平衡是調(diào)出來的。但在筆者看來,調(diào)節(jié)應(yīng)該建立在正確的理論推導(dǎo)的基礎(chǔ)之上。依靠調(diào)節(jié)來掩蓋數(shù)值模型的錯(cuò)誤設(shè)計(jì),是本末倒置的行為。即便達(dá)到了所謂的平衡,也不過是扭曲的平衡,會(huì)為后續(xù)版本的迭代埋下隱患。寫在最后市面上的大多數(shù)游戲,都不會(huì)設(shè)計(jì)復(fù)雜繁多的攻擊事件,且基本采用瀑布算法。如此看來,攻

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論