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