设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2492|回复: 6
打印 上一主题 下一主题

[讨论] 求教网络游戏竞技场的匹配算法……

[复制链接]

Lv1.梦旅人

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
帖子
1741

贵宾

跳转到指定楼层
1
发表于 2013-10-31 09:29:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
大概就是每个人有个RANK值,报名参加竞技场(可随时报名),系统将RANK值相近玩家1对1组合进行对抗,如何做可以做到最优的匹配{:2_258:}

评分

参与人数 2星屑 +160 收起 理由
R-零 + 100 认可答案
熊喵酱 + 60 元老握爪

查看全部评分

Lv1.梦旅人

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
帖子
1741

贵宾

2
 楼主| 发表于 2013-10-31 09:33:04 | 只看该作者
现在的做法是报名参加的人拿自己的RANK值与等待池中的RANK值比较,相等则匹配成功,否则进入等待池等待,每隔一定时间扩大自身匹配范围再与等待池中的人比较直到匹配成功。
感觉这种方法总有些问题,不是最优的……

点评

请用编辑功能补充  发表于 2013-11-1 18:03

评分

参与人数 1星屑 -20 收起 理由
咕噜 -20 w水区不能连贴哦

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42360
在线时间
7600 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

3
发表于 2013-10-31 11:10:53 | 只看该作者
rank,胜率,一起考虑吧。
这就可以让老手玩新账号也匹配到相似等级的高手。

点评

至于量化玩家实力已经有个比较好的方法,具体是匹配的流程还有没想到比较,让两个实力相近的玩家相匹配- -|||  发表于 2013-11-1 08:52
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3582
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
4
发表于 2013-10-31 20:19:53 | 只看该作者
一股脑加进去 做个快速排序 然后每次pop 2个出来 当(假设数组)里空掉 或者还有1个元素的时候 继续轮回
回复 支持 反对

使用道具 举报

Lv1.梦旅人

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
帖子
1741

贵宾

5
 楼主| 发表于 2013-11-1 08:51:01 | 只看该作者
yagami 发表于 2013-10-31 20:19
一股脑加进去 做个快速排序 然后每次pop 2个出来 当(假设数组)里空掉 或者还有1个元素的时候 继续轮回 ...

你的意思是不考虑玩家报名时候进行匹配,而是直接进入等待池,每隔一定时间(比如10秒),对等待池排序,然后匹配第1和第2,第3和第4,第5和第6……这样吗?
这种方法我想想过,但是恐怕同一时间服务器压力太大(因为匹配成功需要创建副本),不太好控制啊{:2_272:}
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1624
在线时间
1609 小时
注册时间
2007-8-28
帖子
3253

第3届短篇游戏大赛主流游戏组冠军第1届Title华丽大赛新人奖

6
发表于 2013-11-1 11:43:16 | 只看该作者
參見象棋排位賽的,電競都是和他學的
“我推荐你一个游戏吧,avg的,剧情特感人”
“我擦,都是文字图片的游戏有啥好玩的,连个战斗都没有!”
“我推荐你一个游戏吧,rpg的,战斗也新颖”
“我擦,怎么米有作i弊器?“
”你不是喜欢战斗么?”
“不,我是剧情党!!”

继续阅读请点击
http://rpg.blue/blog-53316-10027.html
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3582
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
7
发表于 2013-11-1 20:01:02 | 只看该作者
本帖最后由 yagami 于 2013-11-1 20:20 编辑
小湖 发表于 2013-11-1 08:51
你的意思是不考虑玩家报名时候进行匹配,而是直接进入等待池,每隔一定时间(比如10秒),对等待池排序, ...


if(time>10||countofwati>1000)
排序

快速排序的话 假设A B rank值相等 A必然先匹配 不换位置的 符合先来后到
时间 和 等待池人数 任意一向 满足条件 就进行排序 预备个容量尽可能大的等待2池(普通队列先进先出) 玩家报名 就扔到(push)2池   2池人数超过1000或者时间超过10秒 就扔min(1000,2池元素总数)个到1池(1池从2池取玩家(get)), 1池进行排序匹配

点评

有点启发~  发表于 2013-11-6 20:09
补充说明一点 数量大于1000的排序 和10秒的排序是分开并行的 多线程减少压力 如果人数不是很多 一般也就用时间就够了  发表于 2013-11-1 20:28
匹配就是你说的 第1对第2 第二个缓冲池的作用就是让你在排序的过程中 新玩家的操作不会被你漏掉  发表于 2013-11-1 20:03
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-18 15:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表