SINoALICE 攻略メモ その11 / ポケラボが半年以上修正しようともしない整合性エラーの不具合がヤバイ件
スクエアエニックス名義でプロデュースされている、シノアリス。
プログラム自体は、株式会社ポケラボ - Pokelabo, Inc. ってところが作ってるんですが、半年たっても直らないバグがあまりにも酷いので、バグの原因と症状について 解説しちゃいます ・ω・
一応ポケラボのサポートには何故そんな現象が発生するのか、ざっくり説明してるのですがやり取りはこんな感じ
わたし「数か月前から○○○と言う不具合がある」
ポケラボ「仕様です。再起動したり、キャッシュをくりあしたりするとなおります」
わたし「不具合の原因は○○○なのに直せないんですか?何ヶ月も症状が改善されないのに直す気ないのですか?」
ポケラボ「詳細ありがとうございます。お客さまのお声は、より良い「SINoALICE」を用意するための貴重な声として今後の参考とさせていただきます」
・ω・ 直す技術力ないんじゃね?
1. SINoALICE で大量に発生する不整合バグについてどんな現象が起こるか
・設定のボタンが、実際と異なる表示になる。
・強化画面や売却画面で選択出来ないアイテムが出たり、本来選択していないものが選ばれたりする。
・共闘画面のアイコンが本来と異なるナイトメアの表示になる。
・遷移画面がバグって、2重になったりする。
・フリーズしていないのに、操作不能になる。
・画面上でドロップする宝箱と表示される数が合わない。
・掃除中の移動状態のフラグがちゃんと立たず、時間が止まらないことがある。
・チャットなどの文字が重なって表示されて読めない。
・戦闘中のナイトメアの画像が表示されなかったり、別のメアが表示される
・課金などのトランザクションでも致命的なエラーが起こる。
・ターゲットが勝手に変更される(ナイトメアが倒された時に変わるのは正常)
・ターゲットとは無関係な場所にスキルが飛ぶ
チャット画面のバケ例
選択のON/OFFがおかしい。フレンドなのに選択不能
「ギルドメンバーのみ」なのに選択できる
画面遷移バグ 例
2. なんでこんな現象が起こるか。
一言で言えば、変数領域が意図せず、破壊されているからである。
おそらく、8,9割方、SINoALICE のプログラムがスレッドセーフな変数を使って処理されていないのだと思う。
Android でも iOS でも、不具合の原因が共通していることから、作ったプログラマーに、マルチスレッドの基礎知識が欠落してるのだと思われる。
ITエンジニアの「やってはいけない」 - [実装編]スレッドセーフにすることを忘れてはいけない:ITpro
わかんない人にかんたんに説明すると、
この実装を怠ると、並行したイベント処理が行われた場合に、処理が正常に反映されない現象が起こるのだ。
例えば、クリックして、画面戻ってきたはずなのに、プログラム上では、前の画面に居ることになったり
ナイトメアの一覧を更新したはずなのに、前のデータが残っていて表示されたりする現象が起こる。
先程あげた不具合は、半年前から起こっていて、最近も発生するのを確認しているバグなのだが、
全部、この不具合で起こりうる問題なのだ ・ω・
恐ろしいことに、この不具合、半年以上放置されているのだ。
ちなみに、スレッドセーフにしないでデバッグすると、変数トレース中に値が書き換えられなくなったり、
書き換えたはずの値がリードオンリーになったり、わけの分からないバグが大量に発生して、直すことが出来ないのだ。見てる分には面白い ・ω・
スクエアエニックスが監修してるのに、いい加減にしろって感じだ。
さすがポケラボである。
いい加減にしてほしい ・ω・
「ショーターイ!」する再現可能なバグありRTAが出たら、流石に修正されると思います。
たまにありますよ。
再現性ないけど、「ショーターイ!」するバグ
「データの更新があったのでタイトルに戻ります」の無限ループも出てます。
スレッドセーフじゃないから、不定期に出るわけで、再現可能ではないが必ず何かが発生するバグだから問題なわけで