2017-12-21

バグばっかりだったあのゲームの思い出

きららファンタジアというスマホゲーで何か大きな問題が起こって大騒ぎになっているというのは Twitter自分タイムラインにちらほらと出てきていたので「そうなんだー」程度の認識だったのだけれど、その炎上のまとめと考察(https://smhn.info/201712-kirara-fantasia-cheat)を読む機会があってなるほどこれは大変な問題ですね、と思った。

それで僕は、サービスインからサービス終了までをほぼ全て見守ってきたあのゲームの事を久しぶりに思い出したので懐かしい思い出としてここに書き記しておこうと思う。

そのゲーム、仮にスキマとしよう。そのスキマはスマホゲーによくある隙間の時間を埋められるようなデザインをされたゲームで、大まかにいうと冒険者を組織してダンジョンへと冒険に出かけさせ、持ち帰った財宝を使って冒険者を強化して、また冒険に出かけさせるというサイクルのゲームなのだが、冒険中はユーザ特にすることがなくただ待っているだけという、冒険者を送り出して帰ってきたのを確認するだけの作業をその隙間の時間にやってね、というゲームだった。なお、スキマは単発のゲームというよりは、はるか昔のパソコンで動いていたゲームを始祖とする名のあるタイトル(仮にウィリーとしよう)を冠したゲームで、ルネサンスと名付けられたウィリーブランド再生プロジェクトのうちの一つであった。僕はそのウィリーが好きだったのでとりあえず遊んでみようとダウンロードしたのであった。

サービスイン直後に一ヶ月メンテ

まず、スキマのサービスイン直後だが、オンラインゲーの例に漏れサービスイン直後に色々な問題を起こしてメンテにつぐメンテでまともに遊べる状態ではなかった。だいたい4,5日はメンテをしたり、たまにサービスしていたり、という感じだったのではないかと思う。そのサービスインから4,5日経ったあたりで、「このままでは安定したサービスが続けられないので長期メンテナンスに入る」といった感じのアナウンスと共に、メンテナンスに入った。このメンテナンスは一ヶ月とちょっとの間続いた。僕はサービスイン初日にはプレイできず長期メンテナンスに入る前に少し遊んだ程度だったのだが、遊んでみた所では「これは酷い」としか言いようがなかった。

まず動作もっさりとしている。何かのボタンを押すたびに CONNECTING… というダイアログが出て2秒位は待たされる。場合によってはボタンを3,4回押さないと目的の事ができないのに押すたびに CONNECTING… なのである。次にタップに反応しない。ボタンを押すと書いたが押したつもりが押されていない事がしばしばある。この場合は CONNECTING… が出ないのでわかるのかと思いきや、1秒位経ってから CONNECTING… と出てあぁ、押していたのか、とわかったりするようなもっさり具合である(もちろん押していなかった時もあるので1秒後までは押せたか押せなかったを判別できなかったりする)。

また、バグと言っていいであろう謎の動作が多い。ダンジョンに送り出したパーティダンジョン内部での行動がダンジョンログとして閲覧できるようになっており、そのダンジョンログは直前の3回までのログが観られるようになっているのだが、そのダンジョンログの表示される内容が複数が同じものになっていて実質的には3回のログはみられないであるとか、CONNECTING… が出るタイミングで他の部分をタップしてしまうと高確率アプリが落ちるであるとか、特定の順番で装備している武器を変更すると攻撃力が最低値に固定されるであるとか、リリース記念かなにかで貰えるキャラがなぜか毎日もらえて同じキャラが増えていくであるとか、まぁ色々な問題があって面食らったものである

そんな感じでサービスインを迎えたスキマなのであるが、こんなに酷い状態なのではユーザはどんな事を言っているのだろうとコミュニティを探した所、2chスレッドが立っていた。案の定スキマのバグ報告スレと化しており、「あぁ、このゲームは本当に全然駄目なんだな」とほっとしたのを覚えている。僕はその頃からその2chスレッドを眺めるようになった。また、こんな状態ではサービスが続けられないのはわかるけれど、一ヶ月程度のメンテナンスでなんとかなるものでもないだろうとも思ったので、せっかくなのでサービス終了まで看取ると面白いのではないかとも考えた。

サービス再開後も問題改善せず

一ヶ月と少し経った頃、スキマのサービスが再開された。まぁ残念ながら僕の予想は外れておらず、お世辞にもちゃんと遊べるとは言えない状態であった。とはいえ、本来は一回しか貰えないはずのキャラ複数回貰えるであるかいった所に代表されるゲームとして守られるべきルールのようなものについてのバグの多くは直っており、残っている問題の多くはクライアントアプリ側の問題サーバ側の負荷対策ができていない問題とみられ、クライアントアプリ側の問題特定操作をしなければ落ちはしないしサーバ側の問題もっさりだけれど待てば処理はしてくれるので一応遊べないことはない状態だとは言えた。それでも、クライアントアプリ側でのUI不思議動作(押してるつもりでも押せていない、連打するとクラッシュ)に誘発されたと考えられる進行不能バグ代表とする理不尽問題は沢山残っており、ユーザとしては不満が渦巻いていた。

そんなスキマではあるのだが、サービス再開の後はウィリーでは有名な人の名前を冠したイベントを行ったり、定期的に期間限定ダンジョンオープンしたりといった運営を行っていた。もちろんバグはじんわりと直ってはいくのだが、特に劇的な直り方はせず、「俺サービス開始直後からログインできなくなっててまだログインできないんだけど」みたいな事を報告するユーザ(?)も2chでは散見されるという状態で、2chスレッドは「スキマのバグを踏まないようにプレイするにはどうすれば良いのか」という情報を交換するための機能果たしていた。

開発会社の変更

一ヶ月メンテからサービス再開から3,4ヶ月経った頃、運営会社から開発会社の変更が発表された。曰く、外部の開発会社制作を依頼して制作したのだが、不都合が多すぎてどうしようもないので開発を自社に引き取るということであった。その後一ヶ月程して「不都合収束クライアント」と銘打ったクライアントが配布される。この不都合収束クライアントで確かにいくつかのバグ修正されはしたのだが、もっさりとした動作が変わるわけではなく(プロトコルサーバ側も修正されていないようであったので当然ではある)、操作によってはクライアント強制終了していたのが強制終了はしなくなった、程度の修正であり、これを解決するには根本的な改革必要であるとみてとれた。

サービス開始1周年

そんなスキマではあったが、何故かサービスは終了せず、サービス1周年の時を迎えた。この時、スキマの開発体制についての発表もあった。現在のスキマのクライアントプログラムは改修を重ねていくが、それと平行して開発ミドルウェアを変更してフルスクラッチクライアントを作り直している、という発表であった。2chスレッドではフルスクラッチクライアントを書き直すということで、バグの根治は当然として、目的の事を行うのに3〜4タップ必要であったりするというUI周りまで手がつけられるのではないか、という事を期待する声が上がったりもした。

また、この1周年挨拶の3ヶ月後には新クライアントの開発状況は70%と発表された。

この頃からであろうか、僕が遊んでいる環境のみなのか、又は他の人ではあまり現れない問題であったのか、とにかく僕が遊んでいる環境では冒険からの帰還を行おうとすると変に時間がかかるようになった。この問題は何らかの原因で帰還操作完了するまでの時間が少しづつ伸びていくという問題であった。この問題は後で僕には大きな問題として認識されるようになる。

この頃からは新クライアントを開発しているためなのか、旧クライアント修正はあまり行われなくなり、定期的なイベントが行われるのみであった。思えばこの頃はスキマの遊び方(このようにするとバグを踏むのでこれはしない、であるかいった遊ぶための作法)がわかっている人間しかスキマを遊んでおらず、運営側積極的には宣伝もしていないため新しいユーザも増えなかったため、比較的安定した運営が行われていたのではないかと思われる。

また、恐らくこの頃であると思われるが、2chスレッドで「スキマは冒険者が冒険をしてきたログを眺めることでそのダンジョン攻略法を考えたりするゲームなんだけど、あまりにもバグが多すぎるから2chというログを読む事でスキマというゲーム攻略しているよね」といった書き込みが行われるなど、スキマをダンジョン攻略ゲーとして捉えるのではなく、バグ攻略ゲーとして捉えるというユーザが現れていた。

期待はずれの新クライアント

さて、一周年の時に発表された新クライアント開発は、その後3ヶ月程で70%まで出来ていると発表されたが、結局その新クライアントがお目見えしたのは2周年を目前に控えた頃であった。新クライアントのお披露目はAndroidβテストという形で行われた。言い忘れていたがスキマはiOSしかサービスされておらず、それまでAndroid版は存在しなかった。僕はAndroidiOSも持っていたため、βテストに応募し、当選したので遊んでみたのである

まず、フルスクラッチ制作されると言われていたのでUI周りも変わるのであろうと思っていたのは完全に裏切られた。見た目はほとんど何も変わらず、もちろんUIタップ回数まで全く同じであった。しか使用されているフォントが違うために文字が見切れていたりといった問題が発生しており、お世辞にも前のクライアントとくらべて良くなったとは言えなかった。また、恐らくはサーバクライアント間のプロトコルも何も変わっていないのか、プロトコルサーバ側に起因する問題は依然として残っていた(武器や防具を鍛錬すると+の数値が上がるという仕様があるのだが、連続して鍛錬を行うと必ず1以上は上がるはずの鍛錬値が上がらなかったり下がったりするといった問題は残っていた)。また、動作iOS版と比べるともっさりとした感じが強く、何のために作り直したのかわからないという感想であった。2chスレッドの中ではこの新クライアントは単に今までの旧クライアントAndroid移植したものであり、本物の新クライアントはまだ開発中なのだと言って聞かない人が長いこと存在した程である

その後、βテストでお披露目された新クライアントは3ヶ月後にAndroidリリースされ、その後さらに3ヶ月後にiOSでも新クライアントリリースされた。

クライアントで新たに現れる問題の山

鳴り物入りで導入された新クライアントであるが、先程も書いたように、旧クライアントと比べると確かに解決された部分もあるが、サーバ側が関わる問題は全く同じ問題を抱えており、新クライアント特有問題が多く発見され、実質的には旧クライアントの方がバグが少ないという状態であった。

僕はβテスト以降は特にAndroid版で遊ぼうとはしていなかったため、新クライアントが先行リリースされたAndroid版を遊んでいた人達を眺めていたのだが、Android版で起こっていると2chで報告されている問題がそのままiOS版でも起こるとなると大変だと思って眺めている位には、Android版は阿鼻叫喚の様を呈していた。iOS版での新クライアントリリースは3ヶ月遅れたが、この間Android版は何度もなんどもアップデートを繰り返し、その度に少しづバグ修正されていくのをみて戦々恐々としていた。

iOS版の新クライアントリリースされた直後、僕はスキマを遊ぶことができなくなった。これはゲームを起動した後すぐに「通信エラー」が表示されてタイトル画面に戻されるという問題で、これを回避する方法全然からなかったためだ。「あぁ、ログインボーナス貰えてたのがなくなっちゃうなぁ」と思ったのを覚えている。

しかし、この問題については2ch(正確にはTwitter経由であるのでTwitterの誰か)に「お知らせ」をタップしてからだと通信エラーが起こらない、というオカルトじみた書き込みがあり、それを信じてやってみると確かに通信エラーが起こらないということが確認できた。これで僕もスキマをプレイすることができるようになったのである。この時は本当に2chというログを読んでスキマというゲーム攻略している感じがしたものだった。

この時、僕は何故通信エラーが起こるのか、何故「お知らせ」をタップすると通信エラーが起こらないのか、といった事を確認したくなってiOS版の通信を眺めてみることにした。本来であればこのような行為を行うのは自分主義に反するため、それまでは行わなかったのであるが、突然ゲームプレイできなくなるというのは大変衝撃であったので、つい出来心で、という感じで眺めてみたのである

クライアントサーバ間の通信HTTP、つまり平文で行われており簡単通信内容をみることができた。タイトル画面から通信エラーが出るまでの通信内容はだいたい以下のような感じであった。

1. クライアントからユーザ情報送信

2. サーバからセッションキーが送られてくる

3. クライアントから並列で何らかの情報を取得するためのGETリクエスト送信

4. 並列で送られたリクエストへの返信をサーバが返すが、その全てに更新された(別の)セッションキーが入っている

5. ログイン完了してゲーム画面が表示される

6. クライアントで何らかの操作を行おうとしてサーバリクエスト送信

7. 6.のリクエストへの返事が4**でエラー

まり、3. のリクエストが並列で行われ、サーバ更新したセッションキーが 4. でクライアントに届けられるのであるが、恐らくは届いたセッションキー前後してしまうことで壊れてしまったと考えられる。

これが、何故「お知らせ」をタップすると解消するのかであるが、実は「お知らせ」を取得するためのURLhttp://…../login2 というURLへのGETリクエストであり、かつセッションキー必要としておらず、このURLからリクエストの返事にはセッションキーが含まれるという特殊URLであったのだ。つまり本来であれば 5. の状態の時には壊れたセッションキーを保持していたはずが、そこで「お知らせ」をタップすることで新しい(正しい)セッションキーを手にすることができるようになり、その後の通信はちゃんと行えるようになったのである(その後の通信では並列にリクエストを投げるパスは僕の観測した範囲では存在しないように見えた)。

この事に気づいたTwitterの人はどうやって気づいたのかはわからないが、よく見つけてくれたものである。ともかく、僕はこの情報に助けられ、スキマを再開することができた。

長くなったので https://anond.hatelabo.jp/20171221020636 へ続く

記事への反応 -
  • バグばっかりだったあのゲームの思い出 の続き 遊べなくなり解析を始める iOS版の新クライアントが導入されたのは12月の頭位であった。この月の頃には僕の所で前から起こっていた...

  • 2014.08.01 Wizardry Schema(ウィザードリィ スキーマ)サービス再開のおしらせ http://www.wiz-s.jp/info.aspx?seq=6 確認中の不具合につきまして http://www.wiz-s.jp/info.aspx?seq=4 2014.09.11 現在確認中の...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん