評級系統
說明
在第一部分中我們將簡述基礎評分的設定和操作,稍後將對評分方程式和計算有詳細的說明。
設定和操作
評分系統將以玩家已取得的結果,加上對未來遊戲結果的預測為基礎。我們使用統計方法來計算玩家的評分,同時致力於開發和設計一個更加符合遊戲社區有求的評比系統。
以下簡述基礎的設定和評分計算:
- 與新老玩家,強大和較弱的玩家進行遊戲,將不會對最終評比等級有重大的影響。
- 您參與的遊戲次數越多,等級評比就會越穩固。
- 由於系統不能確定或預測新玩家的遊戲結果,新玩家初始狀態將為中級。在數次遊戲之後,他們的評比將會有所升降
- 高等級的玩家在與低等級的玩家遊戲,獲勝時所贏的的分數將小於失敗時所失去的分數。
- 高的等級不說明此玩家的遊戲結果比低等級的玩家優秀。兩玩家之間等級差別越大,高等級的玩家取勝的機會越大。
- 玩家的評分是會更改的。統計資料分析將被顯示在評比浮動中(在評分系統中浮動不會超過+-150分)。為什麼會出現浮動--玩家不會一直在同一等級進行遊戲,當他們有感覺可以獲勝任何玩家,他們會選擇不同等級遊戲。
- 我們希望處罰作弊的玩家。我們需要您的回饋來把您從那些不公平競爭的人中更好的保護起來。
演算法規則
我們在現有的等級系統裏找一個有很好的數學基礎的和可以產生合理等級的系統. 最有名的系統( ELO系統)是艾羅博士為象棋設計的. 這個系統在70年代被FIDE (國際象棋協會)選用﹐在這之後國際上大部分象棋協會都用這系統. 它也可以用於其他遊戲.
ELO系統算很好, 但是它有一些問題. 在2001年各裏文教授設計了新的等級系統(Glicko系統). 基本上, 它和ELO系統很像 - 最大的差別是它有一個等級偏差來代表等級裏的不定數. Glicko系統防止一個玩家跟一個未知等級的新玩家玩時發生的情況. 我們決定用一個改進的Glicko系統:
- 一個月沒玩的玩家會自動降級.
- 作弊的玩家會受到懲罰.
在我們的遊戲裏等級是這樣計算的:
GR: 我們的遊戲裏用的Glicko系統
Step a) 每一個玩家我們轉換Glicko等級(我們遊戲裏等級有兩個範圍 - 一些遊戲(桌球, 飛鏢.) 範圍是 0-10000, 其他 (象棋, 跳棋.) 範圍是 0 -3000 - 我們將列出0-10000等級範圍的等式, 0-3000等級範圍的等式是類似的) 成內部Glicko等級 (0-3000的範圍﹐中心在1500).
IGR: 內部Glicko等級
IGR = 1500 + 1500 * (GR-5000)/10000
Step b) 在Glicko等級裏面我們用等級偏差 - 我們重新計算最初等級偏差:
IGRD: 內部Glicko等級偏差
如果之前沒有玩過遊戲:
IGRD = 150 (在原始Glicko版裏用的是 350 - 我們覺得它不合理).
其他:
T: 玩家最後一場遊戲到現在的時間(in days)
IGRD = min(150,sqrt(IGRD* IGRD+63.2*T)
Step c) 我們算新的內部Glicko等級.
NIGRA: 新的內部Glicko等級
NIGRDA: 新的內部Glicko等級偏差
NIGRB: 新的內部Glicko等級
NIGRDB: 新的內部Glicko等級偏差
NIGRA = IGRA + QA/(1/ IGRDA2 + 1/DA2) * QRDB * (SA,B - EA,B)
NIGRDA = sqrt(1/(1/ IGRDA2 + 1/DA2))
NIGRB = IGRB + QB/(1/ IGRDB2 + 1/DB2) * QRDA * (SB,A - EB,A)
NIGRDB = sqrt(1/(1/ IGRDB2 + 1/DB2))
Where:
PI: pi constant (3.14...)
SX,Y: 遊戲的結果: 1當X贏, 0當Y贏, 0.5如果是和局
Q = ln(10) / 400
QRD = 1/sqrt(1+3*(Q*IGRD/PI)2)
EX,Y = 1/(1+10-QRDy*(IGRx-IGRy)/400)
DX = 1/sqrt(QX*QX*QRD Y *QRD Y * EX,Y * (1-EX,Y))
Step d) 我們轉換新的內部Glicko等級回新的Glicko等級 :
NGR = 5000 + 5000 * (NIGR-1500)/3000
這個就是顯示在遊戲裏的等級.
欺騙
什麼叫作弊? 當一個人沒有玩完等級遊戲時 (故意的或者網路問題), 他會受到懲罰. 不辛的是有品質差的網路連接的人會受到更多的懲罰, 但是我們必須這麼做, 因為有些人會類比網路問題來退出他們不想完成的遊戲. 為了減少網路問題的影響我們不計第一次斷線 - 如果斷線警長發生的話, 我們會開始懲罰玩家和降低他的等級. 我們的系統會記住斷線的次數和給會影響玩家的等級的炸彈.
規則:
- 如果沒有玩過遊戲, 玩家的炸彈值(B)是 0.
- 如果玩家作弊 (或者我們看到他/她沒有玩完遊戲)和B值大於20, 我們會把玩家的等級改成像輸給最低等級的人一樣.
- 如果玩家作弊, 我們會把B值增加10點, 但是B不能大於50.
- 玩家玩完每一個沒有作弊的遊戲, B值會減1. 所以如果有一個人有網路問題(B值加10)然後玩10場沒有作弊的遊戲(10 x 1),他的B會變回之前的值.
降低等級
有中等以上等級的玩家(5000)如果一個月以上不玩 (30 days) 會自動降低等級. 如果玩家一個月以上不玩我們會重新計算他/她的等級:
GR: 老Glicko等級
GR': 新Glicko等級
GR' = 5000 + (GR-5000)* 0.9
例如六個月之後等級會降到:
GR' = 5000 + (GR-5000)*(0.9)6 = 5000 + (GR-5000)*0.531