コードスペランカー

ゲーム開発日誌など

当たり判定の多さ

 最近流行の弾幕シューティング場合、画面中に1000個以上の当たり判定がうろうろしてるわけなのだが、当たる対象は自機1つのみなんで、1フレームに弾の数だけ判定すれば良い状態になる。実は最近のPCの性能を考えるとあまりたいした処理ではない。
 では、敵Aが撃った弾が敵Bに当たる、それだけでなく弾Aと弾Bが当たることを考えるとどうなるだろうか?単純に考えると画面中のオブジェクトの二乗分だけ判定することになる。画面中に32個ほどのオブジェクトがあるだけで1000回を超えてしまう。
 まぁ、このあたりはゲームのルールそのものになるんで、どちらスゴイとか、優れているといった話ではなくて、どうやって爆発的に増えるあたり判定を軽減するかって話になる。
 今作っているものがダンジョン物であるので、壁を突き抜ける魔法とか有りかもしれないが、どちらかというと例外になる。自機が撃つ弾の類は壁にぶち当たると消えるのが自然な処理だ。
すると壁の数×弾の数の判定が必要になる。実際には全部の壁とやる必要はなく、はじめに当たった壁で処理は打ち切れるのでもう少し少なくすることが出来る。
それでも某弾幕シューティングのようなわけにはいかなくなったわけだ。
 あとはゲームの世界観とあわせて、どの程度まで当たらなくても不自然ではないか?というルールを決めていく作業になるだろう。