王者榮耀的匹配算法與產(chǎn)品設(shè)計-Elo rating system

30 評論 37266 瀏覽 101 收藏 12 分鐘

本文作者將與我們分享王者榮耀的匹配算法與產(chǎn)品設(shè)計,enjoy~對于當(dāng)年沒認(rèn)真聽數(shù)分課的童鞋,或許較為晦澀難懂哦~

回顧2017年的全球手游市場,騰訊推出的《王者榮耀》斬獲了綜合收入第二,下載量第三的成績,堪稱國貨之光。這款游戲隨著用戶流量從PC到移動端轉(zhuǎn)移的大潮不斷成長,以MOBA(多人在線競技)類游戲dota、英雄聯(lián)盟為范本,并加以移動化輕量化改進(jìn),覆蓋了更碎片的時間,更廣泛的人群。

拿自己舉例,在玩農(nóng)藥的這一年多中,不知不覺就打到了王者段位,厲害程度相當(dāng)于超級瑪麗8-4吧:)。粗略算來,總游戲時間600-700小時,比今年的半數(shù)交往對象還長。

如果把普通應(yīng)用看做一臺二手奧拓,那手游至少是輛大奔吧,本著造不出大奔就先拆大奔的心態(tài),在對這款應(yīng)用不斷的使用和上癮中,也試圖找到一些產(chǎn)品背后的設(shè)計。目前覺得比較有趣的幾個部分是:匹配,評分評級?,成長流失。今天討論一下匹配的部分。

不知道在大家玩農(nóng)藥的時候有沒有遇到這些困擾:

  • 排位五連勝之后又來了一波七連跪,是不是系統(tǒng)故意給我比較強(qiáng)的對手?
  • 排位賽為什么要5個英雄才能玩?匹配賽就不需要阿。
  • 為什么匹配會遇到黃金玩家,我明明鉆石了阿!

相信你看完今天的會對農(nóng)藥的匹配方法有一個比較具體的認(rèn)知。

在王者榮耀中,最主要的兩種游戲模式是匹配賽和排位賽,匹配是5v5標(biāo)準(zhǔn)模式,相當(dāng)于基本款,排位賽在此基礎(chǔ)上會計算等級排名。從最基本的用戶需求出發(fā),無論以上那種模式,當(dāng)某一用戶開啟一局游戲時,首先需要為他找到4名隊(duì)友與5名對手,而這9名用戶的選擇的依據(jù)很簡單,就是實(shí)力相當(dāng)。(我們在這里先只考慮單排的情況,因?yàn)殡p,三,五排出現(xiàn)時變量太復(fù)雜)

如何去衡量實(shí)力相當(dāng)呢?可以再簡化一下題干:當(dāng)有兩名旗鼓相當(dāng)?shù)耐婕疫M(jìn)行對決后,對決結(jié)果該如何影響系統(tǒng)對他們實(shí)力的判定呢?如果能夠定量的回答這個問題,那就非常厲害了。目前這個問題的最優(yōu)解是由一個叫匈牙利裔美國物理學(xué)家Arpad Elo發(fā)明的,所以被命名為Elo rating system,它最早被用于象棋比賽中,目前被公認(rèn)為衡量各類對弈競技水平的權(quán)威評價方案,廣泛用于國際象棋、圍棋、足球、籃球比賽中,以及英雄聯(lián)盟、魔獸世界、dota等競技對戰(zhàn)系統(tǒng)中。

Elo算法成立于以下前提:

  1. 每個玩家的表現(xiàn)都符合隨機(jī)變量的正態(tài)分布。
  2. 無論個人在比賽中的表現(xiàn)如何,球員的平均價值都會慢慢增加。

正態(tài)分布可以說是統(tǒng)計學(xué)中最重要的分布(幾乎相當(dāng)于萬金油了),不論考高數(shù)還是考概率論,都一定大考特考。上述提到的例子中,任何一名選手的即時表現(xiàn)都是符合正態(tài)分布的,因?yàn)檫x手水準(zhǔn)的提高是緩慢的,非一蹴而就的,所以代練,作弊都會對系統(tǒng)造成破壞,嚴(yán)厲譴責(zé)。生活中類似的例子很多,比如社會收入分布,人群身高分布等等。

第二個條件可以理解為要求玩家主觀上都以提升實(shí)力為目的,否則整個系統(tǒng)就失去了意義。

?Elo算法的邏輯解釋

等級分系統(tǒng)通過計算雙方的輸贏概率,結(jié)合競技后的結(jié)果來不斷修正玩家的分?jǐn)?shù)。如果一個較高分玩家贏了,那符合系統(tǒng)的預(yù)期,少量分?jǐn)?shù)會從低分玩家方扣除,并加給高分玩家。反之,高分玩家會被扣除相對更多的分?jǐn)?shù),并把這些分?jǐn)?shù)加給低分玩家。

定量計算:

A和B為兩名玩家,R代表他們當(dāng)前的rating,E為預(yù)期勝率,所以EA+EB=1。

當(dāng)比賽結(jié)束后,實(shí)際勝負(fù)值S最多有三種情況,勝(1分),平(0.5分),負(fù)(0分)RA’ 為一場比賽結(jié)束后的新rating:

K是一個常量,代表一次比賽對于選手得分的影響程度。較小的K值意味著較小的影響,不同的比賽性質(zhì)與階段可以選擇不同的K值,國際象棋大師賽中,K=16;大部分游戲規(guī)則中,K=32。通常水平越高的比賽K越小,為了避免少數(shù)幾場比賽就改變選手的排名。以上公式的證明不展開。

舉個栗子感受一下:玩家A排位分?jǐn)?shù)2000,玩家B1800,那么A的預(yù)期勝率為:EA=75.97%,EB=24.03%,如果在實(shí)際的對決中(取k=32),A勝利,則A將收獲7.7分,B將損失7.7分;B勝利,則A將損失24.3分,B將收獲24.3分??梢园l(fā)現(xiàn),不同結(jié)果出現(xiàn)時,每位選手的積分變量也不同。

算法特點(diǎn)

離散性

Elo 算法只需要知道三個要素即可進(jìn)行迭代:選手賽前積分,對手賽前積分,比賽結(jié)果,計算和理解成本都很低(本質(zhì)是因?yàn)榉e分操作在公式推導(dǎo)時已經(jīng)被優(yōu)化了)

初始態(tài)的盲目性

Elo rating中新玩家要達(dá)到自的合理的積分范圍需要較長的時間,這也是算法不斷收斂的過程,在實(shí)際應(yīng)用中,我們常會遇見這樣的情況:1新玩家 2老玩家開新號。這時我們就需要其他策略來輔助決策定級,如果這一塊做的不好,玩家就會覺得對手太強(qiáng)或者太弱,流失率會增高。反觀王者榮耀的排位規(guī)則中,最低達(dá)到6級,最少擁有5個英雄才可以參加,這其實(shí)就是一種輔助定級定手段,讓系統(tǒng)能夠更準(zhǔn)確的定位選手能力。同時,農(nóng)藥的匹配模式是完全按照ELO值匹配隊(duì)友和對手;排位賽是按照段位水平和ELO值綜合評判并匹配的,這也能夠解釋為什么匹配時你會遇到和自己相差甚至一個大段位的隊(duì)友/對手了,而排位不會。

當(dāng)然這個特性也不是全然負(fù)面,我們經(jīng)??吹接螒蛑写毚虻然疑袠I(yè)大行其道,如果Elo rating更精確敏感,那作弊就會更容易了。

實(shí)際應(yīng)用中的問題

1. 為什么王者榮耀不直接使用Elo積分反應(yīng)玩家水平?(dota的天梯積分就是直接使用的elo積分)

其實(shí)這完全是pm的小手段,我們會發(fā)現(xiàn)當(dāng)用戶的積分穩(wěn)定下來以后,他對單場比賽的分?jǐn)?shù)增減會越來越無感,這種刺激絕對比不上贏了加星星輸了扣星星那么明確和有力,而且將數(shù)字轉(zhuǎn)化為文字(黃金白銀鉑金鉆石),更易于傳播和理解。本質(zhì)上,還是對于系統(tǒng)反饋的量化和包裝。這也屬于我們開頭提到的輕量化改進(jìn)中的一環(huán),產(chǎn)品和用戶是互相選擇的,天梯積分決定了dota的競技性,排位段位則讓王者榮耀有了普適性,才會被新玩家大群體所接受。

2. 理論中都是1v1作戰(zhàn),那5v5時該如何進(jìn)行Elo 積分?

就像elo積分本身是一種目前的最優(yōu)解,復(fù)雜變量的處理也有不同的處理方法,具體取決于業(yè)務(wù)需求,所以以下結(jié)論是猜想的,未經(jīng)證實(shí)。

可行的方案可能是:將5名選手的elo 積分的算術(shù)平均作為團(tuán)隊(duì)積分,再根據(jù)不同玩家的單場KDA進(jìn)行積分加權(quán)。但此處并未考慮多人排位的情況,假設(shè)出現(xiàn)了直男帶妹上分,那以上規(guī)則不一定繼續(xù)適用。而且考慮到不同隊(duì)伍的排位方式不同,是否還應(yīng)該進(jìn)行小團(tuán)隊(duì)積分加權(quán)?(這些都沒有數(shù)據(jù)支持所以暫不討論)

3. 還有什么產(chǎn)品用的了類似算法嗎?

其實(shí)只要滿足Elo rating成立前提的場景就可以套用該算法,可以根據(jù)業(yè)務(wù)的實(shí)際需求不斷調(diào)整參數(shù)值使其更好地服務(wù)于系統(tǒng)。舉個栗子:

FaceMash? – Facebook前身,由扎克伯格于2003在哈佛大學(xué)的宿舍創(chuàng)建。FaceMash是哈佛版美女評選網(wǎng)站,每次將兩張女生照片放置在一起,讓用戶選擇哪一位更吸引人。網(wǎng)站引起了轟動,并獲得哈佛大學(xué)學(xué)生的歡迎。FaceMash曾在第一夜吸引了450位訪問用戶,產(chǎn)生了2.2萬頁面瀏覽量,上線幾天后被哈佛大學(xué)關(guān)停。所以這個公式也出現(xiàn)在以扎克伯格為藍(lán)本的電影《社交網(wǎng)絡(luò)》中:

參考資料:

  1. 微博:https://weibo.com/wzrydonny
  2. 知乎:https://zhuanlan.zhihu.com/p/28190267
  3. wikipedia:https://en.wikipedia.org/wiki/Elo_rating_system
  4. Google:http://blog.hackerearth.com/elo-rating-algorithm
  5. 王者榮耀公眾號

 

作者:阿廝,公眾號:?assbis的私人小花園(ID:assbis)

本文由 @阿廝 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖由作者提供

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 難怪我連跪個五六把,總會贏一把,太難了,一直掉··哈哈哈哈哈

    來自浙江 回復(fù)
  2. 目前看的介紹elo匹配機(jī)制里 講的最好理解的,感謝!

    來自北京 回復(fù)
  3. 段位機(jī)制的好處在于
    1.段位保護(hù)機(jī)制可以讓用戶的段位只升不降,對于自尊心脆弱的用戶有所幫助
    2.段位機(jī)制更符合“賽季”模式推廣

    另外
    1.dota2現(xiàn)在也采用ELO+段位的機(jī)制了
    2.dota2對每個用戶單人和組隊(duì)分?jǐn)?shù)是分開計算的

    來自上海 回復(fù)
    1. “段位保護(hù)機(jī)制”是說勇者積分嗎?

      來自北京 回復(fù)
    2. 段位保護(hù)是說用戶到達(dá)一定段位后,只會升不會降;
      如dota2里面一個“萬古流芳3星”的用戶,即時輸再多也不會掉到“萬古流芳2星”
      當(dāng)然隱藏分還是會降低的

      來自上海 回復(fù)
    3. 這樣確實(shí)是一個緩沖,不過賽季結(jié)束也不會掉段嗎?

      來自北京 回復(fù)
    4. 賽季結(jié)束時候的段位就記作這個賽季的最終段位,作為過往賽季總結(jié)進(jìn)行展示;并且可以按照段位發(fā)放獎勵,比如lol的皮膚和載入框
      新賽季開始后,重新開始定位賽

      來自上海 回復(fù)
    5. soga 謝謝分享,學(xué)習(xí)了~

      來自北京 回復(fù)
  4. Excuse me?社會收入是正態(tài)分布? 我們隔壁小區(qū)住了一個富商月入十萬 我月入五千 請問這是正態(tài)分布?

    來自重慶 回復(fù)
    1. 你想說什么?正態(tài)分布是以社會全體的收入為變量,你和富商只是其中的兩個離散點(diǎn),如何反駁社會收入不成正態(tài)分布。

      回復(fù)
    2. 文科生別做產(chǎn)品,去做ux吧

      來自四川 回復(fù)
    3. 我不是文科生…

      來自北京 回復(fù)
    4. 我說的不是你

      來自四川 回復(fù)
  5. 一點(diǎn)也沒有看懂,感覺 好厲害的樣子!?。。?/p>

    來自浙江 回復(fù)
  6. 沒看懂!但是很厲害的樣子!??

    回復(fù)
  7. 您好,您作為一個pm,同樣還會去鉆研一個成功產(chǎn)品的相關(guān)算法嗎?還是說您本身就是做算法的技術(shù)出生?因?yàn)槲夷壳白鳛橐粋€產(chǎn)品助理,以后也會走pm的方向,很迷惑到底該不該鉆研一些優(yōu)秀產(chǎn)品的后臺算法,還是把算法什么的統(tǒng)統(tǒng)交給程序猿,自己專注于產(chǎn)品設(shè)計就可以了

    來自四川 回復(fù)
    1. 你好哦,首先我覺得算法本身就是產(chǎn)品設(shè)計的一部分,這篇文章討論的就是數(shù)值策劃(游戲行業(yè)的pm)工作范疇內(nèi)的東西,實(shí)際上任意一款產(chǎn)品都或多或少會涉及到算法(比如推薦,搜索,排行等常見模塊)。其次,算法的核心是用量化的手段來解決問題滿足需求,這個過程是科學(xué)的嚴(yán)謹(jǐn)?shù)?,將算法語言轉(zhuǎn)化為產(chǎn)品語言也是pm在工作過程中應(yīng)該掌握的。綜上,我認(rèn)為研究一下還是收獲很多的,至于選擇什么復(fù)雜度的算法,理解到什么程度完全是見仁見智的,取決于自己的興趣和工作范圍。
      值得一提的是,理工科背景確實(shí)會幫助你更好的理解算法。

      來自北京 回復(fù)
  8. 雖然看不太懂,但理解其中的原理

    來自北京 回復(fù)
  9. 帶妹真的是非常大的干擾,我猜農(nóng)藥的帶妹算法是強(qiáng)制匹配相同積分段,或者根據(jù)積分段來加權(quán)。 ?

    來自廣東 回復(fù)
    1. 嗯呢,理想情況可以這么考慮。實(shí)際情況中,多人排位相對單排還是少很多,所以估計要分類討論。聽說是五排按照最高段位玩家匹配,單排完全根據(jù)平均段位,二/三排根據(jù)平均段位+隊(duì)伍加成。

      來自北京 回復(fù)
  10. 好好好,瘋狂打尻

    來自上海 回復(fù)
  11. 你好,我在做一個現(xiàn)實(shí)中的活動平臺。其中需要一些匹配算法。能聊會嗎?

    回復(fù)
    1. 好的,具體是什么樣的活動平臺?

      回復(fù)
    2. 能電話聊嗎?

      回復(fù)
    3. 先微信吧?
      bay1218

      回復(fù)
  12. 變態(tài)

    回復(fù)
    1. excuse me?

      來自北京 回復(fù)
  13. 解釋的很清晰,牛逼

    來自北京 回復(fù)
  14. 雖然我沒看懂 但是好厲害的樣子

    來自北京 回復(fù)
    1. 請問哪一部分不太懂?

      來自北京 回復(fù)