重力を本物の星に合わせたら、同じ1球が通用しなくなった
『惑星ストラックアウト』は、重力のちがう6つの星で、16m先の9枚のパネルをボールで抜くゲームです。重力と空気は本物の星に合わせてあります。作ってみると、本物に合わせたことでおもしろくなった所と、本物のままではゲームにならなかった所がありました。
投げ上げる角度は、いつも同じにした
ボールの飛び方は、重力と空気の抵抗だけで計算しています。投げ上げる角度はいつも同じにして、プレイヤーが決めるのは「強さ(速さ)」と「左右」だけにしました。こうすると、同じ星で同じ強さなら、いつも同じ所に飛びます。うまく当たらなかった時に、自分の力加減だけを直せばいい形です。
星ごとの「ちょうどいい速さ」
パネルのまん中に当たる速さを星ごとに計算すると、地球が時速約85km、月が約34km、火星が約51km、金星が約129km、木星が約136km、冥王星が約21kmになりました。この数字は画面には出していません。自分の指で見つけてもらうためです。
地球でまん中に当たる投げ方をほかの星でそのまま使うと、月ではまん中より2m以上も上を通りすぎ、木星では手前で雲の下へ落ちていきます。この「通用しなさ」を最初に見てもらうために、星に着くたびに、地球の投げ方のお手本を1球だけ見せるようにしました。
金星の空気は、本物のままだと止まってしまう
金星は、重力が地球とほぼ同じ(約0.9倍)なのに、空気の重さ(気圧)が地球の約90倍もあります。「重力は同じなのに届かない」という、だまされる星にしたかったのですが、空気の強さを本物どおりにすると、ボールは数mで止まってしまいました。そこで金星の空気の強さはゲームとして調整して、地球の12倍にしています。
木星も空気が濃い星ですが、このゲームで投げる台は雲の上に浮かんでいます。雲の上の高さでは、空気は地球より軽いので、空気の強さは地球と同じにしました。
はじく速さから、なぞる長さへ
最初は、画面を上へはじく速さで投げる形でした。ところが、パネル1段に当たる速さの幅はたった±4%ほどで、毎回同じ速さで指をはじくのは、作った自分でも難しすぎました。
そこで2つ変えました。1つは、投げ上げる角度を15°から8°に下げて、1段に当たる速さの幅を約±7%に広げたこと。もう1つは、上へなぞった「長さ」で強さが決まる形にして、なぞっている間ずっと時速を出すようにしたことです。数字を見ながら「さっきより3km弱く」と直せるようになりました。
公開前に見つけた、真っ白になる画面
作っている途中、Macで開くと画面が真っ白になる不具合がありました。原因は、指でなぞった跡を描くための透明な層でした。高精細の画面では、この層が描くたびに自分の大きさを2倍にしてしまい、数秒でブラウザが描けない大きさになっていました。iPhoneも高精細なので、そのまま出していたら同じことが起きていたはずです。
この記事のゲーム
ほかの日記
- 2026年10月20日20ステージを、解くプログラムで確かめながら作った『こっそりスライド』は、部屋をずらしながら見張りから逃げるパズル。本当に解けるのかを確かめるために、最短の手数を数えるプログラムを作りました。
- 2026年10月19日作ってから、やめた仕掛けの話一度は作ったり選んだりしたけれど、遊んでみて外したもの。ゲームを作る時は、足すよりも削る方が多いかもしれません。
- 2026年10月19日「描いた形がそのまま性能になる」ゲームを作って気づいたこと傘を描く『アンブレラン』『アンブレード』、銃口を描く『しなしなガン』、空に描く『ソラガキ』。描かせるゲームを続けて作って分かったこと。
広告