こちらが『にもつつみゲーム』
空から降ってくる荷物を、プレイヤーが操作するロボットで良い感じに整え、荷物の山を崩さないように右往左往する…というゲームです。
ちょうどそのころ Box2D を触り始めていたので、何かしら物理演算エンジンを使ったゲームを作りたいな、と考えている中で思い付いたものになります。
当初は「上から落ちてくるお皿を割らないよう受け止めて、お皿を積み上げつつ右往左往する」というゲームを考えていました。
これはあれですね、トムとジェリーでそんなシーンがあったので、それの影響ですね。
それで実装してみたんですが、実際に実装してみるとお皿が全然積み上がらないんですよ。ちょっと移動するだけで崩れてしまいゲームにならない。トムとジェリーの世界と現実の世界は物理法則が違う、ということでしょう。
良い解決策が浮かばなかったので、このゲームのことは忘れて別のゲームを作り始めることにしました。
その後、ちょっと経ってから改めてゲームを触ってみて、「別にお皿を積み上げることにこだわらなくても良いのでは?」と気付き、今の内容に至ったという感じです。
最初はプレイヤーキャラを天使にしてました。神様が読み終えた本を次から次へと放り投げてくるので、下にいる図書館司書の天使が整理していく、という世界観です。
ただ、絵を描いていく中で、「そもそも神様、本読むか?」とか「天使って宗教的に差し障りがあるのでは?」とか気になりだし、 気になるくらいだったらやめよう、と思って今のキャラ(荷物整理ロボ)に変更しました。
私にとって荷物と言えば Amazon の宅配なので、とりあえず Amazon のダンボールっぽいものを描いてみたんですが、その後、なんとなく舞台を空港にするのが良いんじゃないかと思い、荷物のジャンルをスーツケースに切り替えました。この時点で Amazon ダンボールは捨てるべきなんですが、まあせっかく描いたのでそのまま使うか、と思いそのままにしています。
Box2D を使ったゲームの開発に慣れていないため、物体の密度とか反発係数をどういう値に設定したら良いか分からないんですよね。感覚的なものなので。
そこさえクリアすれば「床や他の荷物と接触したら +1 点」みたいな判定を Box2D に委ねられるので、楽でしたね。
以前作ったゲームでは自前で簡単な物理演算エンジンもどきを作って実装してたんですけど、ゲームの本筋とは関係ないところで自作エンジンのバグに悩まされたりしたので、やっぱり利用できるライブラリはどんどん使ってくべきだなと改めて思った次第です。
「物理演算エンジン」というのが正式な呼び方だとは思うんですが、「エンザンエンジン」って無駄に長い気がするので、「物理エンジン」でも問題ないかどうか Google で検索結果件数を調べました。
結果は、
物理エンジン ... 約 180,000 件
物理演算エンジン ... 約 25,100 件
とのことでした。これからは「物理エンジン」でいこうと思います。調べて良かった。
そんな『にもつつみゲーム』はこちらから遊べます! 是非!