iPhone+Safariでリアルタイムゲームは作れるか?

前回はiPhone 3G(以後iPhoneと表記)で、ちょっとしたゲームを作成しました。今回はよりリアルタイム性を求めるゲームをJavaScriptで作成してみます。ここで作成するゲームは「上から落下してくる隕石をタップして破壊し都市を守る」というものです。

前回と異なり今回作成するゲームは複数の隕石が動きます。このため、iPhone + Safariの処理速度で十分ゲームになるのか、というのが1つのポイントです。先に結論を書いてしまえば、隕石が10個程度では全く問題がありません。さすがにパソコンのように高速には処理できませんが、ゲームとして遊ぶには十分な速度です。

実際にゲームを作成してみると処理速度よりも「タッチの反応の悪さ」が非常に気になります。隕石をタップして破壊していきますが、マウスのクリックと違い即座に反映されにくい感じがあります。また、隕石のサイズも問題です。というのも、前回のゲームのように何も動かないのであれば、その場所をタップすることが容易ですが、動いている物体をタップした場合なかなかうまくいきません。タップした場合、指が離れた時に判定が行われるため隕石のサイズが小さいとタップしたはずなのにタップしていないような感じになり非常に操作性の悪いゲームになってしまいます。少なくとも48×48ピクセルほどないとタップすることが難しくなります。

それでは実際のゲームのプログラムについて説明していきましょう。

今回作成する隕石破壊ゲーム