吃雞類遊戲應該如何科學使用ELO分

遊資網發表於2019-06-20
導語

戰術競技遊戲(俗稱吃雞)作為一種多方參與、以排名為目標的遊戲玩法,由於採用死亡即淘汰的遊戲機制與傳統的多方持續參與整局遊戲爭奪排名的遊戲有本質區別,導致傳統的排名ELO分演算法的計算結果與遊戲體驗不符。本文從邏輯上推匯出一套適合戰術競技遊戲的ELO分計算方法。

Q1:ELO分在吃雞中應用有什麼問題?

隨著戰術競技遊戲玩家的全民化,後臺匹配機制的設計逐漸進入了大眾的視野,ELO分也成為了很多玩家耳熟能詳的概念。ELO分演算法的核心是一個概率估算公式:

RateAtoB=11+10(ELOB−ELOA)/400RateAtoB=11+10(ELOB−ELOA)/400

它的作用可以粗略理解為:A的ELO分每比B的ELO分高400分,則A贏了B之後的加分降低一個數量級。這樣的好處是使得絕大多數情況下,ELO分可以大致穩定在一個±1200的區域範圍內。比如國際象棋是從1800分開始記,世界最高紀錄是2882分。ELO分非常簡潔而可靠,使其幾乎存在於所有PvP對戰遊戲的後端伺服器演算法中。

ELO分的一個主要缺陷是隻能基於兩個選手或隊伍的對戰結果進行計算,而在網路遊戲經常會有超過2支隊伍參與遊戲的情況(例如CF中的個人競技玩法),在這類玩法中排名成為玩家競爭的主要目標。為使得ELO分演算法可以用於排名計算,一種常見的做法是將排名領先的玩家等同於贏了所有排名落後的玩家。

吃雞類遊戲應該如何科學使用ELO分

舉個栗子,假設有A、B、C、D、E 5位選手參與個人競技遊戲,最終的排名分別是1、2、3、4、5名,按照上述模擬計算方法,則他們之間的勝負關係如下:

吃雞類遊戲應該如何科學使用ELO分

按照兩兩之間的勝負關係分別計算ELO分加減分,再將每個人面對所有對手的加減分取均值即為最終加減分結果。簡單起見,假設所有人的ELO分相同,勝負數即決定了每個人的加減分結果。

風靡世界的吃雞玩法也是一種多人爭奪排名的玩法,所以此方法也可以套用在吃雞遊戲上,比如100個人的單排最終排名的勝負數如下:

吃雞類遊戲應該如何科學使用ELO分

如果用這個勝負數來結算ELO分,有沒有什麼地方不太對勁呢?

吃雞類遊戲應該如何科學使用ELO分

想象一下:決賽圈最後一分鐘,我封煙、走位、卡視野、閃身、拉槍線、一頓操作猛於虎淘汰了第2名成功吃雞!!!結果……加分只比第2名多2%?差距和前後腳落地成盒的99名和100名一樣!???

這個演算法的問題是,排名雖然都是差了1位,但是第1名和第2名的差距應該遠大於第99名和第100名,但在這個演算法看來卻是一樣的!

那麼在吃雞遊戲中不同名次之間的差距應該是多少才合理呢?

Q2:吃雞難度如何量化?

第1名和第2名到底差多少呢? ——應該是得第1名的難度-得第2名的難度

那首先要知道得第1名的難度是多少。是什麼東西決定了吃雞的難度呢? ——對手的數量

我們從最簡單的情況開始考慮以不同的人數開局:
1個人 - 直接吃雞了,假設難度為0
2個人 - 只要戰勝1個對手就吃雞了,這是難度最小的情況,假設難度為1
3個人 - 可以戰勝2個對手,或者等他們火拼之後坐收漁利,難度應該在1~2之間
4個人 - 理想情況下,應該是2個人各自戰勝1個對手然後火拼,這樣需要戰勝2個對手;最少需要戰勝1個、最多3個,平均下來難度應該在2左右。

綜合上述思考,我們可以得出以下結論:
吃雞的難度可以用需要擊殺的對手數量來描述。
需要擊殺的對手數量在理想情況下與開局的人數是對數關係,即 難度 = log2log2(人數)

吃雞類遊戲應該如何科學使用ELO分

為了驗證第二點結論是否正確,我們調取某吃雞手遊的單排開局玩家數與吃雞者擊殺玩家數的統計資料:

吃雞類遊戲應該如何科學使用ELO分

可以看到資料幾乎完美的吻合log2log2(人數)的曲線,從而證明了這個結論是可靠的:吃雞難度為入局隊伍數以2為底的對數。

好,我們現在知道100個人開局的情況下,第1名的難度是log2(100)log2(100),第2名呢?

難度=戰勝對手數量,第2名的難度就是當遊戲進行到還剩餘2個人的時候,每個玩家需要戰勝多少個對手。顯然2個人的難度應該是一樣的,即各自戰勝log2(100/2)log2(100/2)個對手。

第3名呢?log2(100/3)log2(100/3) 按照對數的運演算法則log2(100/3)=log2(100)−log2(3)log2(100/3)=log2(100)−log2(3)。故不同名次的難度為:難度 = log2log2(人數) - log2log2(名次)。在Excel里拉一個序列,即可得到100人單排不同名次的難度表:

吃雞類遊戲應該如何科學使用ELO分

這樣算下來,第1名和第2名的難度差距是99名和100名的100倍!這樣吃雞的感覺如何?

吃雞類遊戲應該如何科學使用ELO分

Q3:吃雞應該如何應用ELO分?

在明確了不同名次的難度之後,就可以基於難度構建一個合理的吃雞排名ELO分計算方案了。

方法還是基於類似個人競技的勝負關係,只需在計算完ELO分之後乘以兩兩之間的排名難度之差,然後取均值即是最終的加減分。

100人單排不同名次的加減分倍數均值如下:

吃雞類遊戲應該如何科學使用ELO分

也就是說,在所有人ELO分相同的情況下,38名得分是不加不減,吃雞的加分是落地成盒的3.8倍,聽上去是不是挺合理的?

需要注意的是,這個數值只適合用於100人單排的情況,如果人數有變化或者不是單排,比方100人四排是25支隊伍,則加分倍數計算結果如下:

吃雞類遊戲應該如何科學使用ELO分

可以看到同樣是吃雞,四排的加分比單排要少。所以程式實現的時候不能直接使用表格中的倍數數值,而需要根據實際的隊伍數量實時計算倍數。

結語


本文介紹了一種合理的在吃雞玩法中根據排名計算ELO分的方法,但在實際的遊戲運營中,要有效的利用ELO分準確定位玩家的狀態從而優化玩家體驗,還需要綜合考慮玩家的段位、近期戰績、遊戲經驗等外圍因素,筆者將在後續文章中繼續分享相關設計思路。

作者:lion,騰訊遊戲遊戲策劃。
來源:騰訊遊戲學院
地址:https://mp.weixin.qq.com/s/sFf5Bj4UfEGae6n7toPU_g

相關文章