從《王者榮耀》看對戰匹配機制 Elo Rating System 在遊戲中的運用

文/陳驍

不知道大家在玩遊戲的時候,是不是都產生過這樣的疑問:《王者榮耀》排位五連勝後遭遇九連跪,是不是遊戲操控勝率?《英雄聯盟》渡劫局總匹配神對手豬隊友,是不是有意制裁我?《爐石傳說》傳說段位獲勝,爲什麼排名不升反降?……這篇文章將說明遊戲匹配和排名的原理,相信可以打消大家心中的困惑。仍在玩《王者榮耀》的同學們或許記得,《王者榮耀》在 S11 賽季調整過一次匹配機制,自那以後,王者大神的小號上分車不如以前那麼穩了,時不時還會和其他車隊撞車_(:з」∠)_這是因爲,相比以往根據段位進行匹配的機制,新機制採用的算法能夠在一定程度上更精準地反映玩家的真實水平,減少了高段位玩家開小號遨遊低端魚塘的情況。這種算法就是——Elo Rating System 。

那麼,什麼是 Elo Rating System ?Elo Rating System 在遊戲中能起到什麼樣的作用?Elo Rating System 有哪些缺點?在實際應用中,應該如何處理?我們將圍繞這幾個問題展開說明。一、什麼是 Elo Rating System ?Elo Rating System 是由匈牙利裔美國物理學家 Arpad Elo 創建的一個衡量各類對弈活動水平的評價方法,是當今對弈水平評估的公認的權威方法。被廣泛用於國際象棋、圍棋、足球、籃球等運動。網絡遊戲英雄聯盟、魔獸世界內的競技對戰系統也採用此分級制度。第一次接觸到Elo Rating System ,是在電影《社交網絡》中。創辦了Facebook 的 Mark Zuckerberg 和 Eduardo Saverin 在 Harvard 讀大二時,一夜間搭建了網站 Facemash。這個網站每次會展示兩張不同女生的照片,用戶選擇自己認爲更好看的一張。每次選擇後,便進入下一組女生照片的評選。最終, Facemash 將計算出全校女生的長相排名。這其中所用的算法,就是 Elo Rating System。

而設計之初,Elo Rating System 僅是一個國際象棋選手的排名系統。那麼它究竟是如何實現對象的評價和排名的呢?讓我們以遊戲中的競技玩法積分排名爲例說明。Elo 會賦予每位玩家一個相同的初始積分,並進行以下計算:1. 根據積 分差計算雙方獲勝概率;2. 每位玩家根據對方積分和遊戲結果所表現出的水平分;3. 得出遊戲後的積分變化。計算公式:

EA:玩家 A 的勝率期望值EB:玩家 B 的勝率期望值(可以看出,EA+EB = 1 )RA:玩家 A 當前 積分RB:玩家 B 當前積分R'A:玩家 A 遊戲 後積分K:常量係數,後 文會說明具體作用SA/SB:實際結果勝負分,勝 = 1 ,平 = 0.5,負= 0演算過程:假設兩位當前積分爲 RA = 1900 ,RB = 1500 的玩家相互競技時, EA = 1/{1+10^[(1500-1900)/400]} ≈ 0.91EB = 1/{1+10^[(1900-1500)/400]} ≈ 0.09當 K = 32 時,假設玩家 A 勝出,SA = 1 ,SB = 0 ,則:R'A = 1900 + 32*(1-0.91) ≈ 1903 ,玩家 A 獲得 3 分R'B = 1500 + 32*(0-0.09) ≈ 1497,玩家 B 失去 3 分分母中的 400:爲什麼是 400,而不是 100、200 或者 1000 呢?從積分差上看,這個值影響着對戰雙方的獲勝期望。當雙方積分差相同時,這個值越大,雙方的獲勝概率越接近。當這個值等於 400 時,若雙方分差爲 100, 積分較高的一方獲勝期望約爲 64%。簡單地說,這個值等於 400,能夠讓多數玩家的積分保持標準正態分佈,也 符合多數遊戲“易於上手,難於精通”的設計規則。K 常量:不難看出 K 值越大,單次評價的積分變化幅度越大。那麼 K 值的設定應該 遵循什麼規則?一般而言,分段越 高,K 值越小。如此設 計,能夠令玩家的積分 在前期快速 趨近其真實水平,同時避免少數的幾場對局就改變頂尖玩家的排名。所以 K 值的選擇取 決於,這個遊戲需要以什麼樣的方式來統計選手的積分, 並根據玩家、玩家數量之類的參數微調。小結:從 Elo 的工作模式中我們可以得出以下幾點:1. Elo 會給出玩家一場對局的獲勝概率。Elo 積分相差越大,積分高的一方 獲勝概率就越大;2. 每一場對局後,對陣雙方都會進行一部分積分交換,勝者得分,敗者失分;3. 如果兩名玩家的積分相差很大,代表高分方獲勝的概率極大,因此即便贏了也漲不了多少分,敗方也掉不了多少分。但倘若被低分方爆出冷門,那高分方將失去大量分數。二、Elo Rating System 在遊戲中的作用瞭解了 Elo 的工作模式,就不難得出它在遊戲中的作用。衡量玩家實力Elo 積分直觀地量化玩家水平的高低。縮短匹配時間對局匹配時,玩家的 Elo 積分可以作爲匹配依據之一,只需要挑選與當前玩家積分相近的玩家即可,而不需要遍歷當前所有玩家,縮短了匹配時間。創造高質量的公平對局爲玩家匹配實力旗鼓相當的隊友和對手,能夠保護新手不被有經驗的玩家血虐,同時讓高端局中沒有菜鳥,使玩家的遊戲樂趣最大化。激勵玩家競爭積分和排名爲玩家提供榮譽感,滿足玩家的虛榮心,激勵玩家攀比、競爭、提升實力,並最終爲遊戲的生態環境和活躍帶來積極影響。三、Elo Rating System 的缺點任何算法系統都有優缺點,Elo 也不例外。初期的盲目性Elo 積分在達到合理(趨近真實)水平之前需要一個過程。比如一個 2000 分的玩家玩小號,遇到的對手大概都是 1400 分水平,這時候 Elo 積分是不能準 確反映他的實力的。經過幾局對戰,這名玩家的積分會逐漸達到合理水平。這個過程就是 Elo 積分的收斂過程。對時間不敏感Elo 積分不會隨着時間變化,當一位玩家很長時間沒有遊戲的時候,他的水平可能會上下浮動,但他的 Elo 積分並不會隨之改變。尤其對於頂尖玩家而言,這時候的積分排名未必能反映玩家間真實的實力排名。四、Elo Rating System 的實際應用針對上述問題,在實際應用中有着不同的對策,目的都在於——縮短收斂過程弱化不良體驗。

賽季制在遊戲中採用賽季制,隨賽季重置段位和排名。解決因 Elo 不隨時間變化導致的個別玩家長期佔據排行榜位置,引起其他玩家挫敗感和消極情緒的問題。同時,隨賽季投放版本內容,刺激玩家活躍和競爭。輔助定級

1. 定級賽:《英雄聯盟》《守望先鋒》引入了定級賽機制。在每個賽季初,通過數場定級賽的表現,決定玩家該賽季排位賽的初始段位,縮短了Elo積分的收斂期。

2. 段位繼承:《王者榮耀》《絕地求生:刺激戰場》每個賽季初重置段位時,會根據上賽季段位進行一定壓縮並繼承。同樣縮短了收斂期,保證了賽季初的對局質量。

積分獎懲1. 勇者積分:《王者榮耀》在獲勝加一星、失敗減一星的基礎規則外,增加了勇者積分規則。比賽結束後,無論勝負都會得到勇者積分。勇者積分=玩家無掛機行爲獎勵+連勝獎勵+局內評分排名獎勵+對手過強獎勵+雖敗猶榮獎勵。通過勇者積分,可以加速積分的收斂過程,並起到鼓勵玩家認真對待每一局遊戲的效果。

2. 長時間不對局,扣減段位和積分:《王者榮耀》中進入最強王者段位後,系統會每隔7天進行一次檢測,如果玩家在7天內沒有排位賽行爲,會被扣除1顆星。同理英雄榮耀戰力:

這樣的規則保證了段位和積分的時效性,也促進了玩家的持續活躍。爲什麼不用 Elo 積分代替段位?看到這裡,可能有同學會問:那爲什麼不直接用 Elo 積分反映玩家水平呢?加入段位不是讓機制更復雜,Elo 收斂更慢了嗎?其實早些年,不論是主打《Dota》對戰 的 11 平臺,還是《英雄聯盟》或者 《Dota2 》,使用的都是積分制。但後來,《英雄聯盟》在 2012~2013 的 S3 賽 季中取消了排位分,改爲段位制。《Dota2 》也終於在 2017 年底,隨着 7.07 版 本的更新取消了天梯積分,同樣改爲了段位制。這麼做的原因在於:1. Elo 積分的精確指示會打擊玩家積極性。隨着積分的收斂和 K 值的減小, 最終積分會在一個小範圍內浮動,玩家對積分的增減會愈發無感,不利於玩家的 活躍;2. 積分的傳播效果不如段位好。從市場營銷角度,“最強王者”“至尊星耀” 應該遠比“我天梯 2200”有感染力,更易於理解和傳播。Elo 積分將在段位之外,繼續作爲衡量玩家水平的標準和匹配的依據,保證 遊戲體驗。畢竟,段位對活躍的玩家有很多鼓勵,並不是玩家真實水平的全部反 映:保證總體勝率在 50%以上(考慮到勇者積分和段位保護應該都不到 50%),只要完成足夠的對局就能到達王者段位,2000+場勝率47%的安琪拉了解一下。所以,如果單純用段位匹配,會讓那些常年蹭車的妹子們懷疑人生——她們的真實水平並沒有段位顯示的那麼高。

最後,回到篇首的三個問題。1&2:匹配機制和算法只是基於經驗數據的預估模型,無法精確評估玩家個 體在匹配後的單局內,會表現出什麼樣的遊戲水平,既沒有能力也沒有動機去控 制玩家的遊戲行爲。因此,操控勝率和系統制裁這樣的說法是不成立的;3:在瞭解了 Elo 的排名原理後很好理解,獲勝後排名不升反降,是因爲對 局過程中有玩家的積分超過了你當局獲勝後的積分。