>100 Views
September 23, 26
スライド概要
スマブラSPのチートを 撲滅した話 1ユーザーによる,ゲームの歴史を変える挑戦 Speaker: Atamol
自己紹介? HN: Atamol 職業: 大学生,フリーランスエンジニア 趣味: 対人ゲーム (FPS,格ゲー) 音楽 (Hip Hop,ハードロック,ジャズ) 開発 (ソフトウェア,リバース) Twitter: @Atamol_rc
スマブラとは 「大乱闘スマッシュブラザーズ」 → 「スマブラ」 ディレクターはシリーズを一貫して 桜井政博 氏 任天堂およびサードパーティーのゲームから様々なキャラクターが登場するクロスオーバー作品
格ゲーのアンチテーゼに近い作品 従来の格ゲーのように体力を奪い合うのではなく, ステージから相手を吹っ飛ばし,画面外に出た者が敗れ,最後まで残っていた者が勝者となる.
任天堂と共に歩んできた,27年の歴史 (2026年時点)
ところで,任天堂と言えば 次のようなことでも有名
任天堂のハードウェアは脆弱性が多く,改造が容易である オフラインゲーム: New スーパーマリオブラザーズ (Wii): オリジナルコース制作ツール (毎作品ある伝統芸) オンラインゲーム: マリオカート7 (3DS): アイテム生成,レース強制終了 スプラトゥーン (Wii U): インク (弾薬) 無限,スペシャル連発,ステージ全面塗り替え まぁ,任天堂に限った話ではないのだが…
かつてスマブラシリーズに存在したチート スマブラX(2008年,Wii): この頃からオンラインが実装されたが, アンチチートと呼べるものが無いに等しいため,チーターが一定数いた スマブラfor(2014年,Wii U): オンラインゲーム史上でも悪名高い,「フリーズチート (通称: フリチ)」が流行 マッチングすると,本体がフリーズする 対策方法なし,アプデなし,再起動を余儀なくされる
やがて スマブラSP でも,現れた 通称「エスケーエラー」または「アヴァるエラー」. マッチング直後,試合が始まらず通信エラーで落とされる.
何が問題なのか 1. 対戦が始まらない 2. とにかく数が多い 3. ユーザー名に問題がある
➀ 対戦が始まらない マッチング直後,通信エラーが発生し,試合が始まらない 単純にウザい 1マッチングにつき,およそ12秒くらい待たされる UIの設計が悪いため,いくつか前の画面まで戻されてしまい,鬱陶しい しっかりテストプレイしてほしいなぁ,…特にバランス調整とか
バランス調整とか…
➁ 数が多い 文字通り,数が多すぎて何度も遭遇する. すべてのアカウントをブロックすると,簡単にブロックの上限に到達してしまう ちなみに,上限は100 …そんなに多いの?
はい
はい
➂ ユーザー名に問題がある 勝手にスマブラの競技シーンにおける上位プレイヤーの名前を使用 それが由来で,「エスケーエラー」や「アヴァるエラー」と呼ばれる チートやサブアカの存在を仄めかすような名前,直接的な暴言が多く含む 特定のゲームや映画のネタバレを含む …など
歴史は繰り返す
歴代のスマブラはずっと,チートに屈して終わってきた. 今回こそ,1プレイヤーとして,どうにかしたい.
独自の Mod を開発した ゲーム側で何が起こっているか分からないため, すべての通信を監視する専用の Mod を開発した. Rustでコンパイルされるスクリプト スマブラ本体に割り込み,通信を記録し,TCPでログを流す 暗号化された通信も,ゲームが復号した直後に読む 例えば,これは試合のステータスを見れるようにしたもの:
(実際にModが機能する様子の動画)
➂ ユーザー名に問題がある 特定のゲームや映画のネタバレを含む
☠😩😡💢🥹💀🥶🤔☠😩😡💢🥹💀🥶 他には,「コナン」の映画のネタバレなど….
ともあれ,中身は見えた 何が起こっているかは解析ができた 接続そのものは成立しているにも関わらず,特定の瞬間で切れる ➁ 数が多い 明らかに通常では考えられない数であり,Botによる巡回か,超暇人集団かのどちらか アカウントのIPやSwitch本体のIDを割ってみたところ,実機の数自体は少なかった スマブラXで流行した,リンチコミュニティなどが関係している可能性がある 1v1であるにも関わらず乱闘のように2~3人を巻き込み,全員を切断させるパターンもある → 「数が多い」と感じる大きな一因
任天堂はこの事態を把握していないのか 任天堂のサーバー (NEX) には正常なレスポンスが送られており,おそらく検知が不可能である 実際,問い合わせの返答によれば,状況の再現ができていないとのことであった → しかし,とりあえず Mod では回避できるようになった!
…と安堵する間もなく,新たなチート これまでは切断だけだったが, ついにこちらのソフトをクラッシュさせるタイプが出てきた. さらに,それだけではなく…
切断扱いになり,ペナルティを受ける 最上位スティーブ,カズヤ使い らき さんの配信: (無実の罪に問われても,諦観の笑みを見せる様子)
原理を完ぺきに特定した 使われているツールを特定したため,原理を完全に特定・解明できた 改良したアンチチート Mod を作成し,一部に配布してみた → 導入にはSwitchの改造が必要
しかし
日本,特に任天堂の界隈で Mod を配布することは非常に厳しい 日本は Mod にかなり厳しい国である 便利系の Mod を入れたプロが配信中にそれを指摘されたことがきっかけで大炎上となり, 1ヵ月の活動休止を余儀なくされたことがある 一般人でも袋叩きに遭う → 改造を途轍もなく嫌う人が多い中, Mod によりチーターを成敗するとなると,どんな反応をするだろうか… 社会実験としておもしろいと考えた
Twitterで発信してみたところ… (観測した限り) 100%がポジティブな意見 意外と良い反響があり,ネガティブな意見は,思いの外,1つもなかった たくさん応援してもらえた それくらい,みんな困ってたということ…
本当にそれで良いのか🤔 実際のところ,Mod を配布することで一部ユーザーが免疫を付けるのも良いが, それでは界隈全体の勝利とは言い難い気がした.
そこで
Mod の配布を中止し,任天堂にデータを送ることにした やはり,正式な対処が可能となってこそ勝利であると考え直した 原因・再現条件・対策のすべてをまとめ,直ぐに修正として使える形で報告 バウンティ(報奨金制度)も考えたが,リスクを考慮し,捨てアカウントからメールで送信した → 任天堂は,意外にも取り合ってくれた
約1ヵ月後,アップデートが実施された 約3ヵ月の格闘と,その後の任天堂の対応を経て,一時的にチートは消えた.
反響 7,200+ ❤ / 1,100+ 🔁 X の自動生成記事に名前が載った 「英雄」と称える声が多く届いた 1プレイヤーがチートに立ち向かい,公式修正まで至った,歴史的な出来事に
これまで負け続けてきた過去を,ユーザーの手で変えて見せた 見えない敵と戦い続けた,3か月間でした
一部の Mod 開発者, および有志の協力者にこの場を借りてお礼申し上げます
世界において偉大なことは, 情熱なしに成し遂げられた例がない ヘーゲル『歴史哲学講義』 ご清聴ありがとうございました