サーバーの評価

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

評価フォーミュラ

サーバーは重み付き合計形式を使用して評価されます。この形式には 4つのパーツがあります:

  • 属性、プレイヤーの年齢やサーバーの使用率など、プレイヤーとサーバーを説明するデータ。
  • シグナル 、属性を 0 から 1 の間の数に変換する。
  • 重量、シグナルの相対的な重要性を説明する。
  • サーバーの 参加プレイヤーとの互換性 を測定するサーバースコア。

参加プレイヤーは、最高のサーバースコアを持つサーバーと一致します。

属性

属性は、プレイヤーとサーバーを説明するデータです。属性の値は数または文字列であることができます。属性の値が文字列である場合、カテゴリアル属性と呼ばれます。属性の値が数字であるとき、それは数値属性と呼ばれます。

利用可能なすべての Roblox 属性の完全なリストについては、既存の属性 を参照してください。カスタム属性に関する詳細情報は、カスタム属性 を参照してください。

例: カテゴリーと数値属性
カテゴリアル属性
友達がいる は、このサーバーにプレイヤーが好ましいかどうかに関係なく、値が「true」の厳密な属性であるため、カテゴリ属性です。このサーバーにプレイヤーが好ましくない場合は、「false」です。
言語 は、値が「日本語」などプレイヤーの言語設定であるため、カテゴリ属性です。
数値属性
年齢 は、値がプレイヤーの年齢であるため、数値属性です。
占有率 は数値属性で、その値は現在このサーバーにいるプレイヤーの数です。

シグナル

シグナルは、0から1の数字の間のシグナルスコアと呼ばれる属性値を変換します。Signals transform attribute values into numbers between 0 and 1, called signal scores.シグナルスコア 1は、高いプレイヤー互換性を予測し、シグナルスコア 0は低いプレイヤー互換性を予測します。属性によって、変換には異なる集計、比較、および正常化が含まれる可能性があります。

既存の Roblox シグナルの完全なリストについては、既存のシグナル を参照してください。カスタムシグナルに関する詳細は、カスタムシグナル を参照してください。

例: 異なるシグナルスコアを持つ 2 つのサーバー

次の表は、8人のプレイヤーの容量を持つ 2つの異なるサーバーのオクッパンシーシグナルスコアを計算します:

サーバー上のプレイヤー 占有率スコア
サーバー A 22/8 = 0.25
サーバー B 66/8 = 0.75

オクッパンシーシグナルは、サーバー B をより高く評価し、参加プレイヤーにより適したものと見なします。

重量

シグナルの重みは、他のシグナルと比べてそのシグナルの重要性を説明します。重量が高いほど、シグナルのサーバースコアへの貢献が増加します。シグナルスコアを重量で掛けた後の値は、 重量付きシグナル と呼ばれます。

シグナルには負の重量があってはいけません。シグナルの重量が 0 の場合、そのシグナルは評価に考慮されません。

例: 占有率スコアの重み付け

次の表は、8人のプレイヤーとオクッパンシーシグナル重量 2の場所の重量付きオクッパンシーシグナルスコアを計算します:

サーバー上のプレイヤー 占有率スコア 重み付き占有率スコア
サーバー A 22/8 = 0.250.25 * 2 = 0.5
サーバー B 66/8 = 0.750.75 * 2 = 1.5
例: 異なる重量の 2つの構成

異なる重量も、マッチメイキングが異なるサーバーを選択することができます。次の表は、異なるマッチメイキング構成を持つ 2 つのサーバーのサーバースコアを計算します。設定 2 はオクッパンシーシグナルの重量が高く、サーバー A には参加プレイヤーの友人が含まれています。

友達 占有率
重量 スコア 重量 > スコア > 合計スコア >
設定 1 サーバー A 1150.251 * 1 + 5 * 0.25 = 2.25
サーバー B 1050.751 * 0 + 5 * 0.75 = 3.75
設定 2 サーバー A 3150.253 * 1 + 5 * 0.25 = 4.25
サーバー B 3050.753 * 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

次の表には、2つの異なる正常化因子で年齢シグナルのスコアが示されています:

年齢 正常化因子: 100 正常化因子: 25
500.50
250.750
120.880.52
50.950.8
011

正常化因子 25 のあるシグナルは、5年と 12年の年齢差をもっと遠くに置くと考えます。小さな正常化因子は、年齢差の増加または減少を拡大する効果があります。

重量単位

重量は、設定内の他のシグナルと比べてシグナルの重要性を示します。重量の相対的な大きさが、シグナルの重要度を決定し、絶対値ではありません。

例: 相対 vs 絶対値

以下の表は、2つの異なるマッチメイキング構成を持つ 2つのサーバーのサーバースコアを計算します。設定 5 と設定 6 は、それぞれの友達の重量よりも高い占有重量を持っています。サーバー A には参加プレイヤーの友人がいます。

友達 占有率
重量 スコア 重量 > スコア > 合計スコア >
設定 5 サーバー A 10,000115,0000.2510,000 * 1 + 15,000 * 0.25 = 13,750
サーバー B 10,000015,0000.7510,000 * 0 + 15,000 * 0.75 = 11,250
設定 6 サーバー A 0.0110.050.250.01 * 1 + 0.05 * 0.25 = 0.0225
サーバー B 0.0100.050.750.01 * 0 + 0.05 * 0.75 = 0.0375

サーバー A は設定 5 で勝ち、サーバー B は設定 6 で勝ちます。これは、構成 5 のオクッパンス重量が友達の重量の 1.5 倍に過ぎないのに対し、構成 6 のオクッパンス重量は友達の重量の 5 倍であるためです。

絶対値の違いにもかかわらず、構成 6 は構成 5 よりも友達よりも多くの占有を優先します。