世にも奇妙なバグ
デバッグは出来るだけ普段ゲームをしない人にやってもらうと思いがけないバグを見つけてもらえたりします。特に作っている本人は「どこ」を「どう」すれば「どう」なるかがよく分かっているため、意外とバグを見落としがちになります。
ただゲーム慣れしていない人だけのデバッグでも不十分で、慣れた人のデバッグも同じくらい大事です。色々なタイプの人にプレイしてもらうのが理想的ですね。
勿論、自分でもしっかりデバッグはやります。とにかく「こんな事は誰もしないだろう」というくらい無茶な事をして、それでもバグが生じないかを確かめます。
実は審査中の「カラー・ペアーズ」[YouTube]も思いがけないバグを提出後に発見した為、一度自分でリジェクトして提出し直しました。
そのバグとはプレイ中に表示していたmobclix広告から発生するものでした。
どういうバグかというと、このゲームは60秒からカウントダウンが始まり、ゼロになったら終了という流れなのですが、どういうワケかmobclixの広告を押しっぱなしの状態で指を離さずにいると、カウントが止まったまま動かなくなるというものです。
タイムを止めた状態でもゲームは続けられるため、広告の上に指を置いた状態を保てば、無限にスコアを伸ばせるという非常に厄介なバグです。これではどんなに楽しいゲームも一気に冷めます。
ここで少しプログラム的な事を簡単に説明しますと、通常ゲームなどのタイムのカウントというのは実際には「画面上」の数字はあくまでも「内部」で数えているカウントをシンクロさせて反映しているもので、プログラム的には「現在の秒数」から1秒間に1秒づつ引いて、その度に新しい秒数を画面に表示する、といった処理が行われています。
つまり表面上の数値と内部で数えている数値は常に一致していなければ、表面上の数値が「ゼロ」になった瞬間に「ゲームオーバー画面」に切り替わってくれません。
もしもこのバグが表面上の数字だけ止めてしまうようなもので、内部ではしっかりカウントが続いていたとすれば、広告から指を離してまたカウントが続行した場合、表面上の数値が「ゼロ」になる前に「ゲームオーバー画面」に切り替わるはずです。あくまでもプログラムは内部の数字を元に処理が行われているからです。
しかし今回のバグはいくらタイムを止めたり戻したりしても、内部と表面の数字は常にシンクロしていて、カウントが「ゼロ」になると同時にゲームオーバー画面に切り替わります。
つまりバグの原因はともかく、内部のタイマーもろともカウントを止めてしまうバグである事だけはハッキリ分かります。
結局、色々試しましたが、広告自体をタッチ可能のまま表示した状態でこの問題は自分では解決できず、ゲームプレイ中の広告の表示を諦める事にしました。広告はゲームオーバーになった時に表示される感じです。
なんだかんだと広告には色々な問題で悩まされてばかりですね。
まあ、そんなわけでバグというのは思いがけない所に潜んでいたりするものです。普通なら広告を触ったまま離さずにゲームを続行しようとする人も少ないとは思いますが、ユーザーの動きというのは予測不能なので、そういう所までチェックするのもデバッグの仕事の一つというわけです。
******************************
今朝(13日)起きたらカラー・ペアーズがリリースされてました!
無料なので是非お試しください!
AppStoreへのリンク
[...] 世にも奇妙なバグ « スタジオルーペ開発者日記 [...]
返信削除[...] スタジオルーペ開発者日記 AboutContact « 世にも奇妙なバグ [...]
返信削除[...] それと今朝、「世にも奇妙なバグ」で書いたバグについて、LCD Clock, MyWebClip, やJapan Subway Route Map などのプログラムを手がけた岸川克己さんからご指摘いただき、無事問題が解決できました! やっぱりプロは違いますね!普通に諦めていたので本当にありがたい事です! [...]
返信削除