评分方式
服务器使用权重总和方程进行评分。该方程包括四个部分:
匹配到服务器的玩家加入最高服务器评分的服务器。
属性
属性是描述玩家和服务器的数据。特性的值可以是数字或字符串。当属性值是字符串时,称为类别属性。当属性值是数字时,称为数字属性。
要查看所有可用 Roblox 属性的完整列表,请参阅 现有属性。了解有关自定义属性的更多信息,请参阅自定义属性。
例子:分类和数量属性
类别属性 |
---|
有朋友 是因为其值是串 "true" 当在此服务器上有首选玩家时, 和 "false" 当在此服务器上没有首选玩家时的类别属性。 |
语言 是一个类别属性,因为其值是玩家的语言设置,例如“日本语”。 |
数字属性 |
年龄 是数字属性,因为其值是玩家的年龄。 |
占用率 是数字属性,因为其值是当前服务器上的玩家数量。 |
信号
信号转换将属性值转换为 0 到 1 之间的数字,称为信号分数。信号分数 1 预测高玩家兼容性,而信号分数 0 预测低玩家兼容性。根据特性,变形可以包括不同的聚合、比较和正常化。
要查看现有 Roblox 信号的完整列表,请参阅现有信号。有关自定义信号的更多信息,请参阅自定义信号。
例子:两台服务器的不同信号分数
下表计算了 8 名玩家的容量的两个不同服务器的占用信号分数:
服务器上的玩家 | 占用分数 | |
---|---|---|
服务器 A | 2 | 2/8 = 0.25 |
服务器 B | 6 | 6/8 = 0.75 |
占用信号得分为服务器 B 更高,认为它更适合加入的玩家。
重量
信号的重量描述了该信号与其他信号的相对重要性。更高的重量提高信号对服务器得分的贡献。将信号分数乘以其重量后得到的值称为 权重信号 。
信号不能有负重。如果信号的重量为 0,该信号不会被考虑用于评分。
例子:重量占用分数
下表计算了 8 名玩家和占用信号重量 2 的地方的占用信号积分分数:
服务器上的玩家 | 占用分数 | 权重占用分数 > | |
---|---|---|---|
服务器 A | 2 | 2/8 = 0.25 | 0.25 * 2 = 0.5 |
服务器 B | 6 | 6/8 = 0.75 | 0.75 * 2 = 1.5 |
例子:两种不同重量的配置
不同重量也可以让匹配选择不同的服务器。下表计算了两个不同匹配配置的服务器的服务器评分。配置 2 对其占用信号的重量更高,服务器 A 中有加入玩家的朋友。
朋友 | 占用率 | |||||
---|---|---|---|---|---|---|
配置 1 | 服务器 A | 1 | 1 | 5 | 0.25 | 1 * 1 + 5 * 0.25 = 2.25 |
服务器 B | 1 | 0 | 5 | 0.75 | 1 * 0 + 5 * 0.75 = 3.75 | |
配置 2 | 服务器 A | 3 | 1 | 5 | 0.25 | 3 * 1 + 5 * 0.25 = 4.25 |
服务器 B | 3 | 0 | 5 | 0.75 | 3 * 0 + 5 * 0.75 = 3.75 |
服务器得分
服务器评分由以下权重总和方式计算,该方式计算服务器的权重信号分数:
ServerScore= WeightedSignalScore_1 + WeightedSignalScore_2 + ... + WeightedSignalScore_n= Weight_1 * SignalScore_1 + Weight_2 * SignalScore_2 + ... + Weight_n * SignalScore_n
匹配配置
匹配配置是用于评分一个场景方服务器的信号和重量的集合。默认情况下,所有地方的所有服务器都由 Roblox 默认配置评分,这意味着您不需要自定义或启用任何设置以使用它。
Robox 默认配置包括以下信号和重量:
信号 | 重量 |
---|---|
好友 | 10 |
延迟 | 3 |
占用率 | 2 |
播放历史 | 2 |
年龄 | 1 |
语言 | 1 |
语音聊天 | 1 |
设备类型 | 0 |
在默认 Roblox 配置中,好友信号的重量大于其他每个信号的重量之和。这意味着,如果可用,加入玩家总是匹配到服务器上的朋友(或同一 IP 地址上的玩家)。
设备类型信号在默认配置中存在,但重量为 0,因此不会影响匹配决定。当你自定义匹配时,你可以调整这个重量。
了解每个 Roblox 信号的更多信息,请参阅 现有信号。
高级概念
以下是关于匹配过程的更高级概念。
标准化
信号正常化属性值为 0 到 1 之间的数字。数字信号可以通过任意正整数进行正常化,称为 正常化因子 。如果普通化值大于 1,将被限制为 1。
例子:设计年龄信号
年龄信号测量服务器中玩家的平均年龄与加入玩家的年龄之间的差异。
ageDifference = abs(avgServerAge - joiningPlayerAge)
年龄超过 25 的服务器都被视为与玩家不兼容。例如,25 岁的年龄差对玩家来说并不比 26 岁的年龄差更糟糕,因此两个值都应该将信号分数带到 0。在这种情况下,25被视为正常化因子。
normAgeDifference = min(1, abs(avgServerAge - joiningPlayerAge) / 25)
信号分数与年龄差异相反,意味着信号分数在年龄差异较小时更高。
ageDifferenceSignalScore = 1 - normAgeDifference
下表显示了两个不同的正常化因子对年龄信号分数的评分:
年龄 | 正常化因子:100 | 正常化因子:25 |
---|---|---|
50 | 0.5 | 0 |
25 | 0.75 | 0 |
12 | 0.88 | 0.52 |
5 | 0.95 | 0.8 |
0 | 1 | 1 |
带有正常化因子 25 的信号认为 5 年和 12 年的年龄差距更远。更小的正常化因子有增强年龄差异的边缘增加或减少的效果。
重量乘数
重量表示配置中其他信号对于其他信号的重要性。重量的相对大小决定信号重要性,而不是它们的绝对大小。
例子:相对 vs 绝对值
下表计算了两个不同匹配配置的两个服务器的服务器评分。配置 5 和配置 6 的占用重量高于各自朋友重量。服务器 A 内有加入玩家的朋友。
朋友 | 占用率 | |||||
---|---|---|---|---|---|---|
配置 5 | 服务器 A | 10,000 | 1 | 15,000 | 0.25 | 10,000 * 1 + 15,000 * 0.25 = 13,750 |
服务器 B | 10,000 | 0 | 15,000 | 0.75 | 10,000 * 0 + 15,000 * 0.75 = 11,250 | |
配置 6 | 服务器 A | 0.01 | 1 | 0.05 | 0.25 | 0.01 * 1 + 0.05 * 0.25 = 0.0225 |
服务器 B | 0.01 | 0 | 0.05 | 0.75 | 0.01 * 0 + 0.05 * 0.75 = 0.0375 |
服务器 A 以配置 5 获胜,服务器 B 以配置 6 获胜。这是因为配置 5 的占用重量仅为其朋友重量的 1.5 倍,而配置 6 的占用重量为其朋友重量的 5 倍。
尽管绝对数量不同,但配置 6 比配置 5 更多地将空间优先于朋友。