モバイルゲームは詰むのか？

タイトルの回答：モバイルゲームも詰みます

※この記事の「モバイルゲーム」は、基本プレイ無料、アイテム課金制のオンライン環境必須のスマートフォンゲームを想定しています。

# はじめに
ゲームで「つむ」というと何を思い浮かべるでしょうか？
私は積みゲーマーなので、「積む」の方が真っ先に思い浮かびます。
今回は「詰む」の方についてお話していきたいと思います。

# 「詰む」の定義
ゲームで「詰んだ」という言葉を使うとき、人によっていろいろな意味合いがあると思います。
例）敵が倒せなくて詰んだ、謎解きが分からなくて詰んだ等…

この記事では、以下の条件に絞って考えていきたいと思います。
* 事象が発生するとゲームの全体、または一部機能が進行不能やクリア不可になる
* 条件を満たした場合確定で再現する（ランダムで突破ができない）
* ユーザが自力で復旧できない
* コード上の不具合ではない

この条件を満たす詰み状態がモバイルゲームで発生するかを考えていきたいと思います。

# ゲームが詰むシチュエーション
家庭用/モバイルを問わず、ゲームが詰むシチュエーションをリストアップしてみました。
（他にもあるかもしれません）
| 要約| モバイルゲームで起きるか | 説明 |
|:-:|:-:|:-:|
| 敵が強くて倒せない | ✕  | 戦力が足りない＋強化ができない  |
|  イベントが発生しない |  〇 |  フラグを立てる条件を満たせなくなってしまっている |
|  マップから抜け出せない |  〇 |  フィールドや建物から出られない状態になる |

意外とモバイルゲームでも詰んでしまうシチュエーションはありそうです。
個別に見ていきましょう
## 敵が強くて倒せない
これは主にRPGでよく起きる事象だと思います。
パッと思いつく具体例としては、以下のような条件がそろうと詰み状態に陥りそうです。
* ボスとの戦闘時、こちらが行動する前に確定でボスが行動する
* ボスの攻撃を食らうと一撃で倒されてしまう
* 雑魚敵を倒してレベルアップしたり装備の強化ができない状態（ボス部屋に入ると出られない等）
* その状態でセーブしてしまった
これは家庭用のRPG（特に昔の作品）ではちょこちょこ発生するシチュエーションかなと思います。
ただし、モバイルゲームではガチャによるキャラ入手や強化が常時行えるゲームシステムのものが多いので、あまり考慮する必要はないでしょう。
## イベントが発生しない
これはRPG、アクション、アドベンチャーゲームで起きうる事象だと思います。
実際の具体例だと、某モンスター収集ゲームの第1作で以下のような詰み状態がありました。

 **特定のアイテムを購入して特定のキャラに渡すと進行するイベント** 
 
**■詰む条件**
* 所持金が足りない
* お金を落とす敵をすべて倒している
* 売却できるアイテムがない

上記の条件を満たすと、新たにお金を入手する手段がなくなってしまいイベントが進行しなくなります。
この状態でセーブをしてしまった場合、データ削除しか復旧方法はありません。

最近のモバイルゲームでは家庭用ライクなものも増えているので、類似の事象が発生するケースはありそうです。
例えば、「イベントの進行に必要なアイテムが売却できてしまう」とかは、設定ミスによって発生する可能性はありそうです。
他にも、「イベント報酬キャラの限凸アイテムが売却できてしまい、売ってしまうと完凸できなくなる」なんていうのも詰みとは少し違いますが、同じような原因で起こりうる仕様不備になりそうです。

## マップから抜け出せない
これもRPG、アクション、アドベンチャーゲームで起きうる事象だと思います。
家庭用の事例だと、NPCの移動パターンによって進路をふさがれて身動きが取れなくなったり、扉を開けるためのアイテムを使い果たしてダンジョンから出られなくなったりといったケースがありました。

モバイルゲームは標準でファストトラベルが搭載されているゲームが多いのであまり起こらなさそうですが、メニュー封鎖をしているときに全滅してセーブポイントに飛ばされたらそこから抜ける手段がなくなる、といったようなケースはありそうです。
# モバイルゲームが詰むとどうなる？
モバイルゲームでも詰んでしまうことはあるということがわかりました。
それでは、ゲームが詰んでしまうとどうなるでしょう？
モバイルゲームはパッチとお詫びを配って終わりなので、ユーザー影響は少ないと考えられるでしょうか？
答えはNOかなと思います。

昔の家庭用ゲーム（インターネット接続がない売り切りゲーム）だと、パッチを配布というのは難しいので、セーブデータを削除して最初からやり直すことになるかなと思います。
ユーザが受ける被害は、ゲームをやり直さなければいけないことによる精神的な被害と、再プレイの時間的な被害でしょうか。
モバイルゲームの場合インターネット接続が前提となるので、アップデートでユーザーの救出は可能です。
ユーザーが詰みパターンに遭遇してからアップデートの実施までを速やかに行えれば、ユーザー影響は少ないといえるでしょう。
**しかし、問題の検知や原因調査、修正に時間がかかってしまった場合、ユーザーはひたすら待たされる状態になります。**
モバイルゲームは通常プレイで獲得できるアイテム数に限りがある場合が多く、望んだキャラやアイテムを入手するには運・課金・時間が必要なため、一度進行したゲームのデータを削除して再プレイするのは容易ではないでしょう。
この傾向は、特に上位の課金ユーザーに強いと思われます。

モバイルゲームはリリースして終わりではなく、ユーザーに継続して遊んでいただく必要があります。
遊んでいるゲームが詰んでしまい、なかなか修正してくれない、こんな状況になるとユーザーはモチベーションが低下して離脱してしまうかもしれません。
詰み状態は防げた方がよさそうです。

# 詰まないためにはどうしたらいい？
ゲームが詰まないようにQAのテストケースやシナリオテスト、探索的テストで検知するにはどうすればよいでしょうか。
* ドメイン知識を持つ
* 好奇心を持つ
というのが必要かなと思います。

一つ目の「ドメイン知識を持つ」ですが、例えば家庭用ライクのRPGゲームのQAを担当するとき、家庭用のRPGについて詳しい人であれば、ピンポイントで怪しい箇所をエラー推測によって検証することができそうです。
例えば、「この記事に書いたような詰みパターンに実際に遭遇したことがあるから、類似の事例が起こらないかテストケースに盛り込む」というアプローチが考えられます。

もう一つの「好奇心を持つ」についてですが、仮にゲームが詰むということを認識していなくても、気になった仕様を掘り下げていくことで、問題にたどり着くことができる可能性があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320947/934cb107-0745-b04c-2bd5-bd514b2e5a9c.png)
これらは仕様書・設計書通りに実装されていても、実際には問題があったパターンです。
「仕様書・設計書に書かれているからOK」ではなく、自分で考えてテスト設計や探索的テストを行うことで、品質向上につなげることができると思います。

上記は家庭用ゲームにも共通する対策ですが、モバイルゲームにおいてはさらに「アップデートで条件が変わる」という観点が重要になってくると思います。
初回リリース時に問題がなかった部分でも、アップデートで新機能が追加されたりエリアが追加されたりUIが変わったりすることによって、問題が発生する組み合わせが誕生する可能性があります。
例えば、アップデートで水上を走れるキャラを追加したら、水上は移動できない前提で作られたエリアでショートカットができてしまい、イベントのフラグが立たなくなる、のようなケースが考えられそうです。
アップデート時のリグレッションテストでは、「過去にできなかったことができるようになってしまっていないか？（それによって詰み状態が作れるようにならないか）」というのを気にするとよいかなと思いました。

**モバイルゲームでもゲームの作りによっては詰んでしまうということを認識して、コンソールの検証観点を盛り込んだり、モバイルゲーム（そのタイトル）ならではのドメイン知識を活かしたり、追加されていく機能や仕様を深堀していくことで、詰まないゲーム作りにつなげられると思います。**

# おわりに
今回は会社でちょっと話題に上がった詰みパターンについて記事を書いてみました。
業務システムとかだとユースケースを作ったり、状態遷移テストをしてみたりで例外パターンを潰したりできそうですが、ゲームでやるのはカバレッジを明確にするのが難しいという課題感は、ゲーム業界のQAの方は感じているのではないでしょうか？
アジャイルライクに仕様の策定段階から介入したり、探索的テストを効果的に行う（行える人材を確保する）といったアプローチを行っていけないと、リッチ化していくゲームのQAにはついていけなくなりそうだなと思いました。

割と当たり前のようなことを書いた記事になってしまった気もしましたが、何かの参考になればうれしいです。