ドッカンテーブルとはなんだったのかを今更振り返ってみた。
今のアカツキホルダーやドッカンバトルを遊んでいる人はドッカンテーブル事件を知らない人も結構出てきているのではないかと思います。
しかし、ゲームにおける最大のリスクガシャ問題が大きな火種となった話であり、ドッカンバトルで起こった「ドッカンテーブル」事件について振り返ることでアカツキのホルダーとしての戒めも込めて解説を行なっていきます。
当時ゲームをプレイしていたのでその辺も踏まえながら解説していきます。
ドッカンテーブルとは?
「ドラゴンボールZ ドッカンバトル」でガシャの確率操作が端末ないしテーブルによって管理されているのではないか?という疑念により起きたドッカンバトルユーザーの中で生まれた造語です。
今もそうですが、ガシャゲームはアカウントごとにキャラがよく出るとか出ないとか確率操作の疑いが常にありますが、その疑念が表面化したのが「ドッカンテーブル」事件でもあります。
事の発端と経緯
2017年11月14日に「絆の合体!女超戦士ガシャ」という超サイヤ人2ケフラなど第6宇宙の女戦士を目玉としたガシャが実装されました。
この時ガシャの確率に操作があるのではないか、とあるツイートがありました。
ガシャ出現提供割合に表示されるキャラクター名が端末ごとに異なるというものです。
下の画像にある出現キャラ提供割合の欄を開くとピックアップキャラ名とその他のキャラクターの名前が表示されます。このうちのピックアップキャラ名の表示が端末ごとに異なりました。
例えば、端末Aでは、ケフラ、ケール、カリフラが表示されているのに対して、端末Bにはケール、カリフラしか表示されていない、端末Cにはカリフラのみしかない、というものです。
当時私もプレイしていましたが、ガシャ開始から数時間で急にガシャができなくなったので、またガシャでやらかしたなと思いましたが、ここまでの騒ぎになるとは当時考えていませんでした。
結構ガシャ関連のバグやらかしてたんですよね。。。フュージョンガシャバグとか。
問題発覚から少し置いてガシャの停止措置とお知らせ内に出現キャラ提供割合が正しく表示されない場合があったため緊急対応としてガシャの提供を停止をした旨記載されており、緊急メンテが14日真夜中に行われました。
ガシャは翌日15日には再開されましたが、ガシャ出現提供割合はボタンを押してもエラーのみが表示され、お知らせに出現提供割合のキャラクターの一覧が表示されていました。
ツイッターは大炎上、ヤフーニュースやその他のネットメディアでも大きく取り上げられることとなりました。
もちろんドッカンバトル運営先のアカツキの株価にも直撃。問題を受けて11/15はストップ安。
翌日の16日にバンダイナムコホールディングスおよびアカツキから「モバイルゲームの「出現キャラ一覧」および「出現キャラ提供割合」表示不具合に関するお知らせ」というIR情報が出る事態にまで発展します。
1ゲームの表示バグからIR情報が飛び出すというのは極めて異例なことなので、問題の深刻さの裏返しでもあります。
そして騒動のお詫びということでガシャに使用するアイテム龍石300個(およそ1万5000円相当)を全員に配布、ガシャ開始から停止までに同ガシャに使用した龍石の返却が行われました。
詫びソースコード
バンダイナムコから今回の問題となったソースコード(通称:詫びソースコード)がIRに公表されたことで話題となりました。
実際のソースコードがこれです。
①の処理ですでにメモリに存在するキャラクターデータを読み込む。
②の処理で①の処理で存在しなかったキャラクターデータをストレージから呼び出すという処理だそうです。(不具合箇所)
ストレージ上に配置されているデータはIDを昇順ではなくバラバラに保存されてたまま取得していたので②の処理でその判断がつかずに表示がおかしくなったもの、というのがバンダイナムコの言い分です。
簡単に例示します。
メモリとかストレージとか難しい単語を少し述べていきますが、メモリは簡単に言うと記録してあるメモみたいなものです。
アプリを再起動するとそのメモは消えてしまいますが、その分情報量も少なく、読み込みが早いのが特徴です。
ストレージは、全ての情報が入っている図書館のようなもので、たくさんのデータが入っている分読み込みが遅いという特徴があります。
本件の説明をするために
ネコ、イヌ、クマ、パンダ
というデータを表示したいと仮定します。
①の処理でメモリにはいっていたのが、下記の通りです。(名前の頭についている数字はネコやイヌを特定するためのIDです。)
1.ネコ
2.イヌ
3.(空白)
4.パンダ
でした。
その後に、②の処理でストレージの中にあるデータをSELECT ✳︎ FROM〜の処理の中で
4.パンダ
2.イヌ
1.ネコ
3.クマ
と情報を取得してきました。
①でデータ取得したものと組み合わせる処理が恐らくcardDatacatchのfor処理部分だと思われますが、
1.ネコ
2.イヌ
1.ネコ
4.パンダ
という状態になりました。本来クマが入る場所に上述の通りネコが来たのでこのようなセットのされることとなりました。
結果、画面上に表示するのは、
ネコ、イヌ、パンダ
になり、この例だとクマが行方不明になってしまいました。
メモリの状態は、起動中の状態に依存するので全部空白の場合もあればネコ、イヌの表示箇所が空白の場合もあるので、端末毎で表示が異なったというのは一定の合理性はあります。
とはいえ、これだけのソースコードだけで無実なんですと言われても普通の人からすると「?」となってしまう内容です。
そもそも、当時本当にこのプログラムで動いていたのか、ガシャの判定プログラムとの因果関係は本当になかったか、などは一切触れられていないので、結局疑念を晴らすまでには至りませんでした。
ドッカンバトルの一大騒動であったドッカンテーブル事件は、龍石300大量配布とソースコードの開示という斜め上の離れ業で一旦幕引きとなりました。
教訓とまとめ
私個人としては、当時のバンナムとアカツキの対応をどうこういうつもりはありませんが、株価の暴落と暴騰を繰り返したので心臓には良くなかったですね。
ただ、ソースコードをみる限りは悪意のある不正ではなく、処理効率化のために処理を触った結果墓穴を掘ってしまったように見えます。
改めて当時の事件をまとめてみましたが、激動の日々だったなぁと今振り返ると思います。
こういった話はどのゲーム企業に投資していても起こりうる話ですし、ゲーセクに投資する方は、対岸の火事として見ずにリスクとして常に念頭に置かないといけないですね。
タメになったと思ったらポチッと応援お願いします!
にほんブログ村