格闘ゲームにAIを実装する方法


8

2D戦闘機を作りました http://neighr.com/mif/index.html昨日。

2番目の「プレーヤー」はほとんど何もしません。実際には、何もありません。正直なところ、このような対戦相手が出る前にゲームを作ったことはありません。

だから私の質問は、対戦相手のAIプログラミングからどのように始めるのですか?チュートリアル、ベストプラクティスはありますか?挑戦してほしい(自分ではなく、プレイヤーにとって)。

回答:


12

ここではNグラムが人気です。基本的な考え方は、プレイヤーが行った動きのリストを保持することです。次に、プレーヤーの最後のNの動きを考慮して、彼の次の動きが何であるかについての確率のパーセンテージを計算できます。

あなたのゲームは、各手に効果的なカウンターとブロックのデータベースを持っている必要があります。

AIの攻撃モードの場合でも、基本的なプレーヤーモデリングで、ブロックまたはカウンターで最も問題が発生した攻撃を特定し、それらを再利用できます。

AIの難しさについては、AIを簡単なレベルに下げるだけです。最悪のAIモードは選択肢を逆転させる可能性があります(つまり、プレーヤーが通常パンチをブロックしていることがわかっている場合、パンチをスローするためのシェーンが低いではなく高いです)。最高難易度モードは、ハンディキャップのないアルゴリズムを使用し、プレイヤーのがらくたを打ち負かす可能性があります。

ゲームをもっと楽しくしたい場合は、AIに個性を加えることもお勧めします。キャラクターの中には、もっと罵倒したり、攻撃よりも防御力が高い人もいます。プレーヤーは、AIキャラクターに人間の知性を帰することができるのを楽しんでいます。


3

正直なところ、いくつかのトップアンサーがより複雑なAIを推奨しています。これがゲームの初期の試みであり、コードにまだそれほど熟練していない場合は、より馬鹿なAIを試すことができます

たとえばの単純なシステム

待機(0〜3秒)

ロールd6

6つのアクションから選択します。

またはあなたが持っているアクションの数に応じて同様のもの


2

これは私が格闘ゲームのAIを作る方法です。

難易度がハードに設定されている場合は、プレーヤーから離れたさまざまな距離に適した(charに応じた)移動のリストを作成し、移動を選択してもらいます。彼に強い打撃の動きを選ばせます。それ以外の場合は、中程度の動きではなく、簡単ではない動きを選びます。また、難易度に応じて、プレーヤーが実際に持っている範囲とは異なる範囲を選択するランダムな要因を投入することもできます。決定の量は、彼が各動きの3秒後に評価する難易度に基づいている必要があります(簡単)2秒(中)ect。毎回彼の行動方針を決定します。

要約し、距離(移動セット)を選択し、移動を選択してから、同じことを行うまでに待機する時間を選択します。次の行動を待つ間に、彼らは偶然に略奪して身をかわすことができます。お役に立てれば。


+1これは非常にシンプルですが、絶対的に実行可能で効率的なソリューションです。たまたま、このようなシステムが商用ゲームで使用されているかどうか知りませんか?:)
ミゲル

いいえ、しません。私はほとんど経験から話していません。だからそれが良いなら、私はそれを考えました。その後、確かに私は最初ではありません。Nの動きは賢くなります。しかし、もっと難しい。
Kaliber64 2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.