问题标签 [matchmaking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
238 浏览

join - Mysql对接会/配对

我目前正在开发一款 1v1 在线游戏,在尝试匹配玩家时遇到了问题。

想玩的玩家会被放到配对表中

id、用户、金额

现在我想查询表匹配以找到可能的最佳用户对(因此,想要玩相同数量的用户)我还希望等待更长时间(更小的 id)的用户首先配对。

到目前为止,我有这个查询:

这将返回所有可能的配对,因此在包含此内容的表中:

我得到了这些对:

而我只希望在这种情况下返回 1,2。

如何让它最多只向我显示每个用户一次?

编辑:在查询中添加条件 '和 a.id < b.id ' 将配对减少了 2 倍,但仍然太多。

0 投票
1 回答
1301 浏览

node.js - 使用 socket.io 进行匹配 - 依赖 setInterval 或套接字调用?

我正在开发一个游戏,我的后端是用 NodeJS 编写的,我使用 socket.io 进行实时通信。

我的游戏的特色之一是配对。基本上,如果有两个以上的玩家在配对期间,我的应用程序将为他们创建一个游戏房间(特殊的 socket.io 房间)并开始游戏。

有两种方法可以做到这一点:

  • 在 NodeJS 上创建一个 setInterval。在间隔中,检查 playerInMatchmaking 数组。如果阵列中有超过 2 名玩家,则创建游戏室。只要服务器在线,我就会循环。

  • 每次我接到电话socket.on("matchmaking start")socket.on("matchmaking stop")

使用某种方法有什么好处吗?setInterval 听起来更容易,因为我可以将匹配算法与套接字逻辑分离,但是它的性能会降低,因为匹配算法将在循环中运行,而不是套接字事件。

你怎么看?您还有其他更好的想法吗?

0 投票
1 回答
1055 浏览

unity3d - 如何使用 Photon Engine 在随机匹配中阻止特定用户?

我们正在使用 Photon 引擎制作随机配对游戏。我们希望在一定时间内将玩家与不同的用户进行匹配。如果 PlayerA 和 PlayerB 一起玩,他们在 30 分钟内不能再玩。做这种系统的最佳方法是什么?

我们尝试了一些算法,但它并不适合。

它可以工作,但有一些缺点,例如耗时 vs. 有更好的解决方案的想法吗?

0 投票
1 回答
384 浏览

matchmaking - 强稳定、弱稳定和超稳定匹配有什么区别?

我冷漠地阅读稳定婚姻问题(SMP,https://en.wikipedia.org/wiki/Stable_marriage_problem),我遇到了强稳定、弱稳定和超稳定匹配这些术语。它们之间有什么区别?

0 投票
0 回答
2912 浏览

android - 与 Firebase 配对

我正在制作一个带有多人游戏的 Android 应用程序,并且需要某种匹配。我正在使用 Firebase,并且希望不必制作外部配对服务器。

到目前为止,我最好的想法是使用带有事务的 firebase 实时数据库:

当玩家按下“播放”时 - 浏览公开比赛列表。如果列表中不存在任何游戏,或者如果列表中的所有游戏在客户端搜索公开游戏时都已填满 - 创建一个新的公开比赛。当有人填满比赛中的空位时,请从配对中删除该比赛。

我能在这种方法中看到的唯一漏洞是,当很少有玩家同时创建游戏时,所有人都认为列表是空的。

如果有一些火力基地和/或配对经验的人可以指出此策略中的更多漏洞,或者可能提出更好的配对策略,我会很高兴,因为我还不能大规模测试该策略。

在此先感谢您的帮助 - 将不胜感激。

0 投票
1 回答
1405 浏览

c# - 寻找统一媒人(5.4)的基本解释以及如何在脚本中使用

由于价格原因决定通过 Unity over Photon 进行联网(如果有更好的联网方式,请告诉我)我一直在尝试创建一个简单的统一匹配器,当用户进入游戏时,他们首先会寻找任何其他匹配( AKA 房间/游戏),如果有,他们会加入,如果没有,他们会创建一个。但是,我正在努力寻找如何使用统一媒人的明确解释,因此我可以开发代码来获得我想要的行为,这似乎更棘手,因为在最近的更新中统一似乎正在改变它的网络系统,所以我相信之前的任何事情5.4 目前已过时。我发现的唯一有用的东西是这个示例代码,但我想更多地了解系统,所以我不会错过任何关键概念,这可能是因为我相当初学者。

所以我今天要问你的是,你能指导我清楚地解释与当前统一相关的匹配系统(包括脚本)吗?将作为像我这样的其他人未来的参考。

感谢您的阅读,当然,任何答案将不胜感激。

[我在 C# 中工作]

编辑:

我知道我的问题很难回答,所以我将测试示例代码,直到我得到所需的行为并发布任何我无法解决的错误。

问题 1

  1. 我已将确切的代码(包括在下面以便于参考)复制到我附加到我的网络管理器的脚本中。但是由于保护级别,我遇到了错误-

在此处输入图像描述

我有两个关于如何解决这个问题的理论 -

  1. 更改方法访问器
  2. 不从单一行为派生脚本

我目前正在测试它们,任何关于如何解决这个问题的建议都会非常有用。我想知道我是否应该将此报告给统一,因为对我来说,这似乎是统一文档中的错误示例,它说它已针对 5.4 进行了更新。谢谢。

问题 2

我已经创建了这个脚本并在附加到带有单个网络管理器的空 GameObject 的编辑器中运行它,我没有收到编译器错误,但是当我运行它时调试“错误:匹配搜索失败”,这意味着 listmatches 功能不成功,我的脚本在下面 -

谢谢,希望你能看到我哪里出错了。

@程序员

0 投票
1 回答
232 浏览

php - 没有RoundRobin的联赛调度

目前我实际上正在寻找一个专门针对我的问题的术语:

我创建了一个超过 4 支球队的联赛 联赛持续 3 轮(为了简单起见,编号) 比赛应从一支球队尚未交战的球队中随机分配。

我正在努力让我当前的代码在每个边缘情况下运行,所以我想查找为这种情况开发的“标准”算法,但我无法想出我正在寻找的术语。

一个时间表示例是:

在这方面我找不到任何东西,因为这似乎是一个非常非常不可能在联赛/锦标赛中使用的东西——但这是我的要求。

这是我当前创建 ONE Round 的代码。可能会发生,此代码不会在第 3 轮中为每个团队分配一个对手,因为他们可能的对手在本轮已经分配了一场比赛(测试了 6 支球队,可能在第 3 轮中发生)

对我将谷歌搜索的任何帮助将不胜感激

0 投票
1 回答
270 浏览

javascript - 多人团队队列,取决于 ELO

我正在为客户做一个项目,我完全不知道我应该怎么做。

首先我将描述它:在我的 PHP web 应用程序上,唯一用户有 ELO,这就像玩家的技能。玩家可以作为一个团队(5人)/混合/单独进入队列系统。

现在我如何让玩家与另一支球队比赛取决于他的 ELO,哪种语言(我虽然好主意是节点服务器,但目前我完全不知道哪个更好,我必须学习它所以告诉我这是最好的,因为现在我没关系)。

是否有任何它/教程的帮助者或任何我无法在谷歌中得到任何东西的东西:(

如果你能帮助我,我真的很高兴。非常感谢!

0 投票
1 回答
537 浏览

algorithm - 匹配算法效率

我正在设计一个应用程序,通过组建最好的团队来帮助用户创建游戏。

例如,假设有 30 人在投票中等待打篮球。一场篮球比赛由 10 名球员(5 对 5)进行。在等待被选中的 30 人中,该算法会选择 5 对 5 的最佳组合来进行对战。

(为此,该算法会寻找有最大平局概率的玩家组合。这是通过使用表征每个玩家的两个量词来计算的:玩家的平均技能和猜测评分的置信度因子。)

我想看看这个算法有多快。

它需要经过所有可能的玩家组合。所以在这种情况下,组合的总数是 C(30,10) 对吗??

我们可以说算法是 O(n!),其中 n 是等待玩的玩家总数吗?

这个问题是NP完全的吗?如果是这样,谁能给我一个简短的方法来解释为什么它是 NP 完全的(不是完整的证明,只是一个有效的推理就足够了。)

非常感谢你 !:)

0 投票
0 回答
52 浏览

ruby-on-rails - 如何建立一个用户和所有其他用户之间的关系?

我正在创建我的第一个 Rails 应用程序来学习基础知识,它是一个简单的配对网站。

我正在尝试设计用户相互关联的方式。匹配百分比将通过比较某些用户配置文件属性来确定。每个用户都会有一个与其他用户的匹配百分比(类似于 OKCupid)。因此,当创建(或更新)用户时,它的匹配项也会随之生成。

这是我对到目前为止的外观的想法:

我不确定的部分是如何设置用户模型,并将外键传递给可匹配的。这样做的正确方法是什么?欢迎任何建议/意见。