12.2. マッチメイク

12.2.1. 一般情報

モジュール名 matchmake
APIバージョン 2

12.2.2. レンジ拡大形式オートマッチメイク機能向け API

レンジ拡大形式によるオートマッチメイク機能を利用する場合に本 API を使用します。機能の詳細は、「 4.8.1. マッチメイクセッションの選び方 」の「 MATCHMAKE_SELECTION_METHOD_BROADEN_RANGE を指定した場合」および「 MATCHMAKE_SELECTION_METHOD_BROADEN_RANGE_WITH_PROGRESS_SCORE を指定した場合」を参照してください。

12.2.2.1. レンジ設定の取得

レンジ設定を取得します。

GET /nex/matchmake/v2/range/(name)

name で指定したレンジ設定を取得します。

パラメーター:

名前 内容
name 取得するレンジ設定。下記表参照。 必須

name

内容
threshold レンジの閾値。

リクエスト例:

GET /nex/matchmake/v2/range/threashold HTTP/1.1

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <ranges length="13">
      <range>
        <threshold>0</threshold>
      </range>
      <range>
        <threshold>1100</threshold>
      </range>
      <range>
        <threshold>1240</threshold>
      </range>
      <range>
        <threshold>1400</threshold>
      </range>
      <range>
        <threshold>1520</threshold>
      </range>
      <range>
        <threshold>1620</threshold>
      </range>
      <range>
        <threshold>1720</threshold>
      </range>
      <range>
        <threshold>1815</threshold>
      </range>
      <range>
        <threshold>1925</threshold>
      </range>
      <range>
        <threshold>2040</threshold>
      </range>
      <range>
        <threshold>2180</threshold>
      </range>
      <range>
        <threshold>2300</threshold>
      </range>
      <range>
        <threshold>10000</threshold>
      </range>
    </ranges>
  </matchmake>
</nex>

12.2.2.2. 全レンジ設定とオートマッチメイク結果の取得

すべてのレンジ設定とオートマッチメイク結果を取得します。

GET /nex/matchmake/v2/ranges

リクエスト例:

GET /nex/matchmake/v2/ranges HTTP/1.1

レスポンスボディ:

要素名 親要素 内容
ranges   ルート要素。
range ranges 子要素であるレンジ設定とオートマッチメイク結果のコンテナ。
threshold range 閾値。レンジは、この閾値より 1 段階小さい閾値に 1 を足した数から、この閾値までになります。上記レスポンス例の場合、この値が 1520 であれば、対応するレンジは 1401~1520 になります。ただし、一番小さい閾値には 1 を足しません。上記レスポンス例の場合、この値が 1100 であれば、対応するレンジは 1~1100 ではなく、 0~1100 になります。また、この値が一番小さい閾値の場合、対応するレンジは存在せず、結果その1 からその3 は常に 0 となります。
result1 range 結果その1。検索条件に一致するマッチメイクセッションが、同じレンジ内に見つかった回数。
result2 range 結果その2。検索条件に一致するマッチメイクセッションが、同じレンジ内に見つからず、レンジを拡大したら見つかった回数。
result3 range 結果その3。検索条件に一致するマッチメイクセッションが、同じレンジ内にも拡大したレンジ内にも見つからなかった回数。

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <ranges length="13">
      <range>
        <threshold>0</threshold>
        <result1>0</result1>
        <result2>0</result2>
        <result3>0</result3>
      </range>
      <range>
        <threshold>1100</threshold>
        <result1>0</result1>
        <result2>0</result2>
        <result3>0</result3>
      </range>
      <range>
        <threshold>1240</threshold>
        <result1>0</result1>
        <result2>0</result2>
        <result3>0</result3>
      </range>
      <range>
        <threshold>1400</threshold>
        <result1>0</result1>
        <result2>0</result2>
        <result3>0</result3>
      </range>
      <range>
        <threshold>1520</threshold>
        <result1>0</result1>
        <result2>0</result2>
        <result3>0</result3>
      </range>
      <range>
        <threshold>1620</threshold>
        <result1>0</result1>
        <result2>0</result2>
        <result3>0</result3>
      </range>
      <range>
        <threshold>1720</threshold>
        <result1>0</result1>
        <result2>0</result2>
        <result3>0</result3>
      </range>
      <range>
        <threshold>1815</threshold>
        <result1>0</result1>
        <result2>0</result2>
        <result3>0</result3>
      </range>
      <range>
        <threshold>1925</threshold>
        <result1>0</result1>
        <result2>0</result2>
        <result3>0</result3>
      </range>
      <range>
        <threshold>2040</threshold>
        <result1>0</result1>
        <result2>0</result2>
        <result3>0</result3>
      </range>
      <range>
        <threshold>2180</threshold>
        <result1>0</result1>
        <result2>0</result2>
        <result3>0</result3>
      </range>
      <range>
        <threshold>2300</threshold>
        <result1>0</result1>
        <result2>0</result2>
        <result3>0</result3>
      </range>
      <range>
        <threshold>10000</threshold>
        <result1>0</result1>
        <result2>0</result2>
        <result3>0</result3>
      </range>
    </ranges>
  </matchmake>
</nex>

12.2.2.3. レンジ外エラー回数の取得

クライアントからサーバーへ、レンジ外の値が送られてきた回数を取得します。 値とは、 MatchmakeSession オブジェクトのインデックス MATCHMAKE_SESSION_BROADEN_RANGE_ATTRIBUTE_INDEX の属性値です。このとき、クライアントへは QERROR(RendezVous, OutOfRatingRange) が返ります。

GET /nex/matchmake/v2/range_error

リクエスト例:

GET /nex/matchmake/v2/range_error HTTP/1.1

レスポンスボディ:

要素名 親要素 内容
range_error   ルート要素。
under_min_threshold range_error 閾値の最小値よりも小さい値が送られてきた回数。
over_max_threshold range_error 閾値の最大値よりも大きい値が送られてきた回数。

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <range_error>
      <under_min_threshold>0</under_min_threshold>
      <over_max_threshold>0</over_max_threshold>
    </range_error>
  </matchmake>
</nex>

12.2.2.4. レンジ設定の変更

レンジ設定を変更します。 この API を使用すると、「 12.2.2.2. 全レンジ設定とオートマッチメイク結果の取得 」のオートマッチメイク結果、および「 12.2.2.3. レンジ外エラー回数の取得 」のレンジ外の値が送られてきた回数が 0 にリセットされます。

PUT /nex/matchmake/v2/range
POST /nex/matchmake/v2/range/put

リクエストボディ

要素名 親要素 内容
change   ルート要素。 必須
thresholds change 子要素である閾値のコンテナ。 必須
threshold thresholds 閾値。要素数は 2 以上、値は 0 以上の整数、重複値はなしとしてください。 必須

リクエスト例:

PUT /nex/matchmake/v2/range HTTP/1.1

<change>
  <thresholds>
    <threshold>0</threshold>
    <threshold>1500</threshold>
    <threshold>3000</threshold>
    <threshold>5000</threshold>
    <threshold>9000</threshold>
    <threshold>20000</threshold>
    <threshold>100000</threshold>
  </thresholds>
</change>

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <ranges>
      <changed length="7"/>
    </ranges>
  </matchmake>
</nex>

length は変更した閾値の数。

12.2.2.5. オートマッチメイク結果のリセット

オートマッチメイク結果をリセットします。 「 12.2.2.2. 全レンジ設定とオートマッチメイク結果の取得 」のオートマッチメイク結果、および「 12.2.2.3. レンジ外エラー回数の取得 」のレンジ外の値が送られてきた回数を 0 にリセットします。

DELETE /nex/matchmake/v2/range
POST /nex/matchmake/v2/range/delete

リクエスト例:

DELETE /nex/matchmake/v2/range HTTP/1.1

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <ranges>
      <reset length="7"/>
    </ranges>
  </matchmake>
</nex>

length はリセットしたオートマッチメイク結果の数。

12.2.2.6. レンジ設定のリセット

レンジ設定をリセットします。

DELETE /nex/matchmake/v2/range/(name)
POST /nex/matchmake/v2/range/(name)/delete

name で指定したレンジ設定をリセットします。

パラメーター:

名前 内容
name リセットするレンジ設定。下記表参照。 必須

name

内容
results オートマッチメイク結果。リセットされて 0 になります。また、「 12.2.2.3. レンジ外エラー回数の取得 」のレンジ外の値が送られてきた回数も 0 にリセットされます。「 12.2.2.5. オートマッチメイク結果のリセット 」の動作と同じです。

リクエスト例:

DELETE /nex/matchmake/v2/range/results HTTP/1.1

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <ranges>
      <reset length="7"/>
    </ranges>
  </matchmake>
</nex>

length はリセットしたレンジ設定の数。

12.2.2.7. マッチメイクセッション設定の取得

マッチメイクセッション設定を取得します。

GET /nex/matchmake/v2/session_setting/(name)

1つのマッチメイクセッション設定を取得します。

パラメーター:

名前 内容
name 取得するマッチメイクセッション設定。下記表参照。 必須

name

内容
broaden_range_upper レンジ拡大時、上に何レンジ広げるか。
broaden_range_lower レンジ拡大時、下に何レンジ広げるか。

リクエスト例:

GET /nex/matchmake/v2/session_setting/broaden_range_upper HTTP/1.1

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <session_settings length="1">
      <session_setting>
        <name>broaden_range_upper</name>
        <value>2</value>
      </session_setting>
    </session_settings>
  </matchmake>
</nex>
GET /nex/matchmake/v2/session_setting/

複数のマッチメイクセッション設定を取得します。

パラメーター:

名前 内容
names 取得するマッチメイクセッション設定。カンマ区切りで複数指定可。上記表参照。 必須

リクエスト例:

GET /nex/matchmake/v2/session_setting?names=broaden_range_upper,broaden_range_lower HTTP/1.1

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <session_settings length="2">
      <session_setting>
        <name>broaden_range_upper</name>
        <value>2</value>
      </session_setting>
      <session_setting>
        <name>broaden_range_lower</name>
        <value>2</value>
      </session_setting>
    </session_settings>
  </matchmake>
</nex>

12.2.2.8. 全マッチメイクセッション設定の取得

すべてのマッチメイクセッション設定を取得します。

GET /nex/matchmake/v2/session_settings

リクエスト例:

GET /nex/matchmake/v2/session_settings HTTP/1.1

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <session_settings length="2">
      <session_setting>
        <name>broaden_range_lower</name>
        <value>2</value>
      </session_setting>
      <session_setting>
        <name>broaden_range_upper</name>
        <value>2</value>
      </session_setting>
    </session_settings>
  </matchmake>
</nex>

12.2.2.9. マッチメイクセッション設定の変更

マッチメイクセッション設定の変更をします。

PUT /nex/matchmake/v2/session_setting
POST /nex/matchmake/v2/session_setting/put

リクエストボディ

要素名 親要素 内容
change   ルート要素。 必須
param change 変更するデータを指定する。複数指定可。 必須
name param マッチメイクセッション設定。下記表参照。 必須
value param 値。 必須

name

内容
broaden_range_upper レンジ拡大時、上に何レンジ広げるか。
broaden_range_lower レンジ拡大時、下に何レンジ広げるか。

リクエスト例:

PUT /nex/matchmake/v2/session_setting/ HTTP/1.1

<change>
  <param>
    <name>broaden_range_upper</name>
    <value>1</value>
  </param>
  <param>
    <name>broaden_range_lower</name>
    <value>1</value>
  </param>
</change>

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <session_settings>
      <changed length="3"/>
    </session_settings>
  </matchmake>
</nex>

length は変更したマッチメイクセッション設定の数。

12.2.3. スコア付けによるオートマッチメイク機能向け API

スコア付けによるオートマッチメイク機能を利用する場合に本 API を使用します。機能の詳細は、「 4.8.1. マッチメイクセッションの選び方 」の「 MATCHMAKE_SELECTION_METHOD_SCORE_BASED を指定した場合」を参照してください。

12.2.3.1. スコア換算設定のセット

スコア換算設定およびマッチングの設定値をセットします。 レーティング値の差や相手との距離といった type ごとの値からスコアに変換する設定を行います。 設定は setting_index により複数設定しておくことができ、クライアントからどの設定を使うかを指定できます。 設定は begin と end で指定する値の範囲に対応するスコアを指定することで行います。 例えばレーティング値が 0 以上 100 未満離れている場合はスコア 100、100 以上 200 未満離れている場合はスコア 50、といった設定をします。 もし設定したいずれの範囲にも値が含まれていなかった場合はデフォルトスコアが使用されます。デフォルトスコアは begin、end に共に -1 を指定することにより設定できます。 デフォルトスコアが未設定だった場合のデフォルトスコアは 0 です。 type ごとに計算したスコアの和がトータルスコアとなります。トータルスコアがもっとも高いマッチメイクセッションが選択されます。 SCORE_CONVERSION_TYPE_MINIMUM_MATCH_SCORE を設定することでトータルスコアがある一定値を超えた場合だけ選択の対象とすることができます。

CANDIDATE_COUNT_FOR_CREATING_NEW_SESSION を設定することで、一定数以上のマッチメイクセッションが見つからなかった場合はマッチさせないという設定が可能です。 あえてマッチさせないことで、ある程度の候補が揃うのを待ってからより適切なマッチメイクセッションを選ぶことが可能になります。 また CANDIDATE_COUNT_FOR_RANDOM_SELECTION を設定することで、スコア順でソートした上で更に上位何件かをランダムにソートした上でマッチング対象を選ぶといった設定が可能です。 これらの設定は、スコアの高いマッチメイクセッションが繰り返し選ばれてしまうことを防ぎたい場合に利用可能です。

PUT /nex/matchmake/v2/score_settings
POST /nex/matchmake/v2/score_settings/put

リクエストボディ

要素名 親要素 内容
score_settings   ルート要素。 必須
score_setting score_settings スコア設定。 最大 400 個まで複数指定できます。ただし、同じ setting_index と type ごとには最大 64 個となります。0 個の場合は設定を空にします。
setting_index score_setting 設定インデックス。0 以上 0xffffffff 以下の値を指定できます。 必須
type score_setting スコアに変換するパラメータの種類。詳細は下記表を参照してください。1 以上 9 以下の値を指定できます。 必須
begin score_setting この値を含む範囲の下限。デフォルトスコア を指定する場合は -1 を指定してください。0 以上 0x7fffffff 以下の値、もしくは -1 を指定できます。 必須
end score_setting この値を含まない範囲の上限。デフォルトスコア を指定する場合は -1 を指定してください。0 以上 0x7fffffff 以下の値、もしくは -1 を指定できます。 必須
score score_setting スコアもしくは設定値。-10000 以上 10000 以下の値を指定できます。 必須

type

名前 説明
SCORE_CONVERSION_TYPE_MINIMUM_MATCH_SCORE 1 マッチさせる最低スコア。この値未満のトータルスコアとはマッチしなくなります。デフォルトスコアのみ指定できます。未指定の場合は 0 です。
SCORE_CONVERSION_TYPE_RATING_VALUE_DIFF 2 レーティング値の差からスコアへの変換。
SCORE_CONVERSION_TYPE_DISCONNECTION_RATE_DIFF 3 切断率 (%) の差からスコアへの変換。
SCORE_CONVERSION_TYPE_VIOLATION_RATE_DIFF 4 違反率 (%) の差からスコアへの変換。
SCORE_CONVERSION_TYPE_DISTANCE 5 距離 (km) からスコアへの変換。GeoIP により距離を取得できなかったときや、MatchmakeParam::SetUseGeoIp() に false を指定した場合はデフォルトスコアが使われます。
SCORE_CONVERSION_TYPE_MATCH_COUNTRY 6 国が一致したときのスコア。一致したときは値が 1 だった場合のスコア、一致しないときは 0 だった場合のスコアが使われます。
SCORE_CONVERSION_TYPE_MATCH_COUNTRY_WITHOUT_DISTANCE 7 距離情報が無いときに国が一致したときのスコア。一致したときは値が 1 だった場合のスコア、一致しないときは 0 だった場合のスコアが使われます。
SCORE_CONVERSION_TYPE_MATCHMAKE_SESSION_DURATION 8 マッチメイクセッションの存続時間 (秒) からスコアへの変換。時間が経つにつれスコアを上昇させることでマッチする相手が長時間見つからないという状況を防ぐことができます。
SCORE_CONVERSION_TYPE_MATCHMAKE_SESSION_PROGRESS 9 マッチメイクセッションの進行度合いからスコアへの変換。
CANDIDATE_COUNT_FOR_CREATING_NEW_SESSION 101 設定した値が n のとき、見つかったマッチメイクセッションの候補の数が n 未満だった際にマッチしなかったものとして扱います。デフォルトスコアのみ指定でき、未指定の場合は値が 1 となります。
CANDIDATE_COUNT_FOR_RANDOM_SELECTION 102 設定した値が n のとき、見つかったマッチメイクセッションの候補の先頭 n 件をランダムにシャッフルします。デフォルトスコアのみ指定でき、未指定の場合は値が 1 となります。

SCORE_CONVERSION_TYPE_DISCONNECTION_RATE_DIFF や SCORE_CONVERSION_TYPE_VIOLATION_RATE_DIFF は SCORE_CONVERSION_TYPE_RATING_VALUE_DIFF と同じく自分と相手との値の差をスコアに変換するものです。 特に値のレンジに制限はありません。切断率、違反率といったもの以外のパラメータの比較に使用しても問題ありません。 距離はマッチメイクセッションのオーナーと検索者の IP アドレスから都市レベルの緯度経度を推定し、 その二点の緯度経度からインターネットの経路を考慮して計算されます。 経路は北極や南極を通らず、ユーラシア大陸を通りにくくしてあります。 これは日本と欧州間、欧州と豪州間が実際には北米を経由して通信するためです。 距離が大きいほど RTT も大きくなります。実際の RTT は個々の環境により大きくばらつきますが、 典型的なケースではおよそ 10000 km で 200 ms、20000 km で 300 ms、30000 km で 400 ms 程度となります。

リクエスト例:

PUT /nex/matchmake/v2/score_settings HTTP/1.1

<score_settings>
  <score_setting>
    <setting_index>0</setting_index>
    <type>1</type>
    <begin>-1</begin>
    <end>-1</end>
    <score>100</score>
  </score_setting>
  <score_setting>
    <setting_index>0</setting_index>
    <type>2</type>
    <begin>0</begin>
    <end>100</end>
    <score>100</score>
  </score_setting>
  <score_setting>
    <setting_index>0</setting_index>
    <type>2</type>
    <begin>100</begin>
    <end>200</end>
    <score>50</score>
  </score_setting>
  <score_setting>
    <setting_index>0</setting_index>
    <type>3</type>
    <begin>0</begin>
    <end>10</end>
    <score>100</score>
  </score_setting>
  <score_setting>
    <setting_index>0</setting_index>
    <type>3</type>
    <begin>10</begin>
    <end>20</end>
    <score>50</score>
  </score_setting>
</score_settings>

この例ではマッチさせる最低スコアを 100 とし、レーティング値の差が 0 以上 100 未満だったらスコア 100、 100 以上 200 未満だったらスコア 50 を割り当てています。 それ以上レーティング値に差があった場合はスコア 0 です。 さらに、切断率の差が 0 以上 10 未満だったらスコア 100、10 以上 20 未満だったらスコア 50 を割り当てています。それ以上切断率に差があった場合のスコアは 0 です。

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <score_settings>
      <set length="5" />
    </score_settings>
  </matchmake>
</nex>

length はセットした score_setting の数。

距離と国に関するスコアを最大 1000 割り当てる場合の設定例

距離のbegin 距離のend score
0 1250 750
1250 2500 600
2500 5000 450
5000 10000 300
10000 20000 150

国が一致したときのスコアを 250、距離情報が無いときに国が一致したときのスコアを 500 とします。

代表的な地域間の距離

地域1 地域2 距離 (km)
東京 ロンドン 25000
東京 ニューヨーク 16000
東京 サンフランシスコ 11000
東京 シドニー 8000
東京 シンガポール 5500
東京 台北 2500
ロンドン サンフランシスコ 14000
ロンドン ニューヨーク 8500
ロンドン モスクワ 4500
ロンドン ベルリン 1500
シドニー ロンドン 25500
シドニー ニューヨーク 17500
シドニー サンフランシスコ 13000
シドニー シンガポール 6500
サンフランシスコ ニューヨーク 5500
サンフランシスコ バンクーバー 2000

12.2.3.1.1. 値の設定例

スコア付けのオートマッチメイクの設定では、マッチする最低スコア (SCORE_CONVERSION_TYPE_MINIMUM_MATCH_SCORE) によっては意図した動作とならない可能性があります。 全体スコアがマッチする最低スコア以上になりやすい設定をすると、マッチメイクセッションは新規に作られないため、 既存の空いたマッチメイクセッションへ参加となりやすく、スコア付けのオートマッチメイクを利用した 意味がなくなってしまいます。 ある程度以上、距離が遠くレートや切断率が異なる端末同士では、スコアが低くなるようにして、 マッチメイクできないようにする設定が必要です。

12.2.3.1.1.1. 例1: 距離ベース

距離だけに注目して、日米間の接続は許可して、日欧間の接続は許可しない場合の 設定例は以下の通りです。

settingIndex type begin end score  
0 1(SCORE_CONVERSION_TYPE_MINIMUM_MATCH_SCORE) -1 -1 50 *1
0 5(SCORE_CONVERSION_TYPE_DISTANCE) -1 -1 0  
0 5 0 1250 90  
0 5 1250 2500 80  
0 5 2500 5000 70  
0 5 5000 10000 60  
0 5 10000 20000 50 *2
0 6(SCORE_CONVERSION_TYPE_MATCH_COUNTRY) 0 1 0  
0 6 1 2 10  
0 7(SCORE_CONVERSION_TYPE_MATCH_COUNTRY_WITHOUT_DISTANCE) 0 1 50 *3
0 7 1 2 60 *4

設定で注意するべき箇所は、 SCORE_CONVERSION_TYPE_MATCH_COUNTRY_WITHOUT_DISTANCE で 距離が算出できなかった場合の国が一致しなかったときの値 のスコア(*2)です。たとえば 0 にしてしまうと国が一致しない限りどこにもマッチしなくなってしまうので、 このスコアで距離として、マッチする最低スコアの閾値(*1)に達するように調整が必要です。 日米間の接続を許可しない場合には、 *2の行を削除し、 *1 や *3 共に 60 として、 *4 を 70とします。

12.2.3.1.1.2. 例2: 距離・レーティング値の差ベース

上記距離ベースの設定に、レーティング値の差を追加した例は以下の通りです。 レーティングは、 0 から 9 までの 10 段階として、 3 つ以上違うとマッチしないように設定しています。

settingIndex type begin end score
0 1(SCORE_CONVERSION_TYPE_MINIMUM_MATCH_SCORE) -1 -1 150
0 5(SCORE_CONVERSION_TYPE_DISTANCE) -1 -1 0
0 5 0 1250 90
0 5 1250 2500 80
0 5 2500 5000 70
0 5 5000 10000 60
0 5 10000 20000 50
0 6(SCORE_CONVERSION_TYPE_MATCH_COUNTRY) 0 1 0
0 6 1 2 10
0 7(SCORE_CONVERSION_TYPE_MATCH_COUNTRY_WITHOUT_DISTANCE) 0 1 50
0 7 1 2 60
0 2(SCORE_CONVERSION_TYPE_RATING_VALUE_DIFF) 0 1 120
0 2 1 2 110
0 2 2 3 100
0 2 3 10 0

レーティング値の差でマッチするときにはスコアを 100 以上とし、マッチする最低スコアの閾値を 150 とすることで、 レーティングによるスコアが 0 の場合に、距離にかかわらずマッチしないように調整しています。 また、距離が 20000 [km] 以上の場合に、レーティング値の差が 0 でも閾値を超えないようにすることで、 マッチしないように調整しています。

12.2.3.1.1.3. 例3 距離・レーティング値の差・切断率の差ベース

上記距離とレーティング値の差ベースの設定に、切断率の差を追加した例は以下の通りです。 切断率が、30% 以上違うとマッチしないように設定しています。

settingIndex type begin end score
0 1(SCORE_CONVERSION_TYPE_MINIMUM_MATCH_SCORE) -1 -1 250
0 5(SCORE_CONVERSION_TYPE_DISTANCE) -1 -1 0
0 5 0 1250 90
0 5 1250 2500 80
0 5 2500 5000 70
0 5 5000 10000 60
0 5 10000 20000 50
0 6(SCORE_CONVERSION_TYPE_MATCH_COUNTRY) 0 1 0
0 6 1 2 10
0 7(SCORE_CONVERSION_TYPE_MATCH_COUNTRY_WITHOUT_DISTANCE) 0 1 50
0 7 1 2 60
0 2(SCORE_CONVERSION_TYPE_RATING_VALUE_DIFF) 0 1 120
0 2 1 2 110
0 2 2 3 100
0 2 3 10 0
0 3(SCORE_CONVERSION_TYPE_DISCONNECTION_RATE_DIFF) 0 10 110
0 3 10 20 100
0 3 20 101 0

レーティング値の差と同様に切断率の差でマッチするときにはスコアを 100 以上とし、マッチする最低スコアの閾値を 250 とすることで、 切断率によるスコアが 0 の場合に、距離やレーティングにかかわらずマッチしないように調整しています。 また、距離が 20000 [km] 以上の場合に、切断率・レーティング値の差が共に 0 でも閾値を超えないようにすることで、 マッチしないように調整しています。

12.2.3.1.1.4. 例4 距離・レーティング値の差・切断率の差・存続時間ベース

上記までの例ですと、マッチメイクの状況次第では、いつまでも集まらないマッチメイクセッションができる可能性があります。 この対策として、マッチメイクの存続時間に応じてスコアを上昇させるという設定も可能です。 この設定を利用する場合、ゲーム終了都度マッチメイクセッションを解散させるか、 MatchmakeExtensionClient::UpdateMatchmakeSession() で、 UpdateMatchmakeSessionParam::SetOpenParticipation() と UpdateMatchmakeSessionParam::SetStartedTime() を利用して、マッチメイクセッションを参加可能とすると同時に、開始時刻を現在時刻に更新する必要があります。

settingIndex type begin end score
0 1(SCORE_CONVERSION_TYPE_MINIMUM_MATCH_SCORE) -1 -1 250
0 5(SCORE_CONVERSION_TYPE_DISTANCE) -1 -1 0
0 5 0 1250 90
0 5 1250 2500 80
0 5 2500 5000 70
0 5 5000 10000 60
0 5 10000 20000 50
0 6(SCORE_CONVERSION_TYPE_MATCH_COUNTRY) 0 1 0
0 6 1 2 10
0 7(SCORE_CONVERSION_TYPE_MATCH_COUNTRY_WITHOUT_DISTANCE) 0 1 50
0 7 1 2 60
0 2(SCORE_CONVERSION_TYPE_RATING_VALUE_DIFF) 0 1 120
0 2 1 2 110
0 2 2 3 100
0 2 3 10 0
0 3(SCORE_CONVERSION_TYPE_DISCONNECTION_RATE_DIFF) 0 10 110
0 3 10 20 100
0 3 20 101 0
0 8(SCORE_CONVERSION_TYPE_MATCHMAKE_SESSION_DURATION) 0 30 0
0 8 30 60 50
0 8 60 120 150
0 8 120 2147483647 250

この設定では、マッチメイクセッションが参加可能になった時刻より 30 秒後から 60 秒後までは、スコア 50 、 60秒後から120秒後までは、スコア 150 が加算され、 120 秒後以降はスコア 250 加算となります。 その結果、他の項目が全てスコア 0 でも最低スコアに達し、必ずマッチできるようになります。

この例以外の使用方法を考えていて、調整値の決定が難しい場合には、事前に任天堂に相談してください。

12.2.3.1.1.5. 例5 CANDIDATE_COUNT_FOR_CREATING_NEW_SESSION, CANDIDATE_COUNT_FOR_RANDOM_SELECTION の利用

見つかったマッチメイクセッションの候補が 5 件未満の場合はマッチさせず、 かつ見つかったマッチメイクセッションのスコア順上位 5 件をランダムにソートした上で マッチを行いたい場合、次のように設定します。

settingIndex type begin end score
0 101(CANDIDATE_COUNT_FOR_CREATING_NEW_SESSION) -1 -1 5
0 102(CANDIDATE_COUNT_FOR_RANDOM_SELECTION) -1 -1 5
12.2.3.1.1.6. NMAS で設定可能な CSV 形式の例

例3の距離・レーティング値の差・切断率の差ベースの設定例について、NMAS で設定可能な CSV 形式の データは、以下の通りです。

#settingIndex,type,begin,end,score
0,1,-1,-1,250
0,5,-1,-1,0
0,5,0,1250,90
0,5,1250,2500,80
0,5,2500,5000,70
0,5,5000,10000,60
0,5,10000,20000,50
0,6,0,1,0
0,6,1,2,10
0,7,0,1,50
0,7,1,2,60
0,2,0,1,120
0,2,1,2,110
0,2,2,3,100
0,2,3,10,0
0,3,0,10,110
0,3,10,20,100
0,3,20,101,0

CSV形式をXML形式に相互変換するツールは、 ScoreBased XML Setting CSV Converter でCSV形式とXML形式を相互に変換できます。

12.2.3.2. スコア換算設定の取得

スコア換算設定を取得します。

GET /nex/matchmake/v2/score_settings

リクエスト例:

GET /nex/matchmake/v2/score_settings HTTP/1.1

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <score_settings length="5">
      <score_setting>
        <setting_index>0</setting_index>
        <type>1</type>
        <begin>-1</begin>
        <end>-1</end>
        <score>100</score>
      </score_setting>
      <score_setting>
        <setting_index>0</setting_index>
        <type>2</type>
        <begin>0</begin>
        <end>100</end>
        <score>100</score>
      </score_setting>
      <score_setting>
        <setting_index>0</setting_index>
        <type>2</type>
        <begin>100</begin>
        <end>200</end>
        <score>50</score>
      </score_setting>
      <score_setting>
        <setting_index>0</setting_index>
        <type>3</type>
        <begin>0</begin>
        <end>10</end>
        <score>100</score>
      </score_setting>
      <score_setting>
        <setting_index>0</setting_index>
        <type>3</type>
        <begin>10</begin>
        <end>20</end>
        <score>50</score>
      </score_setting>
    </score_settings>
  </matchmake>
</nex>

12.2.3.3. スコア換算前の変換設定のセット

スコア換算設定で値を評価する前に参照する変換設定をセットします。 レーティング値の差などの値を評価前に変換しておくことで、差の設定をしやすくします。 設定は setting_index により複数設定しておくことができ、クライアントからどの設定を使うかを指定できます。 設定は begin と end により変換対象の値の範囲をtypeごとに指定することで行います。 もし設定したいずれの範囲にも値が含まれていなかった場合はデフォルト値が使用されます。デフォルト値は begin、end に共に -1 を指定することにより設定できます。 デフォルト値は setting_index と type ごとに設定します。デフォルト値が未設定だった場合のデフォルト値は 0 です。 クライアントから指定された setting_index と type に対応する変換設定がない場合は変換は行われず、そのままの値が使用されます。

PUT /nex/matchmake/v2/score_mappings
POST /nex/matchmake/v2/score_mappings/put

リクエストボディ

要素名 親要素 内容
score_mappings   ルート要素。 必須
score_mapping score_mappings 変換設定。 最大 400 個まで複数指定できます。ただし、同じ setting_index と type ごとには最大 64 個となります。0 個の場合は設定を空にします。
setting_index score_mapping 設定インデックス。0 以上 0xffffffff 以下の値を指定できます。 必須
type score_mapping 値を変換するパラメータの種類。詳細は下記表を参照してください。1 以上 9 以下の値を指定できます。 必須
begin score_mapping この値を含む範囲の下限。デフォルト値 を指定する場合は -1 を指定してください。0 以上 0x7fffffff 以下の値、もしくは -1 を指定できます。 必須
end score_mapping この値を含まない範囲の上限。デフォルト値 を指定する場合は -1 を指定してください。0 以上 0x7fffffff 以下の値、もしくは -1 を指定できます。 必須
value score_mapping 変化後の値。 -1 を指定すると無変換となり、変換前の値が使用されます。0 以上 0x7fffffff 以下の値、もしくは -1 を指定できます。 必須

type

名前 説明
SCORE_MAPPING_TYPE_RATING_VALUE 2 レーティング値の変換。
SCORE_MAPPING_TYPE_DISCONNECTION_RATE 3 切断率 (%) の変換。
SCORE_MAPPING_TYPE_VIOLATION_RATE 4 違反率 (%) の変換。

上記以外の type が設定されても無視されます。

リクエスト例:

PUT /nex/matchmake/v2/score_mappings HTTP/1.1

<score_mappings>
  <score_mapping>
    <setting_index>0</setting_index>
    <type>3</type>
    <begin>-1</begin>
    <end>-1</end>
    <value>0</value>
  </score_mapping>
  <score_mapping>
    <setting_index>0</setting_index>
    <type>3</type>
    <begin>0</begin>
    <end>1</end>
    <value>0</value>
  </score_mapping>
  <score_mapping>
    <setting_index>0</setting_index>
    <type>3</type>
    <begin>1</begin>
    <end>5</end>
    <value>10</value>
  </score_mapping>
  <score_mapping>
    <setting_index>0</setting_index>
    <type>3</type>
    <begin>5</begin>
    <end>10</end>
    <value>20</value>
  </score_mapping>
  <score_mapping>
    <setting_index>0</setting_index>
    <type>3</type>
    <begin>10</begin>
    <end>101</end>
    <value>30</value>
  </score_mapping>
</score_mappings>

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <score_mappings>
      <set length="5" />
    </score_mappings>
  </matchmake>
</nex>

length はセットした score_mappings の数。

12.2.3.3.1. 値の設定例

レーティングは、ゲームの仕様により非線形であることがあり、切断率は切断しない人や1回だけのひとが大多数を占め、切断率が大きい人は少ない傾向にあります。

スコア換算前の変換設定により、これら非線形な値を線形な値に変換して差で扱いやすくする例です。 レーティングとしてイロレーティングモデルを前提としています。切断率の単位は、% で、1 % 刻みで算出されているものとします。

settingIndex type begin end value
0 2(SCORE_MAPPING_TYPE_RATING_VALUE) -1 -1 0
0 2 0 1110 0
0 2 1110 1240 1
0 2 1240 1400 2
0 2 1400 1520 3
0 2 1520 1720 4
0 2 1720 1815 5
0 2 1815 1925 6
0 2 1925 2040 7
0 2 2040 2180 8
0 2 2180 10000 9
0 3(SCORE_MAPPING_TYPE_DISCONNECTION_RATE) -1 -1 0
0 3 0 1 0
0 3 1 5 10
0 3 5 10 20
0 3 10 101 30
12.2.3.3.1.1. NMAS で設定可能な CSV 形式の例

スコア変換の設定例について、NMAS で設定可能な CSV 形式の データは、以下の通りです。

#setting_index,type,begin,end,value
0,2,-1,-1,0
0,2,0,1110,0
0,2,1110,1240,1
0,2,1240,1400,2
0,2,1400,1520,3
0,2,1520,1720,4
0,2,1720,1815,5
0,2,1815,1925,6
0,2,1925,2040,7
0,2,2040,2180,8
0,2,2180,10000,9
0,3,-1,-1,0
0,3,0,1,0
0,3,1,5,10
0,3,5,10,20
0,3,10,101,30

CSV形式をXML形式に相互変換するツールは、 ScoreBased XML Setting CSV Converter でCSV形式とXML形式を相互に変換できます。

12.2.3.4. スコア換算前の変換設定の取得

スコア換算前の変換設定を取得します。

GET /nex/matchmake/v2/score_mappings

リクエスト例:

GET /nex/matchmake/v2/score_mappings HTTP/1.1

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <score_mappings length="2">
      <score_mapping>
        <setting_index>0</setting_index>
        <type>1</type>
        <begin>-1</begin>
        <end>-1</end>
        <value>100</value>
      </score_mapping>
      <score_mapping>
        <setting_index>0</setting_index>
        <type>2</type>
        <begin>0</begin>
        <end>100</end>
        <value>100</value>
      </score_mapping>
    </score_mappings>
  </matchmake>
</nex>

12.2.3.5. スコアシミュレーター

二つのマッチメイクパラメーターから、現在のスコア設定、スコア換算前の変換設定に従って、スコアを算出するシミュレーターです。

PUT /nex/matchmake/v2/score_simulator
POST /nex/matchmake/v2/score_simulator/put

リクエストボディ

要素名 親要素 内容
score_simulator   ルート要素。 必須
setting_index score_simulator 設定インデックス。 必須
duration score_simulator マッチメイクセッションの経過時間[秒]。省略可能。デフォルト 0。
progress score_simulator マッチメイクセッションの進行度合い [0-100] 。省略可能。デフォルト 0。
use_geo_ip score_simulator GeoIPを使うか否か (1: 使う、 0: 使わない)。省略可能。デフォルト 0。
player_param score_simulator 子要素であるマッチメイクパラメーターのコンテナ。2つ必要。 必須
country_code player_param ISO 3166-1 alpha-2に準拠した 2 文字の国コード。省略可能。
nintendo_country_code player_param 任天堂独自の国コード *1 。省略可能。country_code が指定されてあればそちらが優先されます。
rating_value player_param レーティング値。省略可能。
disconnection_rate player_param 切断率。省略可能。
violation_rate player_param 違反率。省略可能。
ip_address player_param IPアドレス。省略可能。省略した場合は位置情報を引けなかったケースと同様に扱われます。

*1 CTR-SDK の include/nn/cfg/CTR/cfg_CountryCode.h を参照

リクエスト例:

PUT /nex/matchmake/v2/score_simulator HTTP/1.1

<score_simulator>
  <player_param>
    <country_code>JP</country_code>
    <rating_value>5</rating_value>
    <disconnection_rate>0</disconnection_rate>
    <violation_rate>0</violation_rate>
    <ip_address>203.180.164.24</ip_address>
  </player_param>
  <player_param>
    <country_code>US</country_code>
    <rating_value>5</rating_value>
    <disconnection_rate>0</disconnection_rate>
    <violation_rate>0</violation_rate>
    <ip_address>205.166.76.112</ip_address>
  </player_param>
  <setting_index>0</setting_index>
  <duration>0</duration>
  <progress>0</progress>
  <use_geo_ip>1</use_geo_ip>
</score_simulator>

レスポンスボディ:

要素名 親要素 内容
nex   ルート要素。
matchmake nex コンポーネント要素。
score_simulator matchmake メソッド要素
total_score score_simulator 合計スコア
distance score_simulator 二点間の距離[km] -1 の場合は、距離が取れなかった
is_match score_simulator マッチする最低スコアを超えているか (0: 超えていない、 1: 超えている)
type_scores score_simulator 子要素である type_score のコンテナ
type_score type_scores type 別スコア
type type_score type の値。 score_settings の type の値を参照
score type_score type ごとのスコア

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <score_simulator>
      <total_score>1000</total_score>
      <distance>11076</distance>
      <is_match>1</is_match>
      <type_scores length="3">
        <type_score>
          <type>2</type>
          <score>200</score>
        </type_score>
        <type_score>
          <type>3</type>
          <score>200</score>
        </type_score>
        <type_score>
          <type>5</type>
          <score>600</score>
        </type_score>
      </type_scores>
    </score_simulator>
  </matchmake>
</nex>

12.2.3.5.1. IPアドレス例

各都市の政府機関や大学のIPアドレスを例に挙げています。

都市名 IPアドレス例
東京 202.232.224.105
大阪 133.1.138.144
台北 140.112.8.116
シンガポール 137.132.21.27
シドニー 129.78.5.11
ニューヨーク 128.59.105.24
サンフランシスコ 130.212.10.204
バンクーバー 137.82.130.49
ロンドン 128.86.130.195
パリ 193.55.96.121
ベルリン 160.45.170.10
モスクワ 188.44.50.103

位置情報を引けないアドレス例として、 127.0.0.1 が挙げられます。

上記の IP アドレスで引ける緯度・経度は、 https://www.maxmind.com/ja/geoip-demo のサイトから確認できます。

12.2.3.6. プリンシパル ID ごとのデバッグ用 IP アドレスの追加・削除

GeoIPによる位置推定時に用いるデバッグ用 IP アドレスを、既存の設定に追加指定します。 IP アドレスを削除する場合は、空要素タグを指定します。 プリンシパル ID に該当する端末の実際の IP アドレスの代わりに用いられます。 もし、そのときに端末が MatchmakeParam::SetOverrideIpAddress() で IP アドレスを指定されていた場合はそちらが優先されます。 IP アドレスを削除する場合に、該当する IP アドレスが存在しなくともエラーになりません。

マッチメイクセッションのオーナーの位置情報はマッチメイクセッション作成時に保存されます。 そのため、デバッグ用 IP アドレスの設定前に該当のプリンシパル ID のユーザーがすでにマッチメイクセッションを作成していた場合、そのマッチメイクセッションの位置情報は更新されません。

本設定は、 開発環境でのみ有効です。

PUT /nex/matchmake/v2/override_ip_addresses
POST /nex/matchmake/v2/override_ip_addresses/put

リクエストボディ

要素名 親要素 内容
change   ルート要素。 必須
address_settings change 子要素である変更するデータのコンテナ。 必須
address_setting address_settings 変更するデータを指定する。複数指定可。 必須
pid address_setting プリンシパル ID 必須
ip_address address_setting デバッグ用 IP アドレス。空要素タグの場合は設定されているデバッグ用 IP アドレスが削除されます。 必須

リクエスト例:

PUT /nex/matchmake/v2/override_ip_addresses/ HTTP/1.1

<change>
  <address_settings>
    <address_setting>
      <pid>10000</pid>
      <ip_address>127.0.0.1</ip_address>
    </address_setting>
    <address_setting>
      <pid>10001</pid>
      <ip_address/>
    </address_setting>
  </address_settings>
</change>

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <override_ip_addresses>
      <changed length="2"/>
    </override_ip_addresses>
  </matchmake>
</nex>

length は、追加・削除したデバッグ用 IP アドレスの数。

12.2.3.7. プリンシパル ID ごとのデバッグ用 IP アドレスの一括設定

GeoIPによる位置推定時に用いるデバッグ用 IP アドレスを、一旦クリアした後に一括設定します。 プリンシパル ID に該当する端末の実際の IP アドレスの代わりに用いられます。 もし、そのときに端末が MatchmakeParam::SetOverrideIpAddress() で IP アドレスを指定されていた場合はそちらが優先されます。

マッチメイクセッションのオーナーの位置情報はマッチメイクセッション作成時に保存されます。 そのため、デバッグ用 IP アドレスの設定前に該当のプリンシパル ID のユーザーがすでにマッチメイクセッションを作成していた場合、そのマッチメイクセッションの位置情報は更新されません。

本設定は、 開発環境でのみ有効です。

PUT /nex/matchmake/v2/override_ip_addresses/all
POST /nex/matchmake/v2/override_ip_addresses/all/put

リクエストボディ

要素名 親要素 内容
change   ルート要素。 必須
address_settings change 子要素である変更するデータのコンテナ。 必須
address_setting address_settings 変更するデータを指定する。複数指定可
pid address_setting プリンシパル ID 必須
ip_address address_setting デバッグ用 IP アドレス。空要素タグの場合は無視。必須

リクエスト例:

PUT /nex/matchmake/v2/override_ip_addresses/all HTTP/1.1

<change>
  <address_settings>
    <address_setting>
      <pid>10000</pid>
      <ip_address>127.0.0.1</ip_address>
    </address_setting>
  </address_settings>
</change>

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <override_ip_addresses>
      <changed length="1"/>
    </override_ip_addresses>
  </matchmake>
</nex>

length は、設定したデバッグ用 IP アドレスの数。

12.2.3.8. プリンシパル ID ごとのデバッグ用 IP アドレスの取得

GeoIPによる位置推定時に用いるデバッグ用 IP アドレスを取得します。

GET /nex/matchmake/v2/override_ip_addresses/(pid)

GeoIPによる位置推定時に用いるデバッグ用 IP アドレスをプリンシパル ID 指定で取得します。

パラメーター:

名前 内容
pid プリンシパル ID 。 必須

リクエスト例:

プリンシパル ID 10000 のデバッグ用 IP アドレスを取得する。

GET /nex/matchmake/v2/override_ip_addresses/10000 HTTP/1.1

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <override_ip_addresses>
      <address_settings length="1">
        <address_setting>
          <pid>10000</pid>
          <ip_address>127.0.0.1</ip_address>
        </address_setting>
      </address_settings>
    </override_ip_addresses>
  </matchmake>
</nex>

pid 順でソートされて返されます。 デバッグ用の IP アドレスが設定されていない場合、 ip_address は空要素タグになります。

GET /nex/matchmake/v2/override_ip_addresses/all
GET /nex/matchmake/v2/override_ip_addresses

GeoIPによる位置推定時に用いるデバッグ用 IP アドレスをすべて取得します。

パラメーター:

なし

リクエスト例:

GET /nex/matchmake/v2/override_ip_addresses/all HTTP/1.1

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <override_ip_addresses>
      <address_settings length="2">
        <address_setting>
          <ip_address>127.0.0.1</ip_address>
          <pid>10000</pid>
        </address_setting>
        <address_setting>
          <ip_address>127.0.0.2</ip_address>
          <pid>10001</pid>
        </address_setting>
      </address_settings>
    </override_ip_addresses>
  </matchmake>
</nex>

12.2.3.9. プリンシパル ID ごとのデバッグ用 IP アドレスの削除

DELETE /nex/matchmake/v2/override_ip_addresses/all
POST /nex/matchmake/v2/override_ip_addresses/all/delete

GeoIPによる位置推定時に用いるデバッグ用 IP アドレスをすべて削除します。

POST メソッドを利用する場合には、HTTP のヘッダに Content-Length: 0 の指定が必要です。

パラメーター:

なし

リクエスト例:

DELETE /nex/matchmake/v2/override_ip_addresses/all HTTP/1.1

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <override_ip_addresses>
      <deleted length="1"/>
    </override_ip_addresses>
  </matchmake>
</nex>

length は、削除したデバッグ用 IP アドレスの数。

12.2.4. マッチメイクレフェリー関連

12.2.4.1. マッチメイクレフェリー設定の取得

マッチメイクレフェリー設定を取得します。

GET /nex/matchmake/v2/referee_setting/(name)

1つのマッチメイクレフェリー設定を取得します。

パラメーター:

名前 内容
name 取得するマッチメイクレフェリー設定。下記表参照。 必須

name

内容
history_length 最近の履歴を何件まで残すか。有効範囲は1~100。デフォルト値は100。

リクエスト例:

GET /nex/matchmake/v2/referee_setting/history_length HTTP/1.1

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <referee_settings length="1">
      <referee_setting>
        <name>history_length</name>
        <value>100</value>
      </referee_setting>
    </referee_settings>
  </matchmake>
</nex>

12.2.4.2. 全マッチメイクレフェリー設定の取得

すべてのマッチメイクレフェリー設定を取得します。

GET /nex/matchmake/v2/referee_settings

リクエスト例:

GET /nex/matchmake/v2/referee_settings HTTP/1.1

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <referee_settings length="1">
      <referee_setting>
        <name>history_length</name>
        <value>100</value>
      </referee_setting>
    </referee_settings>
  </matchmake>
</nex>

12.2.4.3. マッチメイクレフェリー設定の変更

マッチメイクレフェリー設定の変更をします。

PUT /nex/matchmake/v2/referee_setting
POST /nex/matchmake/v2/referee_setting/put

リクエストボディ

要素名 親要素 内容
change   ルート要素。 必須
param change 変更するデータを指定する。複数指定可。 必須
name param マッチメイクレフェリー設定。下記表参照。 必須
value param 値。 必須

name

内容
history_length 最近の履歴を何件まで残すか。有効範囲は1~100。デフォルト値は100。

リクエスト例:

PUT /nex/matchmake/v2/referee_setting/ HTTP/1.1

<change>
  <param>
    <name>history_length</name>
    <value>30</value>
  </param>
</change>

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <referee_settings>
      <changed length="1"/>
    </referee_settings>
  </matchmake>
</nex>

length は変更したマッチメイクレフェリー設定の数。

12.2.4.4. 個人統計の取得

個人統計を取得します。

GET /nex/matchmake/v2/referee_stats/(principal_id)

指定したプリンシパル ID に紐づく個人統計を取得します

パラメーター:

名前 内容
principal_id プリンシパル ID 必須

リクエスト例:

GET /nex/matchmake/v2/referee_stats/100 HTTP/1.1

レスポンスボディ:

要素名 親要素 内容
referee_stats   ルート要素。
principal_id referee_stats プリンシパル ID。
unique_id referee_stats NEX ユニーク ID。
stats referee_stats カテゴリ別の統計データの要素。
category stats カテゴリ。
rating_value stats レーティング値。
recent_disconnect stats 直近 100 ラウンド分の切断数。
recent_draw stats 直近 100 ラウンド分の引き分け数。
recent_loss stats 直近 100 ラウンド分の負け数。
recent_mismatch stats 直近 100 ラウンド分のレポート不一致数。
recent_violation stats 直近 100 ラウンド分の違反数。
recent_win stats 直近 100 ラウンド分の勝ち数。
total_disconnect stats 切断数の合計。
total_draw stats 引き分け数の合計。
total_loss stats 負け数の合計。
total_mismatch stats レポート不一致数の合計。
total_violation stats 違反数の合計。
total_win stats 勝ち数の合計。

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <referee_stats length="2">
      <principal_id>100</principal_id>
      <unique_id>123456789</unique_id>
      <stats>
        <category>0</category>
        <rating_value>1500</rating_value>
        <recent_disconnect>1</recent_disconnect>
        <recent_draw>2</recent_draw>
        <recent_loss>3</recent_loss>
        <recent_mismatch>4</recent_mismatch>
        <recent_violation>5</recent_violation>
        <recent_win>6</recent_win>
        <total_disconnect>1</total_disconnect>
        <total_draw>2</total_draw>
        <total_loss>3</total_loss>
        <total_mismatch>4</total_mismatch>
        <total_violation>5</total_violation>
        <total_win>6</total_win>
      </stats>
      <stats>
        <category>1</category>
        <rating_value>500</rating_value>
        <recent_disconnect>6</recent_disconnect>
        <recent_draw>5</recent_draw>
        <recent_loss>4</recent_loss>
        <recent_mismatch>3</recent_mismatch>
        <recent_violation>2</recent_violation>
        <recent_win>1</recent_win>
        <total_disconnect>6</total_disconnect>
        <total_draw>5</total_draw>
        <total_loss>4</total_loss>
        <total_mismatch>3</total_mismatch>
        <total_violation>2</total_violation>
        <total_win>1</total_win>
      </stats>
    </referee_stats>
  </matchmake>
</nex>

12.2.4.5. 個人統計のリセット

個人統計をリセットします。

DELETE /nex/matchmake/v2/referee_stats/(principal_id)
POST /nex/matchmake/v2/referee_stats/(principal_id)/delete

指定したプリンシパル ID に紐づく個人統計をリセットします

パラメーター:

名前 内容
principal_id プリンシパル ID 必須

リクエスト例:

DELETE /nex/matchmake/v2/referee_stats/100 HTTP/1.1

レスポンス例:

HTTP/1.1 200 OK
Content-Type:  text/xml;charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>
<nex>
  <matchmake>
    <referee_stats>
      <reset length="1"/>
    </referee_stats>
  </matchmake>
</nex>

length はリセットした個人統計の数。