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

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

20
ひそかに非競争的なゲームAIを作るのは非倫理的ですか?
いくつかのゲームでは、AIはプレイヤーが知らないうちに簡単な時間を過ごせるように設計されています。これは、最初に出現したときに0%のチャンス、敵が振り向かないことで忍び寄ること、またはプレーヤーが何度も怪我をしたり再起動したときに難易度を下げることができます。 ボードゲームやスポーツの終わりに、人間は一生懸命やろうとしなかったと言われたら気分を害するでしょう。 AIにも同じ倫理が存在しますか? 編集タイトルのように、私の主な関心事はプレーヤーからハンディキャップを隠しておくことでした。例えば、シューターをプレイするとき、AIが人工的な反応時間と貧弱な目標を持っていることをプレーヤーが知っていると期待するのは合理的ですが、私の質問は敵が最高の武器を使用していない、またはプレイヤーが怪我をしたときに難易度を下げるなどのことを隠します。
121 game-design  ai  balance 

9
コンピューターの対戦相手が生きていると感じるのはなぜですか?
RPGゲームでAIをよりリアルに感じられるようにすることについて述べている推奨ブログやホワイトペーパーはありますか?(具体的には順番に基づく戦闘。) 私は何かがそこになければならないことを知っていますが、私はAIの背後にあるアルゴリズムについて述べている論文だけを見つけています。私は「これこそが、コンピューターの対戦相手を生き生きと感じさせるもの」の流れに沿ってもっと見ています。リスクを冒す、楽になる、後退するなど... 非常に多くの素晴らしい答えがあり、それらのいくつかを受け入れられることを望みます。みんな、ありがとう!
107 ai  game-mechanics 

5
Dwarf Fortressは、パフォーマンスを失うことなく、どのように多くのエンティティを追跡しますか?
ドワーフ要塞では、数百のドワーフ、動物、ゴブリンなどを一度にゲームに入れることができ、それぞれに独自の複雑なAIと経路探索ルーチンがあります。私の質問は、これがどのように顕著な減速を引き起こさないのですか?各Dwarfは独自のスレッドで実行されますか?

9
ホーミングミサイルがターゲットを周回するのをどのように防ぐのですか?
私は摩擦のない2D宇宙ゲームを開発しており、ホーミングミサイルをそのターゲットに向けることが非常に簡単だと感じています。私は反軌道戦略について興味があります。 簡単な例は、ターゲットに向かって直接加速するホーミングミサイルです。そのターゲットがミサイルの軌道に垂直に移動して停止した場合、ターゲットへのミサイルの加速はそれ自体の速度に打ち勝つには十分ではなく、ミサイルはターゲットの周りの軌道に打ち込まれる可能性があります: フレーム1では、ミサイルは目標に向かってまっすぐに向かっていますが、問題はありません。 フレーム2では、示されているようにターゲットが新しい位置に移動しました。ミサイルはターゲットに向かって直接(赤で)加速し続けますが、既存の速度により、ターゲットがかつてあった場所(黒で)に向かって移動し続けます。 フレーム3では、ミサイルの速度がミサイルをターゲット(黒)の周りに運び続け、加速ベクトルがミサイルをターゲットに向かって必死に引っ張ろうとします。 フレーム4以降では、ミサイルはターゲットの周りの安定した軌道に落ち、目標に到達しません。黒い矢印は速度ベクトルを示し、赤い線は同じ瞬間の加速度ベクトルを示します。 空間に摩擦がないことを考えると、ミサイルの速度を遅くして軌道を崩壊させるものは何もありません。可能な解決策は、ターゲットの「背後」に照準を合わせることであり、これにより軌道が閉じられますが、これはプログラミングの観点からどのように行われますか? ホーミングミサイルを目標に到達させるにはどうすればよいですか?
78 2d  ai 

2
ユニットスロットとは何ですか?
JP LeBretonがジョン・ロメロと一緒に座ってDoomでプレイした「Devs Play」S01E05を見ていましたが、ロメロは彼らが行ったゲーム/レベルデザインの選択について説明しました。 両方ともやり取りする素晴らしい点がたくさんありますが、私には完全に理解できないものがあります。多分それは私の言葉の壁か何かなのかもしれませんが、そうです- ユニットのスロット化。 ビデオの短い部分で、2分56秒から始まり、ロメロは現代のゲームのスロットについて少し笑っています。 私はそれの概念を把握していないようです。ユニットはあなたに向かって自動反撃し、キューの中で攻撃しているのですか?それとも、彼らの攻撃はあなたを圧倒しないように同期されているのでしょうか?それとも...一体何がスロットなのでしょうか?


9
AIを作成するのは初めて-どこから始めますか?[閉まっている]
私はゲームプログラミングの初心者であり、互いに戦う2つの宇宙船で基本的な2Dトップダウンスペースゲームを作ろうとしています。私はユーザー制御の宇宙船でうまくやっていますが、AIのプログラミングを開始する方法すらわかりません。特定の方法/パターンはこの状況に適していますか?どこから始めますか?

5
ハック&スラッシュゲームでキャラクターを動かすための良いテクニックを探しています
ハック&スラッシュゲームを作っているので、たとえばTorchlight、Diabloなどでキャラクターを動かしたいです。現在、フロアのすべての歩行可能な領域にノードのセットを生成しています。どこかをクリックすると、プレイヤーはノードの補間パスを通過します。これはあまり自然に見えません。プレイヤーはロボットのように動きます。敵もこのノードシステムを移動に使用し、同じ問題を共有していますが、もう1つ問題があります。敵がプレイヤーを発見すると、彼らは最短距離で彼に向かいます。時々、彼らは同じパスを使用し、プレイヤーを囲むのではなくプレイヤーに並ぶことがあります。敵に異なる経路を選択させ、プレイヤーを囲む方法を知りません。この問題を解決する方法を知っていますか?キャラクターの動きに別のアプローチを使用すべきでしょうか? 私の現在のテクニック: 懐中電灯のスクリーンショット: - -更新 - - これらの状況に対処する方法を知りたい: 状況1、途中で動的/静的な障害が発生する 状況2、敵にはプレイヤーへの道があります(私たちと戦うためにキューに入ります)
51 ai  rpg  movement 

7
RTSゲームの経路探索はどのように機能しますか?
[stackoverflowからクロスポスト] Warcraft 3やAge of Empiresなどのゲームでは、AIの対戦相手がマップ上を移動できる方法はほとんど無限に見えます。マップは巨大であり、他のプレイヤーの位置は常に変化しています。 これらのようなゲームのAI経路探索はどのように機能しますか?このようなセットアップでは、標準のグラフ検索方法(DFS、BFS、A *など)は不可能に思えます。

6
MMOでAIを計算するのは誰ですか?
MMOを構築していますが、NPCを追加したいです。問題は、基本的なデザインがわからないことです。計算、クライアントまたはサーバーは何ですか?サーバーがイベントと反応を計算することは理解できますが、経路探索とプレイヤーの位置と動きについては、だれが計算しますか? サーバーまたはクライアントのAIを計算するのは誰ですか?サーバーが経路探索、位置、動きなどを計算することを想像できませんでした。私はこれを理解する助けが必要です、ありがとう、何でも助けます。
30 ai  mmo  server  movement  npc 

2
ターンベースの戦略ゲーム向けの複雑なゲームAI
ターンベースの戦略ゲームプロジェクトの研究を行っており、このトピックに関する優れたリソースを探しています。このゲームは典型的な戦争ゲームであり、国は互いに戦い、ユニットを展開し、これらのユニットを六角形のタイルマップ上で移動させ、互いに攻撃することができます。 私は、Civilization VのAIがどのように構成されているかに特に興味があります!ウィキペディアによると、ゲームはゲームのAIのさまざまなレイヤーに4つの異なるAIシステムを使用しています。 戦術AIは個々のユニットを制御します 運用AIは戦線全体を監督します 戦略的AIが帝国全体を管理します 壮大な戦略的AIは長期的な目標を設定し、ゲームに勝つ方法を決定します 概念的には、これは複雑なAIを実現するのに非常に理にかなっているように見え、これらの異なるAIシステムがどのように機能する(そして連携する)かを知りたいと思います。戦術AIは、単一のユニット(移動、攻撃、修理、撤退など)の意思決定を処理するため、おそらく最も理解しやすいでしょうが、他のAIシステムは本当に興味深いものになると思います。たとえば、運用AIは何をし、どのようにそれを行いますか?これらはFiraxis Gamesによって秘められた秘密であると確信していますが、これについてさらに議論するためにいくつかの議論を始めるのはクールでしょう。 また、ターンベースの戦略ゲームAIを扱う優れた書籍を知っている人がいたら、それは知っておくとよいでしょう。明らかに、これはWeb上でまばらにシードされたトピックです。「Programming Game AI by Example」を手に入れましたが、その本は、高レベルの目標指向のAIよりも、単一エージェントの動作AIに関するものです。

6
ビヘイビアツリーのプリエンプション
私はビヘイビアツリーを回避しようとしています。そのため、いくつかのテストコードを作成しています。私が苦労していることの1つは、優先度の高いものが発生したときに現在実行中のノードをプリエンプトする方法です。 兵士の次の単純な架空の行動ツリーを考えてみましょう。 いくつかのティックが過ぎ、近くに敵がいなかったと仮定します。兵士は草の上に立っていたため、実行するためにSit downノードが選択されます。 再生するアニメーションがあるため、Sit downアクションの実行に時間がかかりRunning、ステータスとして戻ります。ティックが1つまたは2つ経つと、アニメーションはまだ実行されていますが、敵は近くにいますか?条件ノードのトリガー。次に、攻撃ノードを実行できるように、できるだけ早くシットダウンノードをプリエンプトする必要があります。理想的には、兵士は座っても終わらない-座ったばかりの場合は、代わりにアニメーションの方向を逆にするかもしれません。現実性を高めるために、もし彼がアニメーションの転換点を過ぎた場合、代わりに座ってから立ち直るようにするか、恐らく脅威に反応するために急いでつまずかせることを選択するかもしれません。 このような状況に対処する方法についてのガイダンスを見つけることができませんでした。過去数日間に私が消費したすべての文献とビデオ(そして、それはたくさんありました)は、この問題を回避するようです。私が見つけた最も近いものは、実行中のノードをリセットするというこの概念でしたが、シットのようなノードは「ちょっと、まだ終わっていない!」と言う機会を与えません。 おそらく、基本クラスでPreempt()or Interrupt()メソッドを定義することを考えましたNode。さまざまなノードが適切に処理することができますが、この場合は、できるだけ早く兵士を元に戻してから戻りSuccessます。このアプローチではNode、他のアクションとは別に条件の概念を自分のベースに持たせる必要があると思います。この方法では、エンジンは条件のみをチェックでき、条件が満たされた場合、アクションの実行を開始する前に現在実行中のノードをプリエンプトします。この差別化が確立されていない場合、エンジンは無差別にノードを実行する必要があるため、実行中のアクションをプリエンプトする前に新しいアクションをトリガーできます。 参考のために、現在の基本クラスを以下に示します。繰り返しますが、これはスパイクなので、できる限りシンプルに保ち、必要なときに、そして理解したときにのみ複雑さを加えようとしました。 public enum ExecuteResult { // node needs more time to run on next tick Running, // node completed successfully Succeeded, // node failed to complete Failed } public abstract class Node<TAgent> { public abstract ExecuteResult Execute(TimeSpan elapsed, TAgent agent, Blackboard …
25 ai  behavior-tree 

9
同じ場所に立っている敵を止める簡単な方法はありますか?
つまり、トップダウンゲームでは、敵がプレイヤーを追いかけます。一定の距離内に入ると、敵は静止して発砲します。それらがすべて同じ方向から来ている場合、私は現在敵間の衝突検出を行っていないので、それらはすべて同じ場所に立ちます(つまり、お互いの中に立ちます)。 これを回避する簡単な方法は何ですか?何らかの形の衝突検出またはAIのどちらか?

5
ターゲット追跡:回転タレットを加速および減速するタイミングは?
target次のように定義された移動円形があるとします。 Vector2 position; Vector2 velocity; float radius; そして、turret次のように定義された回転(何らかの移動車両に搭載) Vector2 position; Vector2 velocity; float angle; // radians float angularVelocity; // radians per second const float maxAngularVelocity; // radians per second const float maxAngularAcceleration; // radians per second per second (またはそれらの線に沿った何か。両方の位置と速度は他の場所で制御されることに注意してください-速度は一定であり、速度に基づいて位置が変化すると仮定します。) 特定のフレームで、次の2つのAI関数を作成して決定しようとしています。 砲塔をターゲットに向け続けるために、砲塔の角度にどの角加速度(およびどの方向)を適用しますか? ターゲットが現在視界にある場合、その半径内の任意の部分をx数秒間視界に保つことができxますか?(あるいは、ターゲットが実際に「ロックオン」され、単にサイトを横切って飛行するのではないことを保証する別の戦略がありますか?) そして、私はいくつかの助けを使うことができます...
24 ai  aiming 

3
有限状態マシンをコンポーネントベースのアーキテクチャに配線する方法は?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 ステートマシンは、コンポーネントベースのアーキテクチャで有害な依存関係を引き起こすようです。 具体的には、状態マシンと状態関連の動作を実行するコンポーネントとの間の通信はどのように処理されますか? 私がいる場所: コンポーネントベースのアーキテクチャは初めてです。 私は格闘ゲームを作っていますが、それは重要ではないと思います。ステートマシンを使用して、「クラウチング」、「ダッシュ」、「ブロッキング」などの状態を切り替えることを想定しています。 この状態管理手法は、コンポーネントベースのアーキテクチャにとって最も自然なシステムであることがわかりましたが、これまでに読んだ手法とは矛盾しています: 可変動作文字の動的ゲームオブジェクトコンポーネントシステムすべてのコンポーネントをアクティブ化/非アクティブ化することをお勧めしますアクティベーションの条件を継続的にチェックすることにより、自分自身。 「実行中」または「ウォーキング」などのアクションは状態として理にかなっていると思います。これは、https://gamedev.stackexchange.com/a/7934で受け入れられている応答とは一致しません。 これは便利ですが、あいまいです。コンポーネントベースのゲームアーキテクチャに動作を実装する方法は?ステートマシンのみを含む別のコンポーネントを使用することをお勧めします。ただし、これには、ステートマシンコンポーネントと他のほぼすべてのコンポーネントとの間に何らかの結合が必要です。このカップリングがどのように処理されるべきか理解できません。これらはいくつかの推測です: A. コンポーネントはステートマシンに依存します。コンポーネントは、列挙定数を返す ステートマシンコンポーネントへの参照を受け取りますgetState()。コンポーネントは定期的に自身を更新し、必要に応じてこれを確認します。 B. ステートマシンはコンポーネントに依存します。 ステートマシンコンポーネントは、監視しているすべてのコンポーネントへの参照を受け取ります。getState()メソッドを照会して、どこにいるかを確認します。 C. それらの間のいくつかの抽象化 イベントハブを使用しますか?コマンドパターン? D. コンポーネントを参照する個別の状態オブジェクト状態 パターンが使用されます。コンポーネントのセットをアクティブ化/非アクティブ化する個別の状態オブジェクトが作成されます。状態マシンは状態オブジェクトを切り替えます。 アスペクトの実装としてコンポーネントを見ています。彼らはその側面を実現するために内部的に必要なすべてを行います。コンポーネントは、他のコンポーネントに依存せずに、単独で機能する必要があるようです。いくつかの依存関係が必要であることは知っていますが、ステートマシンはすべてのコンポーネントを制御したいようです。

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