私がシューティングゲームを作る時、その実装方式は大きく2種類に分かれます。
「View固定方式」と「View移動方式」です(この名称は私が勝手につけたものです)。
A:「View固定方式」
1画面分のRoomを用意してViewを固定。
敵や地形は、プログラムによりViewの外側に生成しViewの中に移動してくる。
自機は固定された1画面の中で移動(背景がスクロールするので前に進んでいるように見える)。
敵を早回し(敵の編隊を倒すと次の編隊が出る)で出現させるタイプのゲームに適している。
細かい地形配置にはあまり向いていない(あらかじめ用意した地形オブジェクトのセットをプログラムで出現させることは可能だが、位置を計算して合わせるのは結構大変)。
高速スクロールに適している。
いわゆるキャラバン系 縦スクロールSTGに最適。
B:「View移動方式」
複数画面分の広いRoomを用意してViewを移動させる。
自機もView移動に合わせて移動(自機の位置にViewの移動距離を足す)。
敵や地形は、あらかじめRoomに配置。Diactivate化しておく(これをやっておかないとパフォーマンスが悪くなる)。Viewが一定の距離まで近づいたらActivateし、動き出す。
実装面ではActivate,Diactivateの制御が複雑で色々大変。
地形配置がやりやすく、地形と敵の出現位置をシンクロさせたい時に適している。
地形ありの横スクロールSTGに最適。
縦スクロールSTGの場合も、地上物が多く背景の変化に富んだゲームの場合はこちらが適している。
レイジングブラスターズ、ムーンダンサーなどはA方式、テラフレイムはB方式で作っています。
次回作は縦シューティングにしようと考えているのですが、どちらの方式にするか悩み中です。
高速スクロールで展開するゲームにする場合はAが良いのですが、ゆっくりとスクロールさせ、地上物や背景の変化を楽しめるゲームにする場合は、Bの方が良いと思います。方式は一度決めてしまうと変更が難しいので、ゲームの方向性を決めた上で、方式を見定めたいところですね。