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_ |
-1 | -1 | 50 | *1 |
0 | 5(SCORE_ |
-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_ |
0 | 1 | 0 | |
0 | 6 | 1 | 2 | 10 | |
0 | 7(SCORE_ |
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_ |
-1 | -1 | 150 |
0 | 5(SCORE_ |
-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_ |
0 | 1 | 0 |
0 | 6 | 1 | 2 | 10 |
0 | 7(SCORE_ |
0 | 1 | 50 |
0 | 7 | 1 | 2 | 60 |
0 | 2(SCORE_ |
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_ |
-1 | -1 | 250 |
0 | 5(SCORE_ |
-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_ |
0 | 1 | 0 |
0 | 6 | 1 | 2 | 10 |
0 | 7(SCORE_ |
0 | 1 | 50 |
0 | 7 | 1 | 2 | 60 |
0 | 2(SCORE_ |
0 | 1 | 120 |
0 | 2 | 1 | 2 | 110 |
0 | 2 | 2 | 3 | 100 |
0 | 2 | 3 | 10 | 0 |
0 | 3(SCORE_ |
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_ |
-1 | -1 | 250 |
0 | 5(SCORE_ |
-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_ |
0 | 1 | 0 |
0 | 6 | 1 | 2 | 10 |
0 | 7(SCORE_ |
0 | 1 | 50 |
0 | 7 | 1 | 2 | 60 |
0 | 2(SCORE_ |
0 | 1 | 120 |
0 | 2 | 1 | 2 | 110 |
0 | 2 | 2 | 3 | 100 |
0 | 2 | 3 | 10 | 0 |
0 | 3(SCORE_ |
0 | 10 | 110 |
0 | 3 | 10 | 20 | 100 |
0 | 3 | 20 | 101 | 0 |
0 | 8(SCORE_ |
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_ |
-1 | -1 | 5 |
0 | 102(CANDIDATE_ |
-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_ |
-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_ |
-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 はリセットした個人統計の数。