予測不能だがゲーム内の適切なボット

ストーリーは、サードパーティの2Dゲームについてです(上面図)。 これらは主に射手ですが、戦略も影響を受けます。 比較と理解を容易にするために、お気に入りの子猫を連れて行きます。 はい、はい、これで私たちをうまく助けるのは猫です。











それでは、ゲーム内のボットの通常の動作をどのように見ますか? 明確にするために、いくつかの例を検討します(図1)。







図 1左SASゾンビアサルト3および右Ninjago



長所と短所



長所:

1.数ラウンドで、ボットの軌道が予測可能になります。 勝利は簡単になります。

2.ボットを「丸で囲み」、常に無傷のままにすることができます。 ゲーマーは、「ワルツスワール」のようなコンセプトさえ持っています。

短所:

1.数ラウンドの間、ボットで遊ぶのは面白くなくなります。 ボットはポイントと報酬を求めてプレイし続け、敵対者ではなくなります。



私はすべての長所と短所を磨き始めるわけではありません。そのようなボットが敵ではないことは誰もが理解していると思います。 はい、これらのボットを1000個追加して弾薬を減らすことで、レベルを複雑にすることができます。 または、特に走らない限られたスペースに置いてください。 しかし、本質は変わりません。 開発者は条件を複雑にしますが、敵とは異なります。 開発の観点から見ると、これはよりシンプルで簡単です。



このようなボットの指の戦術を分析しましょう。





図 2画像は4つのフレームに分割されます。



1.最初のフレームでは、ボットとプレイヤーがお互いに敵対しています。 明確にするために、プレーヤー、ボット、プログラムコードを制御します。

2. 2番目のフレームでは、障害物を認識していないボットがプレイヤーに向けて発砲を開始します。

3. 3番目のフレームでは、ボットは障害物を撃ち抜けることができないため、障害物に直面し、回避する必要があります。

4.最後に、4番目のフレーム、本質は同じで、多くの障害があり、ボットは目標を達成するために軌道を絶えず変更する必要があります。 オレンジは、ボットの「可視性」を強調して無駄ではありません。 ボットにはインテリジェンスがないため、開発者はすぐに自分のタスクを伝えます。 この場合のサブタスクは、オブジェクトへの移動です。



だから私たちはそれを理解しました。 主なタスクは、 フライに到達し、クロールし、ターゲットにジャンプし、さらに最適なパスを選択することです。 自然界の多くの原則はこれらの原則と連携しますが、私は自分の意見でより理想的なオブジェクト-CATを選択することにしました。 猫はボットよりはるかに優れていますが、同じ原理を持っています。



オブジェクト「猫」の特性





図 3ランダムな動き



計画外の目標、ランダム、同時に正確な動き、そして最後に、戦術的思考。



人生の観察から、猫は水たまりを通過したり、4階以上の物体に飛びついたりすることはありません。 猫は午後と暗闇の中でよく見えますが、お気に入りの箱を「貫通」することはありません。 狩猟中または絶望から危険が生じたときに隠れます。



これで、ボットにこれを適用できるようになりました。これにより、ボットの特性が改善され、予測可能性が変化するため、複雑になります。



このようなボットを運転すると、閉ざされた部屋でもはるかに興味深いものになると思います。





パフォーマンスの改善





可視性ゾーン -ボットは最初に敵を見るべきではなく、可視性は「霧の霧」だけでなく、それを囲むオブジェクトにも制限する必要があります。 図 4.さらに、最初のフレームでは、ボットは、どんな距離にあるオブジェクトを通してでもすぐにプレーヤーを見ることができます。 2番目のフレームでは、レビューが制限され、ボットはターゲットの検索を一目で「プローブ」しようとします。 ボットは、プレーヤーを見つけるためにサブタスクを実行する必要があります。





図 4可視性



コンフォートゾーン -ボットは、殺されるか殺されるまで、あらゆる犠牲を払って突破します。 そうではないはずです。 ボットが自分の人生が終わりに近づいていることを理解したら、彼は隠れなければなりません。 または、例えば、力が等しくない、再び私は避難所を見つけなければなりません。 図 5.最初のフレームでは、ボットは古典的にランボーであると考え、2番目のフレームでは、ボットは生存の可能性を高めようとします。



猫は快適ゾーンを非常に愛しているため、外来の動く不明瞭な体との衝突を常に避けます。





図 5.コンフォートゾーン



影響を受ける領域は、プレイヤーやボットの興味深いタスクの1つである弾丸(ナイフ、手g弾)の打撃です。 バトルフィールド3では、抑制、弾丸の弾道、ダメージ力などのクールな効果が得られたとしましょう。 したがって、異なる射撃モードでは、同じ距離にある同じ武器を殺すことはできません。 カウンターストライクは、弾丸の広がりを除いて...





図 6左バトルフィールド3および右カウンターストライク



しかし、これらは私たちが話しているものと比較してすでにより強力なゲームです。 それでも、少なくとも基本的な例を取り上げることができます。 影響を受ける領域を制限する必要があります。 たとえば、オブジェクトとオブジェクト、そして最も重要なのは範囲です。 下の図は、敵が遠くなるほど、彼に当たる弾丸が少なくなることを示しています。 私はそれがすべて武器に依存していることを理解していますが、これはゲームの微妙さです。



上で言ったように、猫はジャンプできると確信していても、自分の能力を超えてジャンプすることはありません。 例外:6匹以上の猫





図 7相手の敗北の規模。



待機エリア -まあ、すべてがシンプルで、ボットは通常、ターゲットを見つけるためにヘッドレスとして着用されるため、プレイヤーは座って待つだけです。 予想通り。 しかし、同じ「コントラ」ボットは座ります! しかし、キャンピングカーボットはすでにプレイヤーにとって驚きです。



猫の寿命の90%は、ダウンロードモードとスタンバイモードです。 おそらくこれは彼をランダムな行為から救うでしょう。



移動の軌跡 -ボットが対象をバイパスする能力を持っているという状況を想像すると、なぜそれを飛び越える機会がないのですか? ここで、問題はすでにゲームの微妙さです...しかし、誰も通路の代替を除外しませんでした。 下の写真をご覧ください。 最初のフレームは、より近いため、古典的なボットアッパーアイルの選択を示しています。 2番目のフレームでは、ボットが一番下のフレームを選択します。3番目のフレームでは、ボットは通路の幅が広いことを理解しているため、操縦の余地が大きいことを意味します。





図 8運動の軌跡



残念ながら、チャック・ノリスだけが猫の軌跡を計算できます



より多くの方法を発明し続けることができますが、結論は1つだけです。 ボットはゲームで使用され、通常は弱い相手である実在の人物を置き換えます。 したがって、私たちは常により深刻な相手とプレイしたいと思うでしょう。 または、「バカではない」パートナーですらあります。



戦術的機動



偵察 -敵を見るとボットが発砲する古典的な手法で、近くに別の敵がいるかもしれないと疑っていません。 または、後方から移動する機会があります。 どうして? 下の図を見てください...もちろん、これは難しい敵です。立っている敵の1番の位置を覚え、その後さらに進んで敵の2番の位置を覚えているからです。 しかし、誰もそのようなレセプションを禁止していません。



猫は眠っていても、眠っていると思っていても、常に小川に乗っています。





図 8戦術演習



ファイティングスピリット -彼がボットにいた場合、彼はこう言います:-「私は一人で、怖い、私たちは多く、私たちはすべてを倒す。 私は一人で、マシンガンを持っています。ジョンジェイランボーです!」



コレクティブモード -本当のプレーヤーを撃ったときに、彼のパートナーが助けを求めて走りますが、ボットはそうしないのはなぜ興味深いのですか? はい、それらは互いに独立しているためです。 なぜそれらを集合体にしないのですか? やり直す必要はありません。たとえば、孤独なボットが同じボットに遭遇すると、近くに留まり始めます。 一人のボットが同志の会社に会うと、すべてがチームに集まります。 したがって、群衆の中を走り回るのは意味がありません。 したがって、この同じボットは後方から迂回し、チームは前方から敵を攻撃するという結論になります。 ここではすべてが明確だと思います。

繰り返しますが、集団モードでは、士気が上がり、個々ではなく実際に休憩を取ることができます。





図 9ルアー



ジェームズ・ボンドのような猫、いつも一人で、時には猫と一緒に。



-コレクティブモードがなくても、餌でボットはプレイヤーを「仲間にする」ことができます。 原則は次のとおりです。彼が撃った->彼は負傷した->彼は(横に)後退した。 集合モードがある場合、近くにボット仲間がいて、それを待つか、ただそこにいる可能性があります。 ボットをフォローしているプレイヤーは餌に落ちます。 近くに仲間がいない場合、ボットはTROLOLOになります。



タスクとサブタスク。



そして最後に、古典的なボットには2つのモードしかありません。メインタスク(目標に到達するため)と追加タスク(障害を避けるため)です。 撮影は考慮していません。 これはタスクではなくメソッドであるためです。

タスクとサブタスクを展開すると、ボットは予測しにくくなり、ボットではなくなります;)



PS:コード内のすべての例の実装は別の質問です。

PS 2。:みんなが私の説明の方法を理解してくれることを願っています。



All Articles