cs吧 关注:782,267贴子:6,465,735
  • 1回复贴,共1

【FX】CSGO匹配机制浅谈,是时候放弃ELO匹配机制了。

只看楼主收藏回复

目前的CSGO环境除了反作弊,最大的问题是匹配算法。


已经不止一次讨论关于炸鱼的问题了。
其实这一切的根源是基于ELO的匹配算法,非常低效,极易欺骗,无法准确衡量对局完成后玩家的水平。最早这种算法是通过对官匹机制的意淫,国内由17CSGO最高开始使用。


这种算法基于不断缓慢的“累积”,来衡量玩家水平,无论上分还是掉分,衡量的速度越慢,导致的匹配失衡就越多。
针对这种低效的初步方案“定级赛”,增大了加减分的幅度,实际只是稍稍加快了累积的“速度”,要从根本上解决低效,必须构建全新的匹配算法模型。


优秀的匹配系统,必须准确、快速的衡量玩家水平,并且匹配比赛。
关键字是准确、快速。要完成这两个条件,需要:通过尽可能少的数据(累积),尽可能准确的判断玩家水平。


因此我粗糙的构想了一个概念。



放弃所谓的输赢加减分,系统要做的只有一件事,判断玩家水平,而不是引导玩家去赢。


●分段的平均标准值
为此必须先建立标准,通过对某分段内所有玩家的数据采集(RWS、rating、残局、KD、ADR、peek胜率,等)得到“分段的平均标准值”,这个值可以人为设定,并结合分段中玩家的平均数据。


●个人水平偏差值
再来对玩家的水平状态建立标准,“个人水平偏差值”,发挥越稳定,偏差值越小。


通过“分段平均值”结合场内“个人偏差值”最低的几位玩家,判断某场比赛中的玩家水平。


这个最终的判断,不一定是赢加输减,应是全面的判断,判断的标准,便是分段平均值。结合该分段的数据采集,对RWS、rating、残局、KD、ADR、peek胜率,等等全面的对比。


最终的目的,只是为了:
通过尽可能少的数据(累积),尽可能准确的判断玩家水平。


最完美的理想状态是这样的:


一个2600分的号,偏差值非常低。玩的人是代练。
突然,这个号被1000分段的玩家使用,在系统判断的实际2400的比赛中,发挥远远低于分段平均值和玩家的最近表现,并判断为实际表现只符合1000分的平均值。但基于账号的偏差值很小,先扣分到1500分(直接扣900分)。根据下次对局结果再做判断,如果依然表现符合1000分段的平均值,便扣到1000分后继续匹配。直到判断符合该玩家实际表现。


反过来也是。如果在1000分段产生炸鱼,实际判断符合2000分平均值,便根据玩家偏差值加大分,根据之后的对局再做判断,直到符合玩家水平。


玩家的偏差值越小,每次调整的分数越小,调整随偏差值增长而增长。
核心算法是个人偏差值的增减算法,通过监控偏差值波动,还能教系统识别故意的欺骗行为。



如此实现快速、准确的,玩家水平判断。






PS:原帖发布与CSGO吧,因为和CSGO吧主“风之为裳”有私仇,这个贴被删除了,所以在此重发,另外这位睿智吧主,这个帖子有多少人看,和我没有半毛钱关系,损失的也不会是我。


回复
1楼2019-06-15 16:10
    有啥私仇?


    回复
    来自Android客户端2楼2019-06-15 19:01