最初の車両戦闘ゲームは、意味のあるターンを軸に構築します。プレイヤーには固定式前方武器を備えたバギーを与え、角の近くに装甲クローラーを配置し、クローラーが倒れるまで脱出パッドをロックします。ドライバーが速すぎる速度で接近すると、ブレーキでバギーが射撃レーンを通過してしまう可能性があります。クリーンな接近は、ノーズをターゲットに合わせ、脱出経路を残します。
この架空の貨物ヤードは、スムーズなドライブを追加する前に各移動を確認できるように、小さなグリッドを使用しています。ドライバーには、遭遇中ずっと1つの役割があります。車体を、その武器がターゲットの後部に届く位置に置き、パッドに向かいます。

速度と進行方向を車両に保持する
7x6のグリッドを使用します。列は東に向かって0から6まで、行は南に向かって0から5まで数えます。バギーは(1, 4)に東向きで速度ゼロから開始します。静止したクローラーを(4, 2)に北向きで配置し、脱出パッドを(6, 4)に配置します。クローラーの南面がその後部です。その面にグリルマークを付け、プレイヤーがレーンに入る前に脆弱な側面を識別できるようにします。
バギーの位置、進行方向、速度を各ステップ後に記録します。ドライブコマンドはまず速度または進行方向を変更します。その後、バギーは解決された進行方向に沿ってそのセル数だけ移動します。速度1の場合、ターンは次のセルの方向を変更します。速度ゼロの場合、同じターンは進行方向のみを変更します。この違いにより、プレイヤーは移動中の接近と静止からの射撃のどちらを選択するかを決めることができます。
| ドライブ入力 | 移動前の効果 |
|---|---|
| アクセル | 速度を1増加させ、最大2まで。 |
| コースト | 現在の速度と進行方向を維持する。 |
| ブレーキ | 速度を1減少させ、最小0まで。 |
| 左または右にターン | 90度回転し、速度を維持する。開始速度がゼロまたは1の場合のみ受け入れる。 |

速度2で要求されたターンは、移動や射撃の前に拒否し、ステップカウンターを変更しません。プレイヤーがブレーキをかける必要があることを理解できるように、入力が拒否された理由を表示します。受け入れられたステップでは、移動を1セルずつ解決します。次のセルがヤードの外側にあるか、無傷のクローラーが含まれている場合、最後の有効なセルで停止し、速度をゼロにします。各セルを確認することで、2セルの移動がターゲットを通過してしまうのを防ぎます。
後部を合わせ、脱出する
各受け入れられたドライブコマンドに併せて、任意のFire入力を1つ許可します。Fireはバギーの最終セルと進行方向を使用し、直線上の次の2セルをチェックします。4列からの北向きの射撃は、(4, 4)または(4, 3)からクローラーの後部に届くことができます。前面または側面に届く射撃は装甲と報告され、クローラーは無傷のままです。届かないレイはミスと報告されます。これらの結果に対して異なるキューを使用し、プレイヤーが側面を変えるべきか、アライメントを変えるべきかを判断できるようにします。

| ステップ | ドライブとFire | 期待される状態 |
|---|---|---|
| 1 | アクセル | (2, 4)、東、速度1。 |
| 2 | コースト | (3, 4)、東、速度1。 |
| 3 | コースト | (4, 4)、東、速度1。 |
| 4 | 左にターンしFire | (4, 3)、北、速度1。後部ヒットで脱出がアンロックされる。 |
| 5 | 右にターン | (5, 3)、東、速度1。 |
| 6 | 右にターン | (5, 4)、南、速度1。 |
| 7 | 左にターン | (6, 4)、東、速度1。バギーが脱出する。 |
クローラーの除去は目標の変化であるため、ヒット後もバギーをプレイヤーの制御下に残します。脱出を確認する前にFireを解決します。ロックされたパッドへの到着は、ランをアクティブなままにし、どの条件が残っているかを表示します。
AIに1つのアリーナとステップ制御を与える
ヤード、制御ルール、脱出条件から始めます。SEELEのAI Game Makerは、書かれたゲームループを最初のビルドに変えるための入口点です。最初のパスではグリッドを使用し、悪い射撃が操縦、移動、または後部ヒットルールのどれから来たかを判断できるようにします。
7 x 6 のグリッド上で、小さなトップダウンブラウザ車両戦闘ゲームを作成します。
Xは東に向かって0から6まで増加し、Yは南に向かって0から5まで増加します。
バギーを(1,4)に東向きで速度0から開始します。静止したクローラーを
(4,2)に北向きで配置し、脱出パッドを(6,4)に配置します。
デバッグステップごとに1つのドライブコマンドと任意のFireを使用します。
アクセルは速度に1を加え、最大2まで。コーストは速度を維持します。
ブレーキは1を減算し、最小0まで。左と右は移動前に90度回転し
速度を維持します。開始速度が2の場合、位置、速度、進行方向、ステップ数、
射撃を変更せずにターンを拒否します。
解決された速度をセルごとに移動します。境界と無傷のクローラーが移動をブロックします。
最後の有効なセルで速度0で停止します。
移動後、Fireは現在の進行方向に沿って最大2セルをトレースします。
クローラーの南面がその後部です。北向きの後部ヒットはそれを除去し
パッドをアンロックします。前面または側面ヒットは装甲と報告します。
無傷のクローラーに届かないレイはミスと報告します。
その後、バギーがアンロックされたパッド上にあり、ランを終了できるか確認します。
位置、速度、進行方向、パッドの状態、最後の入力結果を表示します。
バギー、クローラー、パッド、ステップカウントを初期状態にリセットします。
まず7つのステップを実行します。その後、分離されたチェックを使用します。速度2で左ターンとFireを要求し、何も変更されないことを確認します。(2, 2)で東向き速度ゼロから、コーストとFireはクローラーの側面に届き、装甲と報告されるはずです。次に、無傷のクローラーの隣でブロックされた移動を確認し、除去する前にロックされたパッドに到着します。脱出からリセットし、クローラーとロックされたパッドの両方が戻ることを確認します。
ブレーキを変更し、同じ接近を再生する
新しいランでより速い接近を試みます。2回アクセルを踏んで、(4, 4)で東向き速度2に到達します。その後、ブレーキ、続いて左ターンとFireを行います。ヤード、ターンルール、射撃範囲、入力を固定します。ブレーキが速度を1点または2点除去する場合の期待される結果を比較します。
| ブレーキ減量 | ブレーキ後のセルと速度 | 左ターンとFire |
|---|---|---|
| 1 | (5, 4)、速度1。 | 北に(5, 3)へ移動。レイは5列を下ってミスする。 |
| 2 | (4, 4)、速度0。 | その場で北にターン。レイは距離2で後部に届く。 |
これらは例のルールからの期待される状態です。7ステップの遅いルートは、元のブレーキで既に機能します。最初のビルドでは、ドライバーがその速い接近から回復できるようにしたい場合は、より強力なブレーキを維持します。接近の計画がテストしたい判断である場合は、長い停止距離を維持します。2つのビルドを比較する際は、ゲームルールを1つずつ修正するガイドを使用してください。
1つの価値のあるターンから始める
1つの角、1つの脆弱な面、ヒット後の1つの走行場所を使用します。SEELEのAI Game Makerで車両戦闘プロトタイプを開始し、ステップトレースを使用して、ドライブが得られる射撃を変えるかどうかを確認します。
よくある質問
なぜ最高速度でのターンを拒否するのですか?
この制限は、ターン前にブレーキに役割を与えます。現在の速度を表示し、ターンが拒否された理由を表示します。プレイヤーが許可された速度までブレーキをかけた場合、次のターンがどのセルに届くかを見られるはずです。
最初の車両は固定式武器を使うべきですか、それとも自由アームですか?
操縦が次の射撃がどこに向かうかを決定することを望む場合は、固定式前方武器を使用します。自由アームは、逃走しながら射撃するなど、異なる挑戦に適しています。後で追加する場合は、ブレーキと進行方向がまだ選択を生み出しているか確認してください。
グリッドをスムーズなドライブに置き換えるにはどうすればいいですか?
グリッドを望む動作の参照として保持し、スムーズなバージョンで速度、ブレーキ、ターンルールを定義します。ドライバーがまだ遅いコーナーまたは射撃を通過するリスクのある速い接近を選択できるか確認してください。
いつ移動する対戦相手を追加すべきですか?
プレイヤーがミスと装甲ヒットを区別でき、ターンが拒否された理由を説明できる場合に1つ追加します。1つの予測可能な移動パターンから始めます。対戦相手に武器や広いルートを与える前に、それが後部接近をどのように変化させるかを確認します。


