大家好,今天我將化身為峽谷剛正不阿的峽谷治安官——狄仁杰大人,作為一名程序員,來為大家淺談一下王者榮耀 target=_blank class=infotextkey>王者榮耀中的匹配算法。
不知道在大家玩農藥的時候有沒有遇到這些困擾:
排位五連勝之后又來了一波六連跪,
是命運的作弄還是系統的安排?
。。。
排位賽為什么要三人或五人英雄才能玩?
四人就不行,匹配賽就不需要啊。
。。。
為什么匹配會遇到鉆石玩家?
我明明星耀了啊!
。。。
相信你看完今天的會對農藥的匹配方法有一個比較具體的認知。
EL0等級分系統
ELO等級分系統(ELO Rating System)是由匈牙利裔美國物理學家阿帕德·埃洛創建的一個衡量各類對弈活動水平的評價方法,是當今對弈水平評估的公認的權威方法之一,被廣泛用于國際象棋、圍棋、足球、籃球等運動,是一套較為完善的評分規則和機制。
ELO等級分系統更適合對競技類游戲的選手的技術等級進行評估,用以計量個體在對決類比賽中相對技能的算法系統;對于MOBA(多人在線競技)游戲而言,需要創造雙方勢均力敵的競技環境,讓每場對局盡可能的接近公平。
《王者榮耀》采用了ELO等級分系統來評估每一位召喚師的實力,并盡量匹配10個實力相當的對手及隊友進行一場酣暢淋漓的比賽,給到召喚師高質量的對局體驗是《王者榮耀》設計匹配算法時唯一追求的目標。
在《王者榮耀》里,有多種多樣的游戲模式,在ELO等級分系統為基礎的前提下,不同的游戲模式其具體的匹配規則還是會有些許差異。比如:匹配模式是完全按照ELO值匹配隊友和對手;排位賽是按照段位水平和ELO值綜合評判并匹配的,會盡可能保證對戰雙方的實力保持在均衡水平。通過將數字轉化為文字(黃金白銀鉑金鉆石),更易于傳播和理解。排位段位則讓王者榮耀有了普適性,才會被新玩家大群體所接受。
Elo算法成立于以下前提:
每個玩家的表現都符合隨機變量的正態分布。
無論個人在比賽中的表現如何,隊員的平均價值都會慢慢增加。
任何一名選手的即時表現都是符合正態分布的,因為選手水準的提高是緩慢的,非一蹴而就的,所以代練,作弊都會對系統造成破壞,嚴厲譴責。這就是農藥為什么對投訴進行嚴格處理的原因。生活中類似的例子很多,比如社會收入分布,人群身高分布等等,不要和馬云和姚明比。
Elo算法的邏輯解釋
等級分系統通過計算雙方的輸贏概率,結合競技后的結果來不斷修正玩家的分數。如果一個較高分玩家贏了,那符合系統的預期,少量分數會從低分玩家方扣除,并加給高分玩家。反之,高分玩家會被扣除相對更多的分數,并把這些分數加給低分玩家。
定量計算:
Ea=1/(1+10^((Rb-Ra)/400) ) Eb=1/(1+10^((Ra-Rb)/400) )
A和B為兩名玩家,R代表他們當前的rating,E為預期勝率,所以EA+EB=1。
當比賽結束后,實際勝負值S最多有三種情況,勝(1分),平(0.5分),負(0分)RA’ 為一場比賽結束后的新rating:〖Ra〗^'=Ra+K(Sa-Ea)
K是一個常量,代表一次比賽對于選手得分的影響程度。較小的K值意味著較小的影響,不同的比賽性質與階段可以選擇不同的K值,國際象棋大師賽中,K=16;大部分游戲規則中,K=32。通常水平越高的比賽K越小,為了避免少數幾場比賽就改變選手的排名。
舉個栗子感受一下:玩家A排位分數2000,玩家B1800,那么A的預期勝率為:EA=75.97%,EB=24.03%,如果在實際的對決中(取k=32),A勝利,則A將收獲7.7分,B將損失7.7分;B勝利,則A將損失24.3分,B將收獲24.3分。可以發現,不同結果出現時,每位選手的積分變量也不同。
你能匹配到什么樣的隊友,完全是由算法評估各位召喚師綜合能力來決定的,所以正如之前所說,從匹配的算法和規則的層面來說,每一局的匹配結果是一個純粹的數學問題。一定還是會有召喚師問,但為什么我總是遇到“坑隊友”!
你的隊友可能會因為很多原因發揮不佳:考慮到陣容的合理性而選擇不擅長的英雄、前期逆風導致隊內氛圍不佳情緒不好、玩法風格和隊友不夠匹配等等。
你打王者榮耀嗎?
普元第一屆王者榮耀公開賽開始啦
長按圖中二維碼圍觀
圍觀禮:直播抽獎、預測冠軍獎品等等
好禮等你來拿
關于作者:卜壯,普元前端開發工程師,負責Mobile 8.0項目管理平臺前端部分。熟悉ReactNative,目前正在學習Vue,大前端技術探求者。
關于EAWorld:微服務,DevOps,數據治理,移動架構原創技術分享。