mmo中匹配机制的思考与实现
背景:
首先说明一下匹配中可能遇到的问题:
问题1:
就是玩家发起匹配请求进入匹配队列后,然后此时玩家却在副本打boss,此时是十分有可能出现:匹配成功再拉它进入别的地图的时候,却发现:拉取失败了。因为它正在战斗,无法传送。
问题2:
对于不同分段的玩家,是否能采用分治的思维,进行多线程匹配? 毕竟:不同分段的玩家其实是匹配互相不干扰的。
---------
实现方式1(逻辑层设计匹配):
再逻辑层匹配,也就是用一个内存表,结构为List类型,以:匹配满5人进地图为例子,那就是每次匹配都进行检测是否满5人(同时把匹配条件不满足的剔除,如:不在匹配场景了)。
即使玩家在不同的分线,其实逻辑上大家还是在一个匹配队列的。
实现方式2(在场景层进行匹配):
玩家增多后,会开出不同的分线,场景层是单线程的,直接搞一个List结构做匹配池即可,同时多个场景可能会对应不同的线程,因此匹配可以认为是使用的多线程匹配策略。
--------
增加了备战场景,其实这种从设计上避免了很多问题。保证玩家:仅仅只能做匹配,而不能在副本中打boss,避免了很多问题(如:匹配成功但是处于战斗状态而无法传送)。
mmo中匹配机制的思考与实现相关推荐
- 关于 Windows CE 系统中同步机制的思考
关于 Windows® CE 系统中同步机制的思考 田海立 2006-1-18 摘要 本文讨论的话题是MSDN文档没有描述或者从它里面不容易看出来的Windows® CE线程同步的问题.既然是这样,而 ...
- 游戏思考系列03:游戏匹配机制(MMR、ELO、trueskill2、皇家战争、Glicko等,详细讲ELO,其他的简略)
文章目录 一.MMR机制--炉石传说.DOTA2.LOL.LOLM 1)简介 2)影响因素 二.ELO机制--王者/LOLM(也就是LOL手游) 1)简介 三.trueskill 2--光环.彩虹六号 ...
- 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程...
简述C#中IO的应用 在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.IO ...
- 人工智能研究中的几点思考
语法学是研究逻辑符号与符号之间关系的理论:语义学是研究逻辑符号与其指称的事态之间关系的理论:语用学是研究逻辑符号所表达的解释者的思想之间关系的理论. 摘要:本文通过对人工智能的历史进行研 ...
- 关于自注意力机制的思考
自注意力是Transformer中的核心,但我们大多时候都忽略了其中的Q∈RN×d,K∈RN×d,V∈RN×dQ\in R^{N\times d},K\in R^{N\times d},V\in R^ ...
- 符号库匹配不对的原因_王者荣耀:万恶的游戏匹配机制,最菜的队友才是游戏胜利的关键...
在王者荣耀中排位是我们很多玩家的追求,不过在游戏中,因为排位上不去从此的退出游戏的,也是大有人在.一个游戏有新玩家进入,有老玩家离去是一个游戏正常的生态,不过很多因为上不了段位退出游戏的玩家,并且是因 ...
- 关于Java类加载双亲委派机制的思考(附面试题)
转载自 关于Java类加载双亲委派机制的思考(附面试题) 预定义类加载器和双亲委派机制 JVM预定义的三种类型类加载器: 启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将 &l ...
- linux内核的I2C子系统详解3——i2c-core.c初步分析、I2C总线的匹配机制
以下内容源于朱有鹏<物联网大讲堂>课程的学习,如有侵权,请告知删除. 5.i2c-core.c初步分析 (1)smbus代码略过:smbus是基于I2C总线发展出来的. (2)模块加载和卸 ...
- 什么是ACL访问控制列表?它们的匹配机制是什么?
什么是ACL? ACL,是Access Control List的简写,中文名称叫做"访问控制列表".访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以 ...
最新文章
- 当谈论迭代器时,我谈些什么?
- LayoutInflater.Factory 妙用
- Xamarin Visual Studio提示找不到AssemblyAttributes.cs文件
- Operation category READ is not supported in state standby
- python优先队列_python 多线程优先队列Queue详解
- HDU 2063 过山车 二分图匹配 匈牙利算法
- linux 文件备份定时任务脚本,linux服务器每天执行备份数据库定时任务脚本demo
- java axis webservice_Axis Webservice框架使用案例
- 考试必错规则:如果你觉得题目很简单,代表你肯定错了
- Python操作读写txt文件
- linq distinct 不够用了!
- Java Timer、TimerTask
- 独立站牵手Tik Tok 打造下一个电商节点
- 防止***根据PHP中的错误信息爆路径
- java day60【 Spring 中的 JdbcTemplate[会用] 、Spring 中的事务控制 、Spring5 的新特性[了解] 】...
- iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载+使用输出流代替文件句柄...
- mysql 4,mysql 4.1,mysql 数据库中文问题
- 华为手机USB连不上电脑的解决方法
- Sniffer软件简介
- JS——正则校验域名