もずポンへの長い道のり ー 7

何かを完成させるってのは本当に大変。ゲームの場合は、いわゆるミニゲームであっても、開始から終了までをキチンと作るのは様々な壁がそそり立ってます。その壁のなかで大きいのが、

1.簡単だと思って作ってみたら思いもよらず難しいところが出てきた
2.途中で作るの飽きちゃった

のふたつではないかと。

途中で飽きるってのはもう仕方がない。これはもう、どうしようもない。私の場合は、とりあえず楽しい部分を先にドンドンと作っておいて、この楽しい部分を公開したければ、残りを頑張って作るんだと自分を納得させてます。未完成のままお蔵入りにするつもりか、みたいに自分を脅迫すると言った方が正しいか。

次が、簡単だと思ってたら意外や意外ってパターン。たとえば、話を単純にするために、ブロック崩しを例にとりますよ。壊れないブロックにボールが当たったとすると、以下のような動きを期待しますよね。


そりゃそうだ。ブロックの下に当たったら、下の方に反射してほしいし、左右なら左右。簡単じゃん。じゃ、複数のブロックの境界にあたった場合は?


もちろんこの場合も、同じように反射してほしい。でもまてよ。ボールがブロックにあたったかどうかの判定は、1対1で実行するように設計したぞ。つまり、左のブロックとボール、右のブロックとボールの2回、ヒットの判定をしてる。左のブロックで反射処理をしたら、右のブロックの判定で元に戻っちゃうじゃん。

さらに、こんな場合はどうする?


ブロックの角にちょうどボールがあたった場合。この絵だと、右下から左上にボールが移動中なら、そのまま180度向きを変えればいいんだけど、別の方向だったらどうなる?たとえば左下から入ってきて角をかすめた場合とか。ブロックの下に当たったのか、横にあたったのかの判定はどこで行う?

などなど。実際にプログラムを組んでみると、意外に単純じゃないことがわかる。特に今回のように、ボールが点ではなく面の場合は、いろんな問題が発生する。それをゲーム性を損なわないように折り合いを付けなきゃいけない。

てなことが、どんな簡単なゲームを作った場合でもチョコチョコと出てくるんですよ。不思議だね。で、それを何度か乗り越えると、完成させるのが楽しくなってやめられなくなると。わしゃ猿のナントカを繰り返してるんかい!ああそうだとも。

コメントは受け付けていません。