トップダウンシューターでの敵の産卵方法


20

私はDoDonPachiIkarugaなどに類似したトップダウンシューティングゲームを開発しています。世界中のカメラの動きは、プレーヤーがカメラの可視領域内を移動できるように自動的に処理されます。

途中で、敵はパスに沿った特定のポイントで出現するようにスクリプト化されます。これは簡単に聞こえますが、これらのポイントを定義する2つの方法があります。

  1. カメラの位置:カメラがポイントを通過する際の「トリガー」スポーン
  2. パスに沿った時間:「30秒で、2人の敵を生成します」

どちらの場合も、カメラの相対位置と敵の行動が定義されます。

私がそれを見る方法、これらのポイントを定義する方法は、「レベルエディタ」またはあなたが持っているものがどのように機能するかに直接影響します。

あるアプローチが他のアプローチより優れているのでしょうか?

回答:


7

何らかの種類のマップエディターから表示されるノードとして、実際にスポーン位置を背景マップ上に配置することをお勧めします。2つの変数を使用してshmupスポーンを表すことができます。

  1. それらが最初に見える位置。これはポイントとして最もよく視覚化されます
  2. スポーンする必要があるときの下部画面からの距離。

次に、スポーンノードから下向きの垂直線として画面の下部からの距離を視覚化できます(敵のグレー表示バージョンなどとして視覚化できます)。画面の下部がその行に触れると、画面が表示されます。これにより、何らかのビジュアルエディタで敵のすべての編集を完全に行うことができ、ゲームのフロー全体の概要を把握できます。


Re 2)もちろん、エクスポート時には、これを逆にコーディングする必要があります(つまり、行ごとに、どのスポーンポイントがアクティブになるか、このシステムではいくつかのスポーンポイントが表示される前に注意する必要があります)。これは確かに最も論理的な方法です
。-カイ

1
注として、ノードを一括で簡単に移動できるエディターを使用していることを確認してください。shmupレベルを設定するときは、敵を挿入および削除し、レベルの途中でタイミングを絶えず調整します。すべてのエンティティを一度に1つずつ移動することは、あなたを殺します。
-ZorbaTHut

編集が本当に簡単になるので、このアイデアが大好きです。これは常にプラスです
クリスウォーターズ

7

ただし、大きなドミノ効果を気にせずにパスを変更できるため、スポーンするカメラの位置はおそらくより柔軟になります。

タイムスポーンを使用する場合、多くの敵のスポーンを変更する必要があるため、パスを追加または削除するのは大きな苦痛になります。

私が見る別の問題は、カメラの速度を調整することです。カメラを少し速くしたり遅くしたりしたからといって、敵のスポーンを微調整する必要が本当にありますか?さらに、スポーン時間またはそれらの微調整を見つけるために、レベル全体で恐ろしい回数プレイする必要があります。


2

「カメラ」をまったく動かさないことを強くお勧めします。常に同じ固定座標空間にいるプレイヤーと敵を考慮してください。敵と背景のスクロールは、両方とも独立したタイムラインに一致する必要があります。すべての計算が簡単になります。


私はあなたに半分同意します。間違いなくshmup物理学は偽物であり、実際に前進していない船に基づいています。それはあなたが考慮すべきカメラなど持っていそうであるように、質問がまだ有効である、と述べた
イアン

確かに、それは質問を無効にしません。まだ時間対(仮想)移動距離です。プレーヤーを前方に動かすか、背景を後方に動かすかは、概念的なレイヤーにすぎません。さらに、それらを分離して数学を簡単にすることで、背景(砲塔)に敵を配置したり、背景オブジェクトを避けたり、背景に衝突物を配置したりするなど、他のことをより難しくすることができます。
カイ

1

カメラの位置に行きます。時間を使用すると、マップファイル内の一部のグラフィック(カーブパスをたどる敵など)と敵​​のパスを一致させたい場合、かなり難しくなります。また、スポーンポイントを変更せずにスクロールを高速化できます。
逆に、スクロールの速度を上げると敵が速くなります。プラス(スピードアップが困難になる)またはマイナス(スクロール速度がペーシングに影響する)と見なすことができます。


1

また、スペースシューティングゲームにも取り組んでいます。私がしたことは、GameControllerと呼ばれる空のゲームオブジェクトを使用したことです。次のようなスポーン部分を制御するGameController.csというスクリプトコンポーネントを追加しました。

  • スポーンポイントのリストを保存する[配列]
  • 各敵に特定の重みとポイントを与えます。敵が高い体重を持っている場合、敵の産卵率を制御する体重は、各レベルで選ぶ良い可能性を得ました。
  • その後、毎回現在のレベルをチェックし、数字が重量よりも小さい場合はランダムな数字を選択し、その敵に関連するものを生成します。役に立てば幸いです。

http://www.youtube.com/watch?v=VqFJsU63GRo


0

大きなマップの背景にそれらを配置し、そのマップ上の初期移動パスを含めます。そうすれば、パスとタイミングの両方を別々に変更する代わりに、意味のある方法でカメラのパスを後で変更できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.