评级系统
说明
在第一部分中我们将简述基础评分的设定和操作,稍后将对评分方程式和计算有详细的说明。
设定和操作
评分系统将以玩家已取得的结果,加上对未来游戏结果的预测为基础。我们使用统计方法来计算玩家的评分,同时致力于开发和设计一个更加符合游戏社区有求的评比系统。
以下简述基础的设定和评分计算:
- 与新老玩家,强大和较弱的玩家进行游戏,将不会对最终评比等级有重大的影响。
- 您参与的游戏次数越多,等级评比就会越稳固。
- 由于系统不能确定或预测新玩家的游戏结果,新玩家初始状态将为中级。在数次游戏之后,他们的评比将会有所升降
- 高等级的玩家在与低等级的玩家游戏,获胜时所赢的的分数将小于失败时所失去的分数。
- 高的等级不说明此玩家的游戏结果比低等级的玩家优秀。两玩家之间等级差别越大,高等级的玩家取胜的机会越大。
- 玩家的评分是会更改的。统计数据分析将被显示在评比浮动中(在评分系统中浮动不会超过+-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