得分方式
伺服器使用權重總和方程得分。這個方程有四個部分:
加入的玩家與擁有最高伺服器分數的伺服器匹配。
特性
特性是描述玩家和伺服器的數據。特性值可以是數字或字串。當屬性值是字串時,稱為類別屬性。當屬性值是數字時,稱為數值屬性。
要查看所有可用的 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 歲的年齡差不劣於 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 年的年齡差距視為更遠的距離。較小的正常化因子會增強年齡差異的微小增加或減少效果。
重量乘數
重量表示配置中的其他信號與信號之間的重要程度。重量的相對強度決定信號重要度,而不是它們的絕對強度。
例子:相對與絕對大小
下表計算了兩個不同配對配置的兩個伺服器的服務器得分。配置 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 更多地將空間優先於朋友。