2017-12-21

https://anond.hatelabo.jp/20171221020132

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

遊べなくなり解析を始める

iOS版の新クライアントが導入されたのは12月の頭位であった。この月の頃には僕の所で前から起こっていた、ダンジョンからの帰還操作時間がかかる、という問題だが、これが帰還操作をしてからだいたい30秒以上かかるようになっていた。この問題は、30秒以上になると通信エラーを起こすという問題に発展しており、通信エラーが起こった時には帰還が失敗することが多くなってきていた。

この問題は新クライアントになる前から観測されており、何度もユーザサポートに問い合わせを行ってはいたのだが特に何も対応されることはなかった。僕としては何度も通信エラーを起こしていればたまに帰還が成功するわけなので遊べないことはない、というような言い訳をしつつ、15分の冒険を行わせるために30分位は帰還しようとして通信エラー再起動させてまた通信エラー、という事を繰り返していたのである

さすがにこんな事に時間が取られてしまうのは面白くないと思っていた所で、新クライアントリリースされ、「お知らせタップ」が知らされるまでは遊ぶこともできなくなり、何故「お知らせタップ」で解決するのかを観測してみたところでスキマの通信が平文で見放題であることに気づいてしまったわけである。そこにやってくる正月休み。なるほどこれは僕に与えられたハックの時間なのですねと僕は正月休みをスキマの解析に当てた。

解析自体簡単であった。帰還時に時間がかかっているのはクライアント側ではなくサーバであることも観測から明らかになった。何故時間がかかるのかは皆目検討がつかなかったが、とにかくサーバ側(多分DBアクセス等をしている)で時間がかかる処理が行われることによって、PHP側のタイムアウト(default では 30秒)にひっかかって50*のサーバエラーが起こる。クライアントは50*が返った事により「通信エラー」を表示する。サーバ側では処理が終わることもあるようだが大半は処理は終わらずそのプロセスごと殺されているようだ。従って、帰還するためのPUTリクエストを送って、失敗したら/login2からセッションキーをもらってもう一度PUT、と繰り返す事で30分(その頃には45分を越え50分位はリトライし続けないと駄目だった)以上かかる帰還操作自動化することができた。

ここまでで検証作業自体を終了とし、検証で明らかとなった問題(遅いのはサーバ側、30秒以上の処理が行われる事によって50*が発生する、PHPで動いているようだがPHPのtimeoutの初期値は30秒、ワークアラウンドとしてはこの30秒のタイムアウトを60秒とかにすれば当面の問題回避可能であるが、このままいけば早晩60秒の壁も突破するので根本的な修正必要)といった事を詳細に書き、Pythonにより自動化された帰還操作を繰り返す(つまり問題となっている50*のサーバエラーを起こすための)プログラムを添付して、「ここまでやったのでBANするならすればいいよ」と添えてサポートに提出した。

しかして返答としては「BANはしないけど今後はしないでくれる?」という温情あふれるものであり、その後すぐにタイムアウトの設定が増えたらしく30秒で50*が返される事はなくなり、一回で帰還操作が正常に終了するようになり、僕は帰還操作で50分も無駄時間を奪われる事はなくなった。(といってもその2ヶ月後には60秒の壁が立ちふさがって同じ事が起こったのであるが)

サービス終了

年が明けて5月、一ヶ月後にスキマのサービスが終了することが発表された。先程も書いたように僕は帰還操作がうまくいかないためにまともには遊べなくなっていたが、サービスが終了するのであればこれ以上とりたてて修正を願い出ることもあるまいとそれ以上は特に何も言わないで最後の一ヶ月を過ごした。

振り返ってみるとバグ攻略するという楽しいゲームであった。最後の方では通信の解析を行ってBOTのようなプログラム作成して非常に楽しんだ(実際、二週間位(一つのイベントが終了するまで)は自分操作しないでほったらかしておいてもやりたいことはだいたい全部できているようなBOT作成できた)。今となっては起動してもタイトル画面しか見えないゲームであるが、データが見えなくなるのは寂しいのでとクライアント側に保存されているキャッシュデータ(sqlite形式だった)の中身を閲覧するためのWebアプリを書いたりもしてとても楽しかった。多分運営側としてはいちいちバグ報告と称して長たらしいmailを投げ込んできたり、果ては通信内容を解析してサーバ側の設定を書き換えろと指示するといった迷惑まりないユーザであったとは思うが、まぁ、終わってしまったゲームであるのでもう何を言ってもいいのかなぁと思ってあけっぴろげに書いてしまった。

また、スキマを最後に開発していた会社はその後解体されて本社に吸収されている。

そういえば、色々とお世話になった2chスレッドはまだ残っているようである。せっかくなのでスレの方にもこの文書の事は紹介しておこうと思う。

記事への反応 -
  • きららファンタジアというスマホゲーで何か大きな問題が起こって大騒ぎになっているというのは Twitter の自分のタイムラインにちらほらと出てきていたので「そうなんだー」程度の認...

    • 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 現在確認中の...

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

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