ガンホー・オンライン・エンターテイメントが提供しているゲーム『パズル&ドラゴンズ』(パズドラ)でゲームバランスが決定的に崩れるテクニックが見つかりました。ゲーム内の“チェンジザワールド”(CTW)というカードを使ったテクニックなので「リターンザワールド」と呼ばれています。
「CTW使用後、攻撃する瞬間にアプリを落とすとダメージを与えることはできるが、ドロップ配置が攻撃前に戻る」
この説明を聞いて意味が分かる人はこの章を飛ばしてください。『パズドラ』は敵との戦いをコマンド入力ではなく、パズルゲームで行うタイプのゲームです。画面上に現れたドロップというコマを決められた配置に動かすことによって消していき、敵にダメージを与えます。
パズルゲームではコマを並べ替えて、同じ種類のコマを近接させることにより消すことができます。さらに、消した後に降ってくるコマによって、同じ種類が近接すると連鎖的に消滅します。 この連鎖反応は多くのパズルゲームで高ポイントの設定が行われています。
『パズドラ』も同様にドロップを並べ替えて消していくゲームです。『パズドラ』の場合は単にスコアを競うゲームではなく、RPGの敵に与えるダメージになります。
従来のRPGと違い、プレイヤーの技能介入が非常に高いゲームです。
公式サイトからの引用、左図にある「ドロップ」といわれるものを3コ近接させると消すことができ、それが敵へのダメージ(攻撃)となる。
アプリを攻撃した直後に落とすと、ダメージを与えたのにドロップ配置はそのまま
敵と戦っているときにCTW(チェンジザワールド、攻撃方法の一つ)を使用した後に、タイミングよくアプリを落とすと、敵にダメージは与えているのに、ドロップ配置が最後に一手を動かす前に戻っています。
この方法を使うと、敵に高いダメージを与えるが、ドロップの配置は連鎖前に戻すことが可能です。 この方法を使えば、高難易度のダンジョンを容易に攻略できるとも言われています。
プログラムのパラメーターを変える類の技ではないので“チート”ではないといわれていますが、ゲームへの不正アクセスであり、チートと考えます。
問題の原因は、アプリ内でゲームの進行に関する重要な処理が行われているため
「ガチャを回すと、画面上でカードがシャッフルされたり、ルーレットが回る」
これを見ていると、今何か抽選が目の前で行われている! と感じます。 しかし、ほとんどのゲームは結果は決まっており、アプリ側ではサーバが決定した結果にになるように演出しているだけです。
たとえば、ルーレットの場合だと、既に「10」に止まることはサーバ側で決定済みで、10に止まる動画やアニメがダウンロードされて再生されているにすぎません。
『パズドラ』の場合は、アプリでプレイヤーの技能介入が行われるので、サーバが結果を一方的に決めているわけではありません。 このため、アプリ側の不正操作によりサーバにプレイヤーが優位になる不正な情報を戻すことが可能になります。
今回の問題は2点
まず一つは、アプリ内のローカルの処理の問題です。敵にダメージを与えたが、ドロップは攻撃前に戻るという問題です。不正にアプリが落ちた時には、
・敵にダメージを与えて、ドロップは消えた状態にする
・何もなかったことにする
のいずれかにすべき。
二つ目の問題は、バトル中のアプリ停止に関する扱いです。バトル中にアプリが停止した場合は、そのデータをサーバに転送しても無効にする処理を入れていませんでした。この処理が入っていれば今回の問題は防げていたと考えます。
このため、今回のミスはシステムミスにあると考えます。
トランザクション処理
コンピュータ用語で「トランザクション処理」というものがあります。ある一連の処理を行う場合に、途中一か所でも問題があればなかったことにするという考え方です。銀行でいえば、
・振込されていないのに、口座から残高だけ減った
・ATMで現金が詰まって出てこないが、口座からは引き落とされた
・振込されたが、途中のエラーで、残高から引き落としがない
という問題を発生させない考え方がトランザクション処理です。ストレートな言葉だと「オールオアナッシング」的な考えです。銀行とゲームでは重要度が違うだろ? といわれていますが、ソーシャルゲームの場合はゲームという世界が不正な行為によって崩れる可能性があるので、同じくらい重要だと考えます。
パズドラ RTWリターンザワールド(チート無) ヘライースノーコン – YouTube
https://www.youtube.com/watch?v=9cJ3dYW-N40
トランザクション処理 – Wikipedia
http://ja.wikipedia.org/wiki/トランザクション処理[リンク]
画像は『パズル&ドラゴンズ』公式ページから引用