浅谈王者荣耀游戏用户匹配实现的可能得技术方案

2022-04-25 08:58:12 浏览数 (1)

首先说明我不是开发这个游戏的技术开发人员,我只是最近玩这个游戏比较多,思考如何怎么实现这个功能,下面我讲讲我理解的实现这几种游戏匹配的实现方案。

这张图是单人开始玩游戏,单人开始匹配,我的理解是先把人丢到一个队列里面,然后从队列里面弹出来足够的人数到一个两队临时的房间,这个房间也是临时的,房间人数够了确认开始就可以玩游戏了,如果这个时候有玩家没确认进入冻结状态,其实就是一个标记,则再次匹配队列里面拿剩下的人进入房间。这里我用技术实现方案来表示一下。

匹配队列:这里可以用redis的list,或者专门的队列服务,比如mq,nsq等

两队人临时房间:redis的key incr处理并发问题,redis的set来保存临时的房间

我们看三人匹配的,三人匹配可以不到三个人就进行匹配,这里的只是会对当前执行匹配的做一个标记队列,一起扔到队列,然后后面的执行逻辑和单人匹配的逻辑一样了。

我们看下五人匹配,五人匹配的必须是五个人都开始了,这个时候其实可以直接进入五人建一个临时房间,但是涉及到确认,其实一般不会这么在这里做一个匹配的临时房间,所以还是只是把五个人放到一个房间,然后五个人就是一个集合,把这个集合扔到五人队列里面,后面再执行的匹配也和单人匹配是一样了。

我们从上面的匹配,可以考虑把进入临时房间封装成一个方法或者服务供一人,三人,五人匹配实现调用这个总方法即可,下面我画了一张图来解释这个匹配逻辑的大体实现,具体技术方案基本都可以用redis实现,当然也有涉及到可能小的细节可能存在的问题,但是基本逻辑是无问题的。

王者荣耀匹配技术实现图

这里王者荣耀匹配逻辑的实现,只是鄙人之见,欢迎各抒己见。

然后摘抄某位分享者的文章,很有深度,与大家共享:

总结下,要保持优秀,我们要做到:保持敬畏之心、终身成长、不断提升认知、多和优秀的年轻人交流、不断积累资源。

当然,我们也要有平常心,毕竟衰老和平庸都是自然界的规律。我们可以对抗,但不可能改变规律。

不排除有的人80岁了,还无比优秀。但对于大部分普通人而言,你什么都没做错,你只是老了。

我们能做的,是尽量延迟这一刻的到来。

0 人点赞