エラーやバグのないプログラムなんて、そうそう存在しないと思うんですが、僕が作るやつは結構ヒドイんですよ。
今日までで一番やらかしたのはあれですね。
いきなりエンディングスタートです
アプリを始めたはいいものの、いきなりエンディングが始まるっていう離れ技ですよ。
これはもうプログラムとかコードなんて関係ないですよね。人としてのミスというか、自分のポンコツっぷりを再確認する出来事でした。
速攻で気付いてアップデートしたんですけど、iPhoneアプリだったから、審査に数日かかったんですよ。その間にダウンロードされた人はビビっただろなと思っています。
えー、ここまでないにせよども、リリースすれば何かしらのエラーは見つかるんですよね。
誰の参考になるか分かりませんが、先日出した Just make 10のエラーをいくつか紹介したいと思います。
(すでに全て修正済みのバージョンが公開されています)
・セーブが正しく反映されない
ステージが100まであるんですけど、1つクリアするごとにセーブされるんですよ。まあ当たり前のことなんですけど。
STAGE2までクリア。STAGE3まで遊べるようになってます。
んで、ここであったエラーがあれですよ。
STAGE30までクリア→STAGE10をプレイする→セーブがSTAGE10に戻ってしまう
例えばなんですけど、こんな風にクリアしたステージを戻ると、セーブデータも戻ってしまう状態だったんですよね。
まあ赤面必死のエラーですよ。非常に初歩的なミスですねw
・SUCCESSのときにセーブされていない
数字を10にするゲームなんですが、10になったときにサクセスって出るんですよ。
んで、Nextを押せば次の問題、Homeを押せばホーム画面に戻る、みたいな感じなんですけど、ここでセーブされてないんですよね。
Smmさんにご丁寧に教えていただいたんですが、確かにそうなってました。
おめでとうございます!さっそくDLしました!チュートリアルわかりやすいです。クリアしたあとネクストを押さないでホームに戻るとクリアに反映されてないかも?反映されてたらすみません!
— Smm🍣 (@sunapple99) August 9, 2018
Homeに戻っちゃうと、せっかくのクリアが反映されてない状態。でもこれ、なんでだか作ってる状態のときから、確信を持ってこうなってたんですよね。
「Next押したときにセーブされるのがスマート」なんていう、よく分からん思いがありました。
自分の頭の中がバグっていて生じたエラーみたいです。
・Result画面の順位がおかしい
このゲームにはタイムアタックモードがあるんですよ。5問解く時間を競うってやつが。
んで、5問終わった時点でResult画面(結果画面)が出るんですけど、そこの順位が間違ってました。
何でだか常に1位って表示されちゃうんですよね。俄然1位じゃなくても。
(RANKってとこですね)
まあ何がおかしかったのかと言えばサーバー側で、SQLのコードに難がありました。
Time順にデータを引っ張ってきて順位を判定するつもりだったんですが、そこがTime順になってなかったっていう凡ミスです。
ただなんでだかローカル環境だと正しく動いていた不思議。
・「動画を見て広告を見る」を押しても、答えが見れないときがある
問題の答えが分からなかったときにAnswerボタンを押すことで、答えを見ることが出来ます。
お決まりの動画を見て答えを見るってやつですね。
ただここでYESを選んでも、何も起こらないときがあったんですよ。動画も再生されないし、答えも表示されない。
原因はあれです。動画広告が読み込まれてないときがあるんですけど、そういうときって当然のことながら再生が行われないんです。
なので、そういう場合のバックアップを用意しておくようにしてるんですが、このときはすっかり忘れてました。
===
えー、まあまあこんな感じで、アプリをリリースするたびに細かいエラーを見つけては修正しています。
今回書いていないところを発見された方は「まだまだここにあるぞー」って教えていただけると幸いです。
エラーやバグのないコードはないと思いますが、僕の場合は初歩的なミスが多いんですよね。0にするのは当然無理なんですが、赤面必死のエラーだけは回避したいなと思っています。