概論
網絡遊戲《World of Warcraft》(《魔獸世界》)中關于攻擊判定的一個理論。來源于“一個圓桌的面積是固定的,如果幾件物品已經占據了圓桌的所有面積時,其它的物品将無法再被擺上圓桌”。通過對該理論的研究,可使得挑戰遊戲BOSS的玩家團隊中,直接承受BOSS傷害的“TANK職業(承受Boss攻擊的玩家),免于受到“碾壓”這種超強攻擊的傷害。并由此引申出針對不同職業的“免傷”方法。
原理概述
《魔獸世界》中,“攻擊”的結果由以下部分組成,并按照攻擊結果的優先級的遞減排列(頂部結果的優先級高于其下面的部分):
先判定是否未命如果未招架是否偏斜(僅出現在玩家和玩家寵物對怪物時,因為Boss等級比玩家高3級)-->如果未偏斜則是否格擋【從背後攻擊則沒有】-->是否被怪物碾壓(僅出現在怪物對玩家和玩家寶寶時)-->最後才是普通攻擊
也就是說,每次近戰攻擊(除玩家的造成黃色傷害的技能攻擊外)都可能會出現未命中,躲閃,招架,格擋,偏斜,暴擊,碾壓,除此之外将是一次普通攻擊。由于存在優先級的問題,所以這個列表中有些近戰攻擊結果有0%幾率存在;例如,玩家的自動攻擊造成碾壓的幾率是0%,怪物的攻擊有0%的幾率被偏斜,對沒有裝備盾牌的玩家的攻擊被格擋的幾率是0%,等等。
如果未命中,躲閃,招架,格擋幾率的和達到100%或更高,攻擊的結果不僅不會出現普通攻擊,還會連暴擊和碾壓也不會出現。
也就是說,如果優先級高的各部分和超過100%,會把優先級低的各種結果擠出桌面。即為“圓桌理論”。
某些玩家堅持原則上的概率論算法,而某些玩家堅持“圓桌定律”,但是兩者并不存在誰對誰錯的問題,毫無疑問,都是物理上可實現的(有許多統計學原理是不能夠物理實現的),而且更重要的是,各存在優劣,再次将兩種判斷方法逐一舉例說明,并說明其優勢和劣勢。
算法
首先我們确定研究的樣本,假設有一個戰士對于他的目标作出了一次攻擊動作,出于簡化命題并使之通俗易懂的原理,我們不考慮過多的可能性,我們隻考慮躲閃,招架,攻擊命中造成普通攻擊,攻擊命中造成緻命攻擊四種情況。
目标的躲閃幾率……20%
目标的招架幾率……5%
戰士的緻命一擊率……30%
在上述條件下,我們可以看到的擊中結果有如下幾種:
1、目标躲閃此次攻擊,幾率是20%
2、目标招架此次攻擊,幾率是(1-20%)*5%,(因為如果出現了躲閃,那麼此次攻擊的結果被歸類為被躲閃),計算得到的值是4%,要低于目标的原始5%招架幾率
3、目标無法躲閃或者招架此次攻擊,幾率是1-20%-(1-20%)*5%=76%(也就是說去掉出現躲閃的幾率和去掉出現招架的幾率,注意此處兩者并沒有重疊部分,所以這個計算是合理的),那麼在這76%的命中幾率中:
緻命一擊占76%*30%=22.8%,小于原始30%緻命一擊率
普通攻擊占76%*70%=53.2%
最終運算結果是:
-->出現躲閃字樣20%
-->出現招架字樣4%(小于5%)
-->出現緻命一擊22.8%(小于30%)
-->出現普通攻擊53.2%
将所有可能性加在一起,20%+4%+22.8%+53.2%=100%,結果是合理的,可以涵蓋整個并且不超出樣本範圍,是物理可行的算法。
當然,這裡的優先級别可能有所出入,比方說先進行招架判斷再進行躲閃判斷,那麼最終招架幾率是5%,而最終躲閃變為(1-5%)*20%。
可是不管優先級别怎麼樣排列,處于低級别的判定因素在計算其最終出現幾率時,都要乘以(1-n%)的因子,使之低于原始幾率。這對于各種因素來講就造成了不平衡。
比方說,在上述的例子中,目标每提高躲閃1%,就能實實在在的提高1%的幾率不被戰士攻擊到,然而當你提高1%招架的時候,隻能提高(1-躲閃幾率)*1%的幾率不被戰士攻擊到,受到了衰減,要低于1%,所以相對來說,提高躲閃可以得到更多的收益。在優先級列表中越是靠後的屬性,受到的衰減越嚴重,也就越不平衡。
那麼,綜上所述,使用傳統的概率論算法來進行判定,好處在于,無論如何都會得到可行的結果,最終各種情況所占的比例加起來可以涵蓋到并且隻能涵蓋到一個樣本範圍,在物理上可行。而壞處在于,逐級判定對于各個屬性引入了優先級别概念,使各個屬性有了優劣之分,不能平等的影響最終出現的結果。但是,這個結果非常容易平衡,隻要在裝備屬性上将提高不同屬性所需要的物品等級加以區别(也就是俗稱的分值),就可以起到調整的作用,為什麼1%躲閃和1%招架所需要的分值不同?可能就是為了平衡優先級。
考慮開了閃避的情況:
目标的躲閃幾率……70%(20%+50%)
目标的招架幾率……5%
戰士的緻命一擊率……30%
最終計算的結果是:
-->出現躲閃字樣70%
-->出現招架字樣1.5%(減少了3.5%,約為自身2/3)
-->出現緻命一擊8.55%(減少了15.25%,約為自身2/3)
-->出現普通攻擊19.95%(減少了33.25%,約為自身2/3)
結果依然合理,大量增加的躲閃幾率受到後面的各個因素分攤,使得出現招架,出現緻命一擊和出現普通攻擊的幾率相互之間能夠維持一個比較穩定的比例,這使得傳統概率論算法對于某些屬性的突變具備更強大和更公平的平衡機制,這是傳統概率論算法的另一個優勢。
起初我認為圓桌理論算法是荒謬的,因為我無法理解為什麼圓桌理論要為了讓所有屬性不受影響的反應出原始出現幾率而犧牲掉其中某種因素,使之呈現出完全依附于别的屬性的,不可預測的特性(也就是大多數圓桌理論者津津樂道的吃完普通攻擊吃緻命一擊),可是經過思考後,我發現這正是圓桌理論的優越之處。
對于同樣的例子:
目标的躲閃幾率……20%
目标的招架幾率……5%
戰士的緻命一擊率……30%
圓桌理論的算法是:保證每一個影響因素都能在統計中呈現出原始的出現幾率,以普通攻擊填充樣本中沒有被覆蓋到的部分。
結果幾乎不需要進行運算:
-->出現躲閃字樣的幾率20%
-->出現招架字樣的幾率5%
-->出現緻命一擊的幾率30% --> 出現普通攻擊的幾率(1-20%-5%-30%)=45%
我們可以看到,相對于傳統的概率論算法隻有第一個被考慮的因素能反應出原始出現幾率的特點,圓桌理論所計算出的結果中,幾乎所有被考慮的因素都能夠直接在大量的攻擊中表現出原始的幾率,不存在優先級造成的衰減因子,而作為唯一的犧牲品,普通攻擊的出現幾率完全依附于其他的因素,也即相當于,将躲閃,招架,緻命一擊處于同一優先級,而普通攻擊作為最低級的因素存在。
同時犧牲了普通攻擊的優先級後,我們發現結果是合理的100%,為了證明他的可行性,我可以舉出一種可行的判斷方法:系統考慮了目标和戰士的各個屬性後,生成一張表格(也可以說是數組),1-20号元素代表躲閃,21-25号元素代表招架,26-55号元素代表緻命一擊,56-100号元素代表普通攻擊,判斷結果的時候隻要生成一個随即的1-100的數作為指針的指,即可按照相對的元素内容來判斷結果,這個判斷方法完全可行并且準确反映了圓桌理論的運算結果。
所以我們可以看到,在這個例子中,圓桌理論的結果也是100%,物理可行,同時相對于傳統的概率論算法,圓桌理論以犧牲普通攻擊(當然後面會讨論到其它情況下對其它屬性的犧牲)的方法,使得每一個元素都能準确地按照其原始出現幾率反映在樣本中,其餘因素中不存在優先關系,也不存在衰減因子,這是圓桌理論的優勢,以一種近似于統計統籌的方法來平衡元素使之合理,而不是依靠單純的概率理論來維持其合理性。
看似圓桌理論是平等的,隻犧牲一個因素就能保證其餘因素的公平公正的優秀方法,但是事實并非如此,這裡就要探讨吃完普通攻擊吃緻命一擊的問題了。很明顯,當各種因素的出現幾率增加的時候,會出現普通攻擊即使全部被犧牲掉,也不能滿足結果100%的合理性要求的情況。這種情況下,就要有另一個因素作出犧牲,以維持算法的物理可實現性,舉個例子:
目标的躲閃幾率……70%(20%+50%開了躲閃)
目标的招架幾率……5%
戰士的緻命一擊率……30%
舉例驗證
測試結果基本是符合圓桌理論的,在一個閃避17%的潛行者開閃避後,其他玩家25%緻命幾率對他造成的平砍傷害……隻要能造成傷害,全部是緻命,在幾次實驗中沒有出現例外,但一個閃避為26%的潛行者開了閃避後玩家近戰攻擊基本不造成傷害,這裡隻考慮了平砍傷害,受到雙手持武的影響,“miss率+躲閃率+招架率”基本已經吃光了普通攻擊傷害。



















