有没有懂游戏匹配实现的(以炉石传说为例),求指个路 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Game Engines
Unreal Engine
MyCryENGINE
xymeng16
V2EX    游戏开发

有没有懂游戏匹配实现的(以炉石传说为例),求指个路

  •  2
     
  •   xymeng16 195 天前 3369 次点击
    这是一个创建于 195 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先说下我的思路,通过 elo 、段位等,判断一个用户所在的匹配池,随匹配时长逐步放宽匹配条件(加入更多匹配池)。但是在匹配确认的时候会有很多重复情况需要唯一性判断。

    网上搜索了一下,没有关于这方便的资料,想问问各位大佬,有什么书籍或网站推荐嘛~

    12 条回复    2025-09-29 09:15:14 +08:00
    flynaj
        1
    flynaj  
       195 天前 via Android
    星际争霸 2 可以看到 mmr,就是就是你的分数,打完一局就会根据输赢变动 mmr,确实是匹配分数相近的,然后扩大,但是不会超过分数差 300
    araraloren
        2
    araraloren  
       195 天前
    垃圾匹配机制,“旗鼓相当的对手”
    LuckyPocketWatch
        3
    LuckyPocketWatch  
       195 天前
    1 。游戏的分数,匹配类似水平的人
    2 。道德分,通过记录游戏内发言等,匹配近似的人
    3 。偏好分,游戏有种族,地图等各种元素,比如我不喜欢打千甲德,遇到就秒退,那就别给我匹配这个卡组
    4 。网络等其他因素,比如地区过大,甚至歪果仁账号会导致卡顿加剧

    对每个用户做个标记,当匹配失常过长时,放宽某个条件,比如游戏分数区间扩大,然后观察该用户的反馈,如果条件放宽后导致用户秒退,骂人等情况增多,则标记该用户为“不适合扩大游戏分数”,并尝试扩大道德分区间,以此类推

    最终每个用户都有自己的标记
    zhangk23
        4
    zhangk23  
       195 天前
    感觉炉石也是 mmr

    之前我用脚本打,我两个号的胜率出奇的低,只要同时开始排每隔五六把总能撞上

    而且哪怕换我月中本尊亲自打上传说后,两千多名排到的依然是白金钻石段的,遇到的传说也基本都是脚本
    Donaldo
        5
    Donaldo  
       194 天前
    prosgtsr
        6
    prosgtsr  
       194 天前
    没有游戏匹配实现,我这只有 pk 实现
    总的原则是,只要保证最后把这一组匹配到的人从匹配池子中拿出来的时候是原子性的就行了
    比如可以都加入匹配池,然后起定时任务根据分值捞一批相近的,然后判断是否可以匹配,如果不可以就放弃等待下一轮,如果可以,就尝试从匹配池中原子性的将这几个人取出,如果取出成功就进行游戏开始的逻辑
    rqYzyAced2NbD8fw
        7
    rqYzyAced2NbD8fw  
       194 天前
    @Donaldo #5
    zackzergzeng
        8
    zackzergzeng  
       193 天前
    @LuckyPocketWatch 炉石有偏好分这个东西吗,我感觉我打一个职业或者卡组胜率越低,他就越给我匹配,要么连输好几次把胜率拉到均线,要么克服心魔上段
    sentinelK
        9
    sentinelK  
       193 天前
    不光如此,还要考虑用户近 X 局游戏的胜率以及游戏的运营策略。作为反向权重,从而提升游戏日活。

    比如默认情况下,匹配的是隐藏分-300~+300 范围的对手。
    如果本次游戏 session (本次登录)游玩时的胜率高于 50%,那就要匹配同样胜率高于 50%的对手。

    如果对方本次 session 的胜率过高,比如高于 80%(一般来讲,实践中会计算一个权重,不会是一个死的阈值,这个权重算法还会有游戏运营、策划的参与),除了匹配同样高胜率的选手外,还要增加隐藏分的匹配范围,比如变成 0~+500 。

    核心目的就一个:提升用户日活。用户有日活,才有可能消费。
    sentinelK
        10
    sentinelK  
       193 天前
    然后像是炉石,这种有“预组”的游戏。用户本身的“预组”也是匹配权重算法的一部分。
    htxy1985
        11
    htxy1985  
       142 天前
    不确定你是在总体思路,还是具体算法。
    "先说下我的思路,通过 elo 、段位等,判断一个用户所在的匹配池,随匹配时长逐步放宽匹配条件(加入更多匹配池)。"

    之前做过匹配机制,跟你这个描述是一致的,但是这只是答题思路,实际实现的算法的复杂程度还是跟你的业务有关,比如单人还是组队,有没有运营策略参数加入等。
    pluswu1986
        12
    pluswu1986  
       13 天前
    open-match 谷歌开源整体建模上没啥问题
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3785 人在线  最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 00:52 PVG 08:52 LAX 17:52 JFK 20:52
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86