スーパーマリオメーカー2 資料保管庫
みんなでバトル:マッチングシステム
最終更新:
smm2l_documents
-
view
概要
みんなでバトルのマッチングシステムについて、気になったことはありますか?
マッチングしている裏にはどのような仕様があるのか、どのようにして対戦相手が決められているのか。この資料を読めばこれらの疑問が解決します!
さらに、マッチングシステムを理解すれば切断バグを容易に回避することができます!
是非最後まで読んでいってください!
マッチングしている裏にはどのような仕様があるのか、どのようにして対戦相手が決められているのか。この資料を読めばこれらの疑問が解決します!
さらに、マッチングシステムを理解すれば切断バグを容易に回避することができます!
是非最後まで読んでいってください!
※この資料は匿名ユーザーによる情報提供を元に、掲載許可を得て資料を作成しています。管理人の解釈も入っているので、あくまでも推測であることはご了承ください。
フレ戦の場合から考える
最も簡単に可視化されている「フレ戦」を用いて考えましょう。
フレ戦をして分かることと言えば
フレ戦をして分かることと言えば
- 部屋に入った順番がそのまま優先順位になる
- つまり、部屋を作った人=優先順位1位になる。
- 部屋を作った人が切断すると、部屋に入っている人も即終了する。一方、部屋に入っている人が切断しても試合は続く。
- フレ戦の場合は「部屋を作った人依存」で進んでいる。
などが分かる。
「ホスト」と「ゲスト」
次は「ホスト」と「ゲスト」について。
この仕組みがフリーズバグに直結するため、非常に重要な要素になっています!
まずは言葉の定義から。
この仕組みがフリーズバグに直結するため、非常に重要な要素になっています!
まずは言葉の定義から。
- 「ホスト」=優先順位が1位。フレ戦で部屋を作った人
- 「ゲスト」=優先順位が2〜4位。フレ戦で部屋に入った人
一見、ホストが有利だと考える人が多いと思います。確かにフレ戦だと優先順位が高いホストが有利なのですが、
レート戦の場合、ホストが圧倒的に不利です。(理由は後述)
レート戦の場合、ホストが圧倒的に不利です。(理由は後述)
みんなでバトルは「部屋制」?
※ここはあくまでも推測なので、鵜呑みにせずに考察としてご覧ください。
そもそも「部屋制」って何?と思う人が多いと思います。
これをイメージするのは困難ですが、登場人物を少なくして表にすることでイメージしやすくします。
これをイメージするのは困難ですが、登場人物を少なくして表にすることでイメージしやすくします。
例1:
登場人物:「1〜4」(それ以外のプレイヤーはいないとする)
前提条件として、全員レートは全く同じ(例:4000)とする。
登場人物:「1〜4」(それ以外のプレイヤーはいないとする)
前提条件として、全員レートは全く同じ(例:4000)とする。
ホスト | ゲスト1 | ゲスト2 | ゲスト3 | |
部屋A |
1〜4がマッチング体制になったのが1秒ごとの差だった場合
人 | マッチング体制になった時間 |
1 | 12:00:00 |
2 | 12:00:01 |
3 | 12:00:02 |
4 | 12:00:03 |
この時、「1」が部屋Aを立てて、2〜4が順番に入ってくると考えられる。
当然優先順位は1→2→3→4になり、「ホスト」が1、「ゲスト」が2〜4になると考えられる。
当然優先順位は1→2→3→4になり、「ホスト」が1、「ゲスト」が2〜4になると考えられる。
ホスト | ゲスト1 | ゲスト2 | ゲスト3 | |
部屋A | 1 | 2 | 3 | 4 |
この仕組みは、人が少ない時間帯(平日の朝や深夜)orC〜Dのランクで確認しやすい。
例2
登場人物:「1〜8」(それ以外のプレイヤーはいないとする)
前提条件として、全員レートは全く同じ(例:4000)とする。
登場人物:「1〜8」(それ以外のプレイヤーはいないとする)
前提条件として、全員レートは全く同じ(例:4000)とする。
ホスト | ゲスト1 | ゲスト2 | ゲスト3 | |
部屋A | 1 | 3 | 5 | |
部屋B | 2 | 4 | 6 |
部屋AもBも残り1枠空いている場合
この時、7が先にマッチング体制になり、1秒後に8がマッチング体制になったとする。
もし7が「A」に入った場合、部屋Aは満室になる。1秒後にマッチング体制になった8は残った「B」に入る可能性が高いと考えられる。
もし7が「A」に入った場合、部屋Aは満室になる。1秒後にマッチング体制になった8は残った「B」に入る可能性が高いと考えられる。
ホスト | ゲスト1 | ゲスト2 | ゲスト3 | |
部屋A | 1 | 3 | 5 | 7 |
部屋B | 2 | 4 | 6 | 8 |
この例は小人数だが、実際にはもっと多く人がいるのでこの仕組みが複雑に絡まって発生していると考えられる。
マッチング体制とは?
- 「みんなでバトル」を押した瞬間
- 切断した場合、「OK」を押した瞬間
- 「つづけてあそぶ」を押して画面が真っ暗の状態からマッチングの待機画面が表示された瞬間
これら3つの内、どれかに該当する。
マッチング体制になった順番に優先順位が決定していく。
マッチング体制になった順番に優先順位が決定していく。
優先順位(ホストorゲスト)の決まり方は?
先程の2つの例で少しだけ出てきたマッチング体制になった順番である可能性が高い。
ここで大事なのは、「みんなでバトルを押すこと」と「つづけてあそぶ」を同時に押す場合、1秒程度の差が生まれるということ。
みんなでクリアにも言えることだが、スナイプを狙っている人はこの微妙な差に注意しよう。
みんなでクリアにも言えることだが、スナイプを狙っている人はこの微妙な差に注意しよう。
なお、ボタンを押した直後のマッチングの待機画面(戻ることができない)時間も既にマッチングがほぼ完了している可能性が高い。
たまにマッチングをキャンセルする時に10〜30秒かかることがあるが、それは既に誰かとマッチングしていたが、キャンセルボタンが押されたのでその処理をしている可能性が考えられる。
たまにマッチングをキャンセルする時に10〜30秒かかることがあるが、それは既に誰かとマッチングしていたが、キャンセルボタンが押されたのでその処理をしている可能性が考えられる。
もし2人が同時に押した場合(他の人が誰もいない場合を仮定)
- 1がメニュー画面から「みんなでバトル」を押した
- 2が試合終了後から「つづけてあそぶ」を押した
マッチング体制に入るのは「1」の方が1秒程度速くなる。
優先順位は「1→2」になり、「1」がホストになる。
優先順位は「1→2」になり、「1」がホストになる。
これらを見ると「自分がホストであること」が理解できないように見えるが、実はある程度把握できる。
状況によっては自分が100%ホストと判断することができるが、100%ゲストと判断する方が簡単。
状況によっては自分が100%ホストと判断することができるが、100%ゲストと判断する方が簡単。
★切断バグの発生条件★
切断バグ、すなわち「フリーズ」が発生する原因は単純。
「自分がホストの時+通信エラーが生じた時に高確率で発生」
「自分がホストの時+通信エラーが生じた時に高確率で発生」
詳細は不明だが、2024/11/6から2025/1/15に発生していたサービス停止事件が影響している可能性が高い。
ユーザー間で2024年11月から謎のフリーズと切断判定に対する投稿が頻繁に見受けられるようになったので、何かしらの因果関係はあると推測できる。
ユーザー間で2024年11月から謎のフリーズと切断判定に対する投稿が頻繁に見受けられるようになったので、何かしらの因果関係はあると推測できる。
※通信エラーが生じた時にゲストだった場合、フリーズせずに「通信に失敗しました」or「コースデータがこわれています」と表記される。この時は100%セーフ(切断判定にならない)ので安心しよう。
※時間帯によって通信エラーが発生しやすい時間帯が存在している可能性がある。深夜0時〜朝10時は特に通信エラーの報告が多い印象を受ける。逆に昼3時〜夜11時辺りは低頻度ではあるがフリーズが少なくなるという意見が多い印象。
コラム1:ブロックはどうなるの?
ブロックをしているorされている場合、その部屋に入ることが出来なくなる。つまり、部屋に入れない=マッチングしないという仕組み。
また、既に部屋に入っている人の内、1人でもブロックしているorされている場合、その部屋には入れない。
また、既に部屋に入っている人の内、1人でもブロックしているorされている場合、その部屋には入れない。
登場人物:「1〜4」(それ以外のプレイヤーはいないとする)
前提条件として、全員レートは全く同じ(例:4000)とする。
「2は3をブロック、3は2をブロック、4は2をブロック」していると仮定する。(1はブロックしていないしされていない)
前提条件として、全員レートは全く同じ(例:4000)とする。
「2は3をブロック、3は2をブロック、4は2をブロック」していると仮定する。(1はブロックしていないしされていない)
例1:
この時「1→2→3→4」の順にマッチング体制が整うとどうなるのか?重要なのは既に部屋に入っている人(ゲスト含む)のブロック状況が影響していること。
この時「1→2→3→4」の順にマッチング体制が整うとどうなるのか?重要なのは既に部屋に入っている人(ゲスト含む)のブロック状況が影響していること。
- ①……「1」がホストとして部屋を作成。
- ②……「2」は部屋に入ることができる(1と2の間にブロック関係がないから)
- ③……「3」は部屋に入ることができない(既に部屋に入っている2をブロックしているから)
- ④……「4」は部屋に入ることができない(既に部屋に入っている2をブロックしているから)
結論:部屋に入ることができるのは「1と2」のみ。2人対戦になり、1がホスト、2がゲストになる。
例2:
この時「1→3→2→4」の順にマッチング体制が整うとどうなるのか?重要なのは既に部屋に入っている人(ゲスト含む)のブロック状況が影響していること。
この時「1→3→2→4」の順にマッチング体制が整うとどうなるのか?重要なのは既に部屋に入っている人(ゲスト含む)のブロック状況が影響していること。
- ①……「1」がホストとして部屋を作成。
- ②……「3」は部屋に入ることができる(1と3の間にブロック関係がないから)
- ③……「2」は部屋に入ることができない(3にブロックされているから)
- ④……「4」は部屋に入ることができる(1と3と4の間にブロック関係がないから)
結論:部屋に入ることができるのは「1と3と4」になる。3人対戦になり、1がホスト、3と4がゲストになる
コラム2:スナイプの成功率を上げるためには?
結論から言うと狙っている人と自分がマッチング体制になる時間の差を小さくすればするほど当たる可能性が高くなる。と言える。しかし、必ずしもスナイプが当たる訳ではなく、あくまでも可能性を上げるだけ。
差が1秒よりも0.1秒の方が当たりやすいのは自然に見える。
また、その配信者をスナイプしている人のブロックはしない方が当たりやすい?
差が1秒よりも0.1秒の方が当たりやすいのは自然に見える。
また、その配信者をスナイプしている人のブロックはしない方が当たりやすい?
必ずスナイプが当たる訳ではないというのは、以下の例が考えられるから。
登場人物:「1〜8」(それ以外のプレイヤーはいないとする)
前提条件として、全員レートは全く同じ(例:4000)とする。
7が配信者、8が自分と仮定する。
登場人物:「1〜8」(それ以外のプレイヤーはいないとする)
前提条件として、全員レートは全く同じ(例:4000)とする。
7が配信者、8が自分と仮定する。
ホスト | ゲスト1 | ゲスト2 | ゲスト3 | |
部屋A | 1 | 3 | 5 | |
部屋B | 2 | 4 | 6 |
この時、どれだけ同時にマッチング体制になっても部屋が分かれてしまう=スナイプが失敗することは明白。
ツイキャスなど配信者との遅延が短い(1秒程度)の場合、配信者よりも遅くマッチング体制になったのに、スナイプが成功してしまったケースがある。
これは「配信者が部屋を作ったホストになって、その部屋に2〜4番目に入ってしまった」パターンと説明できる。
(配信者が優先順位2〜3番目、自分が優先順位3〜4番目の両方ゲストになるケースもある)
これは「配信者が部屋を作ったホストになって、その部屋に2〜4番目に入ってしまった」パターンと説明できる。
(配信者が優先順位2〜3番目、自分が優先順位3〜4番目の両方ゲストになるケースもある)
コラム3:レート差によるマッチング
分かりやすいように「D帯の2人対戦」を想定する。
レート0と999はマッチングするが、レート0と1000はマッチングしない。
そのため、レート0の人は「0〜999」までの対戦相手とマッチングする可能性があると言える。
レート0と999はマッチングするが、レート0と1000はマッチングしない。
そのため、レート0の人は「0〜999」までの対戦相手とマッチングする可能性があると言える。
しかし、とある人からレート0と1100の人がマッチングしたという写真が送られてきた。
この部屋の4人のレートは「0・766・1100・166」であったため、C帯とマッチングしたとしても部屋平均のレートは1000未満なのでマッチングしたと推測できる?
この部屋の4人のレートは「0・766・1100・166」であったため、C帯とマッチングしたとしても部屋平均のレートは1000未満なのでマッチングしたと推測できる?
この事例は7000以上の人がAランクの人とマッチングするパターンに応用できる。
7000勢の人は気付いた人もいるかもしれないが、Aランクと当たった時の他の対戦相手は「ほとんどSランクか白S+なりたて」の場合が多いと思われます。
これは「7000とAは普通マッチングしないが、部屋平均のレートが低いのでAが部屋に入る条件を満たしている」という考察ができる。
7000勢の人は気付いた人もいるかもしれないが、Aランクと当たった時の他の対戦相手は「ほとんどSランクか白S+なりたて」の場合が多いと思われます。
これは「7000とAは普通マッチングしないが、部屋平均のレートが低いのでAが部屋に入る条件を満たしている」という考察ができる。
ここからスナイプの話に移行していくとなると、赤帯(6000以上)の人をスナイプする時に、自分がAランクだとマッチングしにくいことが分かる。
D帯とC帯の事例を考えれば、赤帯や7000勢の配信者をスナイプする時に自分がS帯であるよりも、S+である方がマッチングしやすくなると考えることもできる。
強い人をスナイプしたい人は白S+(5000以上)までレートを上げることで成功率が上昇すると考えられる。
D帯とC帯の事例を考えれば、赤帯や7000勢の配信者をスナイプする時に自分がS帯であるよりも、S+である方がマッチングしやすくなると考えることもできる。
強い人をスナイプしたい人は白S+(5000以上)までレートを上げることで成功率が上昇すると考えられる。
コラム4:ホスト(切断バグ)を絶対に回避する方法
みんなでバトル:切断バグの回避方法に記載しています。
要約すると
要約すると
- フリーズの発生タイミングは同じなので覚える
- ホストを絶対に避ける方法を用いる(低効率)