タグ付けされた質問 「ai」

ゲーム内エンティティがその動作について決定を行う方法の設計および/またはロジック。

3
ワードゲームの限られたAIボキャブラリーをシミュレートするにはどうすればよいですか?
進行中のほんの一握りの競争的な単語ゲームがあり、他の人間の対戦相手との対戦(ほとんど非同期)が優先されますが、AIと対戦するオプションをプレイヤーに提供したいと思います。辞書を持っているので、プレイ中にAIに簡単に完全な辞書知識を与えることができますが、AIが慣れていない単語を定期的に再生することは、プレイヤーにとってイライラするような経験になることです:私が知っている言葉を使っただけなら!」— AIの全体的なスキルレベルが低下しても。 (未)調整されたプレイパラメーターと弱いボキャブラリーの組み合わせにより、弱いAIを作成したいのですが、そのボキャブラリーを「一般的な」単語に限定する方法がわかりません。いくつかの単語頻度リスト(たとえば、Project Gutenbergの書籍に表示されるすべての単語のリストを、出現回数で並べ替えたもの)を見てきましたが、それらはすべて、多くの偽陰性を持っています。 tは実際の頻度で表示されます(たとえば、CHEETAHはVOCATIVEまたはSUTTEEよりもPGテキストで表示される頻度が低くなります)。検索結果を使用して単語の人気の推定値を取得しようとしましたが、誤った推定値を偽りやすい傾向があります。 誰かが単語の大まかな使用頻度を決定する他の良い方法、またはプレイヤーにとって自然に感じる単語ゲームAIを制限する他の方法に関する提案を持っていますか?
14 ai 

4
RTSゲームAIスレッド
リアルタイム戦略ゲームをゼロから作成するプロジェクトがあります。私はまだ計画の初期段階にありますが、機構を見るために少しプログラミングをしています。 プログラミングの方法を知っています。また、コンピュータープレーヤーのゲームクラスとルールベース(ステートマシン)AIをどのように構成するかについても良い考えがあります。 特定のユニットに特定の動作を与える(しかし、スカウト、ミッションルートに従う、ポジションを保持する(接近する敵を攻撃する、または圧倒された場合は退却する)など)Doctrineを開発したいなど 教義はユニットにのみ適用されるため、ユニットの観点があり、マップ全体の状況については認識されません。 コンピューターAIは、表示されているマップ全体を分析し、別のルールセットに応じて各ユニットを割り当てるソクトリンを決定します。 OpenGLを使用してC#でこれを行っています。 今のところ、私は主な構想を始める前に、テストには多くのことはなく、ほんの少ししかありません。すべてのゲーム処理(更新、戦闘、戦闘などを次々に呼び出す)が発生するゲームループがあり、Application.Idleイベントの場合は非常に頻繁に呼び出されます。 今、私は疑問に思っていました。ゲームループでは多くの処理が必要になるため、コンピューターAIとユニットはそのループでアクションを選択する必要がありますか、それとも遅すぎますか? すべてを同時に実行したい場合、コンピューターAI用に別のスレッドを作成する必要がありますか?それとも、ユニットごとに個別のスレッドですか? マルチスレッドの経験はあまりありません。これに最適なアプローチは何でしょうか?
14 c#  ai  multithreading 

1
アニメーションにブレンドツリーとステートマシンを使用する場合
3Dアニメーションキャラクター(Unity)で初めてゲームを作成した経験豊富なゲーム開発者の趣味で、ブレンドツリーとアニメーションステートマシンを使用するタイミングを判断するのに苦労しています。概念的には両方を理解していますが、Unityと他のソースの両方のチュートリアルで、キャラクターのアニメーションに使用されるブレンドツリーとアニメーションステートマシンの両方を見てきました。誰かが私を正しい方向に向けることができることを望んでいるのに、いつ/なぜ他の人よりも優れているのか分かりません。 私のゲームは3人称アクションRPG a'la WoWまたはKOTORまたはMass Effectです(私が知っている異なるシステムですが、視点と戦闘スタイルは高レベルでちょっと近いです)。攻撃、ブロック、偽装、死亡、ウォーキング、ランニング、ジャンプ、射撃などのアニメーションが大量にありますが、それらを自然にシーケンスする方法はわかりません。 移動に使用されるブレンドツリーを見たことがありますが、これはキャラクターの動きを滑らかにしようとするときに理にかなっていますが、そのブレンドツリーから攻撃状態に移行する方法がわかりません。等)。攻撃/死/回避の状態にモーション状態からブレンドツリーを作成する必要がありますか?ステートマシンだけを使用して、さらに制御できますか?ステートマシンには非常に注意が必要です。移行の肥大化は非常に一般的であり、ブレンドせずにジャンキーアニメーションシーケンスを作成する可能性が大きいと思われるためです。 Unityキャラクターコントローラーを使用し、独自のロジックスクリプトを記述してそれを駆動する予定です。AIには、組み込みのnavメッシュエージェントを使用します。キャラクターコントローラーアニメーションはAIアニメーションとは異なる方法で処理されますか? 洞察は大歓迎です! ありがとう

1
Bomberman AIにインテリジェントな爆弾配置を与える
BombermanのAIアルゴリズムを実装しようとしています。現在、私は実用的ですが、あまりスマートではない初歩的な実装をしています(現在のAIは爆弾を配置することに熱心です)。 これは、私が実装を試みた最初のAIであり、少し立ち往生しています。私が念頭に置いているより洗練されたアルゴリズム(より良い決定を下すことを期待しているアルゴリズム)は複雑すぎて、良いソリューションにはなりません。 Bomberman AIを実装するための一般的なヒントは何ですか?ボットをより防御的または攻撃的にするための根本的に異なるアプローチはありますか? 編集: 現在のアルゴリズム 私の現在のアルゴリズムは次のようなものです(擬似コード): 1)爆弾を配置してから、配置したばかりの爆弾を含むすべての爆弾から安全なセルを見つけます。そのセルを見つけるには、4つの方向で繰り返します。安全な分岐セルを見つけて時間内に到達できる場合(例:方向が上または下の場合、このパスの左または右にあるセルを探します)、爆弾を置いて移動しても安全ですその方向に。 2)発散した細胞を見つけられない場合は、爆弾を置かずにもう一度見てください。今回は、安全なセルを一方向にのみ探す必要があります(そこから分岐する必要はありません)。 3)それでも安全なセルが見つからない場合は、何もしないでください。 for $(direction) in (up, down, left, right): place bomb at current location if (can find and reach divergent safe cell in current $(direction)): bomb = true move = $(direction) return for $(direction) in (up, down, left, right): do not place …
13 algorithm  ai 

2
射撃でインテリジェントな敵を実装する方法は?
誰もが知っている、非常に単純なシューティングを想像してください。 あなたはプレイヤーです(緑)。あなたの動きはX軸に制限されています。私たちの敵(または敵)は画面の上部にあり、彼の動きもX軸に制限されています。プレイヤーは敵に弾丸(黄色)を発射します。 プレイヤーの弾丸を回避するのに本当に優れているはずの敵にAIを実装したいと思います。私の最初のアイデアは、画面を個別のセクションに分割し、それらに重みを割り当てることでした。 2つの重みがあります。「弾丸の重量」(灰色)は、弾丸によって課される危険です。弾丸が敵に近ければ近いほど、「弾丸の重量」0..1が高くなります(ここで、1が最も危険です)。弾丸のないレーンのウェイトは0です。2番目のウェイトは「距離ウェイト」(ライムグリーン)です。すべての車線に0.2移動コストを追加します(この値は現在では任意であり、調整可能です)。 次に、重みを追加し(白)、重みが最も小さいレーンに移動します(赤)。しかし、このアプローチには明らかな欠陥があります。最適な場所は、 2つの入ってくる弾丸の間(白い矢印で示されているように)であるため、極小値を簡単に見落とす可能性があるからです。 だからここに私が探しているものがあります: 弾丸の脅威を課す場所がない場合でも、弾丸嵐を乗り越える方法を見つける必要があります。 敵は、最適な(またはほぼ最適な)ソリューションを選択することで、確実に弾丸をかわすことができます。 アルゴリズムは、弾丸の移動速度を考慮できる必要があります(異なる速度で移動する可能性があるため)。 さまざまなレベルの難易度を適用できるようにアルゴリズムを微調整する方法(超知能の敵には馬鹿です)。 敵は弾丸を避けたいだけでなく、プレーヤーを撃つこともできるため、アルゴリズムはさまざまな目標を許可する必要があります。つまり、弾丸をかわすときは、敵がプレイヤーを射撃できる位置が優先されるはずです。 それでは、これにどのように取り組みますか?このジャンルの他のゲームとは対照的に、私は少数の、しかし非常に「熟練した」敵を大勢の愚かな敵の代わりに持ちたいです。

7
チェスのようなAIは、ターンベースの戦略ゲームでは本当に適用できませんか?
明らかに、移動の完全なツリーにmin-maxアルゴリズムを適用しようとすると、小さなゲームにしか機能しません(すべてのチェス愛好家に謝罪します。ボードが多くの場合100タイルより広く、サイドのすべてのピースが同時に移動できる典型的なターンベースの戦略ゲームでは、min-maxアルゴリズムは適用できません。 各深さでNボード構成に制限する部分的な最小-最大アルゴリズムでは十分ではないのではないかと思っていましたか?遺伝的アルゴリズムを使用すると、評価機能に適した多くのボード構成を見つけることができる場合があります。願わくば、これらの構成が長期的な目標に適していることを願っています。 これが以前に考えられていなかったなら、私は驚いたでしょう、そして、試みました。ありますか?どのように機能しますか?
13 ai  turn-based 

5
銃撃戦の敵の進化
敵がプレイヤーに対する相対的な成功への反応として実際に進化するようなシューティングゲームはありますか? 進化するということは、それぞれの敵が行動をコードする遺伝情報を持っていることを意味します。長持ちする、またはより多くのダメージを与える敵は、遺伝子を混合して新しい敵を作成することができます。これにより、敵は特定のプレイヤーにより良く適応するようになります。

2
オブジェクトがターゲットを導くために敵の位置を予測する
2Dゲームには、敵に向かって自動的に発砲することでプレイヤーを支援するAIタレットがあります。敵の現在位置をターゲットにするのではなく、インテリジェントに発砲させてターゲットをリードさせたいと思います。したがって、敵と砲塔の発射体の両方の(常に一定の)速度と位置ベクトルが与えられた場合、発射体が敵と交差(およびヒット)するために砲台が目標とする実際の位置を表すベクトルを見つけるにはどうすればよいですか? 数学、アルゴリズムなどを説明する記事へのリンクはありがたいです!
13 algorithm  ai  aiming 

1
さまざまな移動タイプを処理する経路探索アルゴリズムはありますか?
私はBattleTechボードゲームシミュレーターhttp://en.wikipedia.org/wiki/BattleTechのボットを開発しています。これはターンベースです。 ボードは六角形に分割され、それぞれが異なる地形タイプと標高を持っています。他のロボットを破壊するには、それらの上を移動するロボットを運転します。 ダイクストラとA *のパスファインディングアルゴリズムしか知りませんが、問題は3種類の動きがあることです:いくつかの六角形を歩く、走る、ジャンプする(それぞれに独自のルールがあります)。ウォークアンドランはほぼ同じです。 最適なパスは、組み合わせまたは各移動タイプです。マップの例はこちらhttp://megamek.info/sites/default/files/isometric_view.png この複雑な経路探索に適したアルゴリズム、または各運動タイプのA *結果を組み合わせる方法を知っていますか?

4
ターンベースのゲームでの戦略的AI?
戦略的なAIエンジンがどのように機能するかに興味があります。たとえば、ターンベースの戦略ゲームで軍隊を配置する場所を評価する方法などです。 目標ベースのAIがどのように機能するかはわかっていますが、それはCivilizationのようなゲームで何を構築または研究するかを決定するための良いアプローチだと思います。 しかし、部隊/部隊の戦術的/戦略的配置。これらのことを評価するためにどのアルゴリズム/戦略が使用されていますか?参考文献/記事はありますか?

2
大規模なネットワーク化された世界でエンティティのパス検索と移動を処理する方法
32x32ボックスに分割されたタイルを使用した上記の画像を考慮すると、近くにいる近くのプレイヤーに「aggro」とマークされたエンティティがあります。このモンスターに理想的にはプレイヤーを追いかけたい(そしてしばらくの間プレイヤーを追い続けたい)。現在、私の唯一の動きは、リモートエンティティの単純な補間器で行われます。これは、動きの更新間のギャップがかなり小さいために機能します。 モンスターがいる位置に移動したいことをクライアントに伝えることができません。それはエンティティが本来よりもはるかに速く移動するためです(これはおそらく補間coに数学を使用して解決できます) -効果的)しかし、もっと重要なのは、現実的に見えず、壁をクリップする可能性があることです!回避できる場合は、サーバー上の動き全体をシミュレートしたくありません...できると思いますが、それでもクリッピングの問題は解決しません。解決策には、定期的なノード更新をパス検索および送信し、それらに動きをシミュレートさせることが必要ですが、確信はありません。 ありがとう!

1
事前に計算された経路探索はまだ関連していますか?
環境 Old Lucas Arts(ScummVM時代)のポイントアンドクリックグラフィックアドベンチャーゲームは、事前に計算された経路探索を使用していました。テクニックの大まかな概要は次のとおりです。 ステップ1 各部屋の床は「ウォークボックス」と呼ばれるものに分割され、ナビゲーションメッシュのノードとほぼ同等でしたが、台形に限定されていました。例えば: ______ _____ _________ _____ \ A | B | C | D \ \_____| | |_______\ |_____| | |_________| ステップ2 オフラインアルゴリズム(ダイクストラやA *など)は、ノードの各ペア間の最短パスを計算し、使用される開始ノードと終了ノードによって各次元でインデックス付けされた2Dマトリックスにパスの最初のステップを格納します。たとえば、上記のウォークボックスを使用します。 ___ ___ ___ ___ | A | B | C | D | <- Start Node ___|___|___|___|___| | A | A | …

4
キャラクターはどこで止まりますか?
何年も前、私は予算の擬似3Dゲーム用にAIをいくつかコーディングしました。計算方法が1つありましたが、これが最善の方法を実際に理解したことはありませんでした。例えば: 敵は現在X = 540.0にいます。 敵はフレームあたり10ピクセルで右に移動しています。 敵が停止したい場合、速度はゼロに達するまでフレームごとに1ピクセルずつ低下します。 敵が完全に停止したときに敵が終わる位置を取得する簡単な公式はありますか?最終的にはオフセットを事前計算してハードコーディングしましたが、これは私のニーズには合っていましたが、速度の異なる敵に対して個別に計算する必要がありました。

3
移動/障害物の回避
障害物(赤)を配置できる「ゲーム」を作成したいのですが、黒点がそれを避け、緑のターゲットに到達しようとします。 非常に簡単な方法を使用して、黒い点が赤に近く、方向を変え、しばらく移動した後、緑の点に進みます。 コンピューター制御の「プレーヤー」の「スムーズ」パスを作成するにはどうすればよいですか? 編集:滑らかさが主なポイントではありませんが、赤いブロック「壁」を回避し、それに衝突してそれを回避しないようにします。 基本的に3つのポイントしかない場合、どのようにパス検索アルゴリズムを実装できますか? (そして、あなたが複数の障害物を置くことができたら、それは物事をはるかに複雑にしますか?)
12 ai  path-finding 

3
ユニットの敵の「認識」をどのように実装すればよいですか?
Unity3dを使用して、RTS / TDハイブリッドプロトタイプゲームを開発しています。ユニットと敵の間の「認識」のための最良のアプローチは何ですか?すべてのユニットがすべての敵までの距離をチェックし、範囲内であれば交戦するのは正気ですか? 私が今行っているアプローチは、すべてのユニットにトリガー球を置くことです。敵がトリガーに入ると、ユニットは敵を認識し、距離チェックを開始します。これはいくつかの不必要なチェックを保存しますか? ここでのベストプラクティスは何ですか?
12 ai  unity  rts 

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