風薙鳥 ゲーム制作日誌

縦横両スクロール試行錯誤

げげんさんの復帰まで休むつもりだったシューティング「BraveFlap」制作ですが、少しいじったらどんどん作りたくなってしまって。
作りたいところだけ作っちゃいます。

ステージ途中で縦横のスクロールが切り替わるシステムですが、追加のアイデアを思いついたので、実装を試みました。
自機と敵機が「高度」の数値を持ち、自機は横スクロール時だけ高度を変えることができ、高度差の大きい敵機は表示も攻撃もしない、というものです。
縦スクロール時の座標は通常のX・Y座標、横スクロール時はX座標と高度で画面上の位置を決めます。
弾の進行方向にも高度を用意し、スクロール方向が変わっても自機狙い弾が自機を狙ってくるようにします。

実装はできたのですが、大きな欠点が。
ものすごく分かりにくい!
自然な感覚で操作できません。
さらに、表示用の数値が変わることで、スクロール方向切り替えで弾の速度が変わってしまう。
直感性は大事だと思うので、このシステムは優れているとはいえないでしょう。

失敗を教訓に発想を変えて、とにかく単純に考えてみました。
縦スクロールと横スクロールを、同一ステージながら、別のタイムラインにするというアイデア。
それぞれのスクロールの出現敵機は、全く別になります。
ただ、もう一方のスクロールの敵密度やアイテムの位置を、アイコンで確認できるようにします。
密度の低い方へ逃げる、アイテムを取りに行く、スコア狙いであえて高密度へ突っ込む、といったプレイスタイルが考えられます。

このアイデアをスクロールの切り替えのみ実装してみると、かなり分かりやすくなりました。
敵機をスクロール方向で共有しないので、座標を変換する必要はなく、自機の座標はそのままで表示のみ変えることが可能になります。
これなら直感的で、縦横両スクロールもそれなりに活かしているので、いいアイデアだと思います。

ただ、このままだと、スクロール方向を変えずにクリアすることも可能になります。
そこは、異様に高密度の場所を用意したり、ボスなんかにスクロール方向を変えなければ避けられない攻撃を用意したりして、ある程度プレイヤーをコントロールしようと思います。