问题标签 [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.
c# - Unity 简单游戏的服务器逻辑
我是游戏开发的新手,能否请你给我一个建议,告诉我如何在 Unity 上为 iOS 和 Android 平台上的游戏实现服务器。
有一项任务:在线 1 对 1 乒乓球游戏,您可以在其中下注您的游戏内货币。有(例如)3 种游戏模式,下注 5、20 和 100 个硬币。玩家选择他想玩的赌注并排队,然后第二个玩家排队等待相同的赌注,并自动为他们创建一个房间,他们可以在其中互相对战,最多可赢 10 分。期望通过游戏的技巧/经验来实现对手的选择。所以初学者和初学者一起玩,经验丰富的(服务器上的逻辑)。同样,房间应该是自动生成的。大厅不应该有可见的房间列表,只有赌注的选择和对手的期望。获胜者获得全额投注(不收取任何费用)。必须有一个数据库来保存每个玩家的结果和设置。通过社交网络和电子邮件进行授权。防止作弊者是一个低优先级。
我是如何计划的:所有物理和逻辑都发生在客户端。服务器为等待对手的玩家创建房间,并通过 UDP 提供平台位置交换,并通过 TCP 提供重要消息/事件。服务器端将没有游戏物理和逻辑。此服务器将连接到数据库以保存信息、排行榜和收集的硬币数量等...
主要任务: Unity 的 C# 服务器 在服务器上拥有自己的逻辑 使用数据库的能力。
我想使用 Photon 服务器来完成这些任务,但我不明白是否可以绑定数据库,例如 MySQL,并在服务器上处理最少的逻辑,这有可能吗?除了Photon还有什么服务器适合这个项目?(最好是免费的)。我会很高兴得到一些帮助并找到解决这个问题的正确方法。
谢谢。
ruby - Ruby:将数组划分为 2 个具有最接近平均值的数组
背景:我正在为一个小型多人视频游戏项目开发“匹配系统”。每个球员都有一个从0-10的排名,每支球队有4名球员。我试图找到一个平衡球队的好方法,让他们的平均排名尽可能接近,比赛尽可能公平。
我目前有缺陷的方法如下所示:
如果等级已经非常相似,这可以很好地工作,但这不是解决这个问题的正确方法。例如,它在这样的情况下失败:
这导致了非常不公平的团队:
相反,我希望这种情况下的团队是这样的:
python - 机器学习算法来查找相似或匹配的记录?
我有一个数据集,其中包含特定笔记本电脑(例如 Ram、硬盘)的记录/配置。现在我想创建一个算法,可以告诉我今年哪台笔记本电脑/台式机最接近该配置。我想根据最接近的匹配给出 3 个推荐?我应该使用哪种 ML 算法,最好的方法是什么?
php - 在用户中止匹配之前执行 SQL 查询
我创建了一个带有 1v1 配对系统的网站。
以下是它的工作原理:
如果我单击查找对手,它会在数据库中更改 matchmaking=1。
但是有一个问题,如果用户在网站真正找到对手之前点击“查找对手”按钮然后退出,则对手匹配不会重置为 0。因此,如果另一个用户来了,他可能会与一个不活跃的用户配对。
所以我认为(但我不确定)我需要一个系统来检测用户何时单击返回按钮。目标是获得一个无故障配对两个和两个用户的防故障系统。任何帮助表示赞赏。
索引.html
matchmaker.php(简而言之)
c# - Firebase Realtime Database - Matchmaking using transactions = High download usage
Problem
I'm using Firebase Realtime Database (for Unity) to manage the server side for a turn based game but I have a problem with my matchmaking... a high download usage.
Every online game have 2 base states to avoid more than 2 players join a game: Created and Joined
- Created: A player try to join a game, if can't find one a new game will be Created
- Joined: A player try to join a game, if find one change the state to from Created to Joined
I'm using RunTransaction
to prevent more than 2 players from joining a game, but I checked that the latest data was not fetched from the database because of the local cache, adding keepSynced
over my matches-{lang}
child node will always have the latest data but naturally this produces a high download usage.
Question
- Removing
keepSynced
players will have locally cached information formatches-{lang}
, can I trust that by doing this there will be no more than 2 players per game? *Transactions are supposed to avoid this kind of problem. - Is there a way to avoid the local cache for a request and thus always get the updated data?
- Could the best solution be to move the games to another node to reduce the size of the
matches-{lang}
node?
Thanks!
javascript - 尝试针对当前用户选择一个随机用户以匹配两者具有相同的角色
我目前正在尝试为我的不和谐代码创建某种匹配命令。
前半部分很好,但后半部分让我很头疼。例如,为了解释我希望代码如何工作,有许多用户具有相同的角色,并且使用此命令,我希望它选择两个用户。一个是我(使用命令的用户),另一个是列表中的随机数。
我得到了它的工作,但有时我可能会被选为第二个成员,如果可能的话,我想将自己排除在列表之外。考虑一下我自己寻找随机决斗。
选择成功后,该命令将删除队列角色并添加新的匹配角色。我希望我的解释清楚。提前致谢!
java - 匹配大多数可能组合的算法
我目前正在努力为我的配对系统编写算法。对于对数学一无所知的人来说,这可能是孩子们的游戏,好吧,我不知道。
让我们看下面的例子:
一个大厅正好由8 名玩家组成。
队列中有 9 方。派对规模为:1、6、3、8、2、1、5、3、2
。算法需要从这些派对中创建尽可能多的完整大厅。
可能只有满员的大厅。因此,可能存在无法匹配的各方。然后,那些将等待新的政党进入队列。
我当前的代码确实将各方与大厅匹配,但它缺乏找到最佳组合以找到尽可能多的完整大厅的功能。
示例:大厅大小正好为 7,派对:2,2,4,3,1,5 -> 2,5 和 4,3 可以匹配,但是 2,2,3 和 4,1,5 不能匹配被匹配。
我很感激任何帮助。
我当前的代码:
redis - 后台匹配玩家
我想进行匹配系统设计,以便一些用户可以在我的后端服务中匹配。
我有过滤器可以搜索,
- 按名称过滤
- 将来按任何属性过滤
- 地理过滤器(带有 lang 和 long)
- 有兴趣的过滤
所以就像,我喜欢纽约的冰淇淋,如果有任何一个喜欢冰淇淋并且住在纽约的用户,我们应该匹配!当然,会有很多用户。还有一件事,我喜欢冰淇淋五秒钟,我可以把我的喜欢换成另一件事。
我喜欢冰淇淋 5 分钟,而不是换其他东西。所以当我改变时,我不应该再匹配了。
这个用户当然可以匹配最佳用户,与另一个用户具有最高的共同兴趣百分比。这种配对搜索可能会改变,并且会是暂时的。
是否有任何文章、书籍或任何东西可以帮助我在我的后端服务中进行配对系统?
我认为 redis 会很好地满足这些需求,但我不确定。将用户聚集到同一个队列。我可以通过网络请求从客户端获取信息,但我不知道如何处理高用户流量并将它们与最适合的用户匹配。当然,我的系统将是一个可扩展的系统。
如果用户等待太久,将会出现饥饿!
我想我会使用带有 websocket 的 Spring/Spring 引导应用程序。
谢谢你的帮助!
python - 从 20 多名玩家中找到最均匀的 5V5 比赛
我正在尝试为我的英雄联盟大学俱乐部制作一个 python discord 机器人,它将让玩家一起组成 5V5 团队,每小时玩一场比赛。
到目前为止,我已经设法格式化一个看起来像这样的列表
[[UserName1, Rankvalue1],[UserName2, Rankvalue2],....]
或[[SantyMax1, 1000],[SantyMax2, 1500]]
填充实际用户数据时。
此列表适用于对机器人发出的消息做出反应的每个用户,因此它应该有 20-50 名玩家。
我的问题是,我如何制作具有接近平均排名值的 5V5 大厅?
活动的目标是让你在俱乐部结识新朋友的休闲游戏,所以我不希望前 10 名球员只在他们之间进行匹配。
我的想法是用原始数据集找到所有可能的球队排列,然后找到排名值最接近的两支球队,在两支球队之间创建一场比赛并从原始数据集中取出所有球员,然后冲洗并重复直到剩下不到10名玩家,但我不知道该怎么做。
amazon-web-services - 使用 AWS 创建匹配系统
有没有人初步了解如何使用 AWS 基础设施创建媒人系统?不幸的是,由于初始运营成本,AWS Gamelift 不是一个选项。
场景:当用户进入某个实例中已经存在的房间时,Loadbalance 需要将其发送到该特定实例。如果它在任何实例中都不存在,Loadbalance 可以将它路由到任何需求低的实例。
是否可以在 LoadBalance/Auto Scale 中进行任何配置来模拟匹配的行为,或者我是否需要创建一个服务来执行 Loadbalance 的工作并通过 AWS 开发工具包管理 AutoScale?