mmo中匹配机制的思考与实现

背景:

首先说明一下匹配中可能遇到的问题:

问题1:

就是玩家发起匹配请求进入匹配队列后,然后此时玩家却在副本打boss,此时是十分有可能出现:匹配成功再拉它进入别的地图的时候,却发现:拉取失败了。因为它正在战斗,无法传送。

问题2:

对于不同分段的玩家,是否能采用分治的思维,进行多线程匹配? 毕竟:不同分段的玩家其实是匹配互相不干扰的。

---------

实现方式1(逻辑层设计匹配):

再逻辑层匹配,也就是用一个内存表,结构为List类型,以:匹配满5人进地图为例子,那就是每次匹配都进行检测是否满5人(同时把匹配条件不满足的剔除,如:不在匹配场景了)。

即使玩家在不同的分线,其实逻辑上大家还是在一个匹配队列的。

实现方式2(在场景层进行匹配):

玩家增多后,会开出不同的分线,场景层是单线程的,直接搞一个List结构做匹配池即可,同时多个场景可能会对应不同的线程,因此匹配可以认为是使用的多线程匹配策略。

--------

增加了备战场景,其实这种从设计上避免了很多问题。保证玩家:仅仅只能做匹配,而不能在副本中打boss,避免了很多问题(如:匹配成功但是处于战斗状态而无法传送)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值