在電子競技游戲中,特別是當有多名選手參加比賽的時候需要平衡隊伍間的水平,讓游戲比賽更加有意思。這樣的一個參賽選手能力平衡系統通常包含以下三個模塊:
事實上目前已經有的游戲評分系統是Elo評分,但是Elo評分僅只是兩名選手參加的游戲。TrueSkill系統是基于貝葉斯推斷的評分系統,由微軟研究院開發以代替傳統Elo評分,并成功應用于Xbox Live自動匹配系統。TrueSkill評分系統是Glicko評分系統的衍伸,主要用于多人游戲中。TrueSkill評分系統考慮到了你水平的不確定性,綜合考慮了玩家的勝率和可能的水平漲落。當玩家進行了更多的游戲后,即使你的勝率不變,系統也會因為對你的水平更加了解而改變對你的評分。 怎樣進行能力計算 TrueSkill排名系統是針對玩家能力進行設計的,以克服現有排名系統的局限性,確保比賽雙方的公平性,可以在聯賽中作為排名系統使用。它為玩家排名使用的為 貝葉斯定理。系統的特點是假設每一個玩家的能力不是固定的,其能力水平的表現為一個鐘型曲線(正態分布或高斯分布)。 綠色區域15~20代表了RankingSystem對的評分。可以看出系統的評分是比較保守的。σ越小則越靠近μ ,相應的玩家的能力水平就較高。總的來說玩家的水平受“平均得分”和“玩家穩定性”綜合影響。 由于TrueSkill排名系統使用高斯信仰分布來描述一個玩家的能力,也就意味著玩家的能力始終落在4倍的σ內(概率為99.993666%)。從微軟追蹤的65萬玩家數據顯示,有99.99%都落在了3倍的σ內。有趣的是,TrueSkill排名系統可以使用1作為最初的不確定性做所有的計算,將相乘μ和σ可以縮放到任何其他的范圍。假設所有的計算都以初始值μ=3和σ=1,如果一個玩家有50級,幾乎所有的μ的發生是在±3倍的初始σ,σ可得50/6 = 8.3。兩個玩家最大的區別在于μ值得大小。假設σ相當,那么μ高的玩家贏得機會就越大,這一原則也適用在TrueSkill排名系統。但并不表示μ高的就一定會贏。在單個的配對比賽中,玩家的個人表現與玩家的能力是相當的,游戲結果也是有個人表現決定的。因此,可以認為能力的一個玩家在TrueSkill的排名是在大量游戲中的平均表現。個人表現的變化原則是能力表現的一個參數。 怎樣更新能力值 TrueSkill排名系統只會根據比賽結果更新μ和σ,它假設的情況為一個玩家的表現圍繞著他的能力水品進行變化,如果一個玩家玩一個基于點數的游戲,他戰勝了所有的其他10個對手和他和戰勝了另外一場比賽只有一個對手的積分是一樣的,但是這樣兩場比賽確實反映了不同選手的能力情況。通常會使σ下降。在計算一場新的比賽結果之前,TrueSkill排名系統會計算比賽的排名與選手在比賽前的排名的變化情況。排名的變化最終影響了玩家技能的不確定性σ。這個參數可以被TrueSkill用來記錄玩家的技能的變化。并且σ永遠不可能為0。 下面這張表格來自微軟研究院,此表格給出了8個新手在參與一個8人游戲后μ和σ的變化。 這里有個很有意思的現象:注意第四名Darren和第五名Eve,他們的σ是最小的,換句話說系統認為他們能力的可能起伏是最小的。這是因為通過這場游戲我們對他們了解得最多:他們贏了3/4個人,也輸給了4/3個人。而對于第一名Alice,我們只知道她贏了7個人。如果想知道更詳細的定量分析可以先考慮最簡單的兩人游戲情況 在上述的方程式中,唯一未知的就是選手的表現。另外還有就是游戲的模式。系數β2代表的是所有玩家的平均方差。 v(.,.) 和w(.,.) 是兩個函數,比較復雜。ε是個與游戲模式有關的參數。簡而言之,你贏了 就增加,輸了 減小;但不論輸贏,都是在減小,所以有可能出現輸了漲分的情況。 怎樣進行選手匹配 勢均力敵的對手能帶來最精彩的比賽,所以當自動匹配對手時,系統會盡可能的為你安排可能與水平最為接近的玩家。TrueSkill評分系統采用了一個值域為(0,1)的函數來描述兩個人是否勢均力敵:結果越接近0代表差距越大,越接近1代表水平越接近。假設有兩個玩家A和B,他們的參數為(μA,σA)和 (μB,σB),則函數對這兩個玩家的返回值為 c的值由如下公式給出 如果兩人有較大幾率被匹配在一起,光是平均值接近還不行(e指數上那一項),還得方差也比較接近才行(d)。 怎樣創建能力排行榜 TrueSkill假設玩家的水平可以用一個正態分布來表示,而正態分布可以用兩個參數:平均值和方差來完全描述。設Rank值為R,代表玩家水平的正態分布的兩個參數平均值和方差分別為μ and σ,則系統對玩家的評分即Rank值為 R=μ-k*σ k值越大則系統的評分越保守。在Xbox Live上,系統為每個玩家賦予的初值是μ = 25 以及σ= 25 / 3,k=3。所以玩家的起始Rank值為R=25-3*25/3=0。 |
|