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

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

2
移動するターゲットに当たるショットの角度と速度を計算する方法は?
私は2D Androidゲームを開発しており、AIの発射物がパスをたどって、または自由に移動して敵を攻撃するための照準アルゴリズムを作成しています。現時点では、ある距離の後にターゲットがどこに位置するかを計算し、その距離でそれを満たすために発射体を発射します。もちろん、これは、目標を満たすために発射速度を変化させることを意味します。 発射体がいつ発射する必要があるか、一定速度でのみ移動できる場合はどこを狙う必要があるかを計算するためのシンプルなアルゴリズム(最適なアルゴリズム)のヒントはありますか?発射体がターゲットの2倍の速度で移動するとしますか? 私が考えることができる唯一の方法は検索を伴うもので、かなり大きいようです。
11 2d  android  mathematics  ai  aiming 

1
AIが目標に到達するために回転する正しい速度を見つける
私は最高速度で移動し、毎秒度maxSpeedを変えることができる船を持っていrotationSpeedます。船は常に向いている方向に移動します。つまり、船が速く移動するほど、旋回半径が大きくなります。 私は自分の位置、回転、ターゲットの位置を知っています。 私が理解したいのは、ターゲットがこの速度で私の回転半径内にあるかどうか、またはより良い、私が移動できる最大速度は、ターゲットを回り続けることなくターゲットに方向転換するためです。 これを行うための効率的な方法がありますか? これが私がこれまでに考えていることです。1ステップあたりの移動距離と1ステップあたりの回転量がわかっているので、次の2つのフレームのどこにいるのかがわかります。私の現在の位置はp1で、次の位置はp2、次にp3です。(p1、p2)と(p2、p3)の垂直二等分線をとることができます。彼らの交点は私に円の中心を与えます。次に、ターゲットがその円の中にあるかどうかをテストできます。 これが3Dで機能するかどうかは不明です(入力で球を計算する方法がわかりません)。この解決策は、旅行に適した速度を見つけるのにもあまり役立ちません。妥当な速度を見つけるには、さまざまな速度で数回試す必要があります。 誰もがより良い解決策にいくつかの光を当てることができますか?

3
AからBにジャンプできますか?
横スクロール用の基本的なAIを作成しています。ジャンプを実行するだけで、AIユニットがポイントAからポイントBに到達できるかどうかを知る必要があります。 私の文字の飛行軌道はとても古典とは異なり、彼らは(例えばジャズJackrabbitの2のように)空中に力を加えることができるように、ビットunusalで発射の弾道についてです... 投射または発射された発射体が推進力なしに進む経路(...) ...私の問題は、推進力を備えた発射体(ロケットなど)に関するものだと思います。 これを説明するために、ジャンプして「左ボタン」を押し続けると、これは私のキャラクターの飛行曲線のようになります(左端では異なります。空中でマニューバを作成していた場所です)。 飛行中に加えられる力は常にX軸に平行であるため、「左」を押し続けるとF =(-f、0)、「右」を押し続けるとF =(f、0)になります。 彼はスキージャンパーのように非常に動くことができます: したがって、それは単に放物線である古典的な軌道とは大きく異なります(出典:ウィキペディア)。 さらに難しくするために、単純な空気抵抗をシミュレートしているので、キャラクターはある最大速度値までしか加速できません。 これは、反対の移動方向に小さな力を加えることによって行われます。 b2Vec2 vel = body->GetLinearVelocity(); float speed = vel.Normalize(); //normalizes vector and returns length body->ApplyForce( AIR_RESISTANCE_MULT * speed * speed * -vel, body->GetWorldCenter() ); AIR_RESISTANCE_MULTは定数で、私の場合は0.1です。 私の性格は無限に小さいと仮定しましょう。 そして、私は障害物を考慮に入れていないので、私の質問は次のようになります... 初期速度V、ジャンプ時にキャラクターに適用する衝撃J =(0、-j)、重力G =(0、g)、力F =(+ -f)を指定して(少なくとも確実に推測する)を決定する方法、0)飛行中に継続的に適用され、空気抵抗を考慮することにした場合はAIR_RESISTANCE_MULT (これはオプションです) 、ポイントが、キャラクターがたどるパスによって描かれた曲線の下にあるかどうか 文字通り、どこから計算を始めればよいのかまったくわかりません。実際、必ずしも正確な答えに興味があるわけではありません。AIが完全に動作する必要はないので、うまく機能するハック/近似は素晴らしいでしょう。 編集: Jasonが示唆するように、シミュレーションを使用してこれを解決することにしましたが、そのような場合の対処方法は? CからDへのセグメントを描画し、目的のポイントがこのセグメントの下にあるかどうかを確認する必要がありますか? または、CとDの間のタイムステップをバイナリ検索して、目的のポイントに対して水平距離が十分に近いポイントを探し、その後、垂直方向の差を確認する必要がありますか?(私には少しやり過ぎに思えます)

4
タスクの割り当て
壁の構築など、労働者が任務を負うRTSでは、労働者はどの壁を構築するかをどのように決定しますか? プレイヤーは、どの壁をどこに構築するかを決定しますが、個々のワーカーを個々の壁の四角形に割り当てません。多くのRTSゲームでは、ワーカーは近くのタスクを実行するだけですが、RTSでは、特定の正方形で明示的なタスクを戦略的に実行することを主な戦略として使用したいので、どこかにクラスター化してタスクを残さないようにしたくありません。離れて行われません。 私は建物の壁の例を使用しています。それは鉱石、道を作ること、木を集めることなど何でもあり得ます。重要なのは、ユーザーがどこを選ぶかではなく、誰を選ぶかです。 ワーカーは、アクセス可能な正方形に隣接する正方形でのみ作業できます。彼らが自分たちで作業する正方形は、作業が完了するまで通行できない場合があります。 労働者1と2は、正方形A、B、C、Dを採掘するように指示されています。 ゲームティックごとに1マス移動でき、1マスのマイニングには10ティックかかります。 どの労働者がどのマスを採掘するかをどのように決定しますか? 1がAをマイニングし、2がCをマイニングする必要があることは自明のようです。 1はAから4マス離れているため、14ティックでマイニングが完了します。1は次にどこに行くべきですか、そしてなぜですか? そして、Bの真上に採掘される別の正方形-E-があった場合はどうなりますか? ワーカーが次に進むべき場所を決定するために使用するロジックは何ですか?
10 ai 

2
既知のキューを持つマッチゲームを最適化するアルゴリズム
Flowerzと呼ばれるゲームのソルバーをC#.NETで記述しようとしています。参考までに、MSNで再生できます。ここ:http : //zone.msn.com/gameplayer/gameplayer.aspx?game=flowerz。私は楽しみのためにそれを書いているのであり、どんな種類の割り当てや仕事に関連するもののためでもありません。このため、唯一の制限は私のコンピューター(8 GBのRAMを搭載したIntel i7コア)です。私に関する限り、他の場所で実行する必要はありません。 つまり、そのルールは次のようになります。 色とりどりの花でいっぱいの列があります。その長さは任意です キューは影響を受けません キューはレベルの開始時に生成されます 花は1つまたは2つの色を持っています。 2つの色がある場合、外側の色と内側の色があります。2色の場合、外側の色がマッチングに使用されます。 一致する場合、外側の色は消え、花は内側の花と同じ色の単一色の花になります。 ゲームの目標は、同じ色の3つ(またはそれ以上)のマッチを作成することです 単色の花がマッチの一部である場合、それは競技場から削除され、空のスペースが作成されます 単色の花と2色の花の外側の色を一致させることができます。この場合、単色の花は消え、2色の花の外側の色は消え、内側の色は残ります キューが空であるときは、ラウンドを獲得し、少なくとも1つの空のスペースが余っています カスケード一致が可能です。カスケードは、3つ(またはそれ以上)の外側の花が消え、その内側の色が3(またはそれ以上)の花の別のチェーンを形成するときです。 競技場は常に7x7です フィールドのいくつかのスペースは岩で覆われています あなたは岩の上に花を置くことはできません キューにはスペードを含めることもできます。スペードを使用して、配置した花を空いているスペースに移動できます。 スペードを使用する必要がありますが、実際には花を動かす必要はありません。花を元の場所から直接戻すことは完全に合法です。 キューには、色付きの蝶を含めることもできます。花にこの蝶を使うと、花は蝶の色になります 2つの色を持つ花に蝶を適用すると、花は1つの色、つまり蝶の色のみを取得します。 あなたは空のスペースやすでにこの色を持っている花に蝶を無駄にすることができます フィールドをクリアしてもゲームに勝つことはできません ソルバーの目標は単純です。できるだけ多くの余ったスペースをフィールドに残して、キューを空にする方法を見つけます。基本的に、AIがゲームをプレイします。ソルバーの出力は、見つかった移動のリストです。私はスコアには興味がありませんが、できるだけ長く生き残るために、可能な限り多くのオープンスペースを残す動きに興味があります。 言うまでもなく、キューが大きくなるほど検索スペースは急速に大きくなるため、ブルートフォースは問題外です。キューは15から始まり、2、3レベルごとに5ずつ増えます。そしてもちろん、最初の花を(0,0)に配置し、2番目の花を(0,1)に配置することは、特に最初の花を(1,0)に配置し、2番目の花を(0,0)に配置することとは異なります。フィールドには、以前のラウンドからの花がすでに生息しています。そのような単純な決定は、それを作るかどうかの違いを作ることができます。 私が持っている質問は次のとおりです。 これはどのような問題ですか?(巡回セールスマン、ナップザック、またはその他の組み合わせの問題を考えてください)。これを知っていると、私のGoogle風味が少し良くなる可能性があります。 どのようなアルゴリズムで良い結果をすばやく得ることができますか? 後者について:最初に、独自のヒューリスティックアルゴリズムを記述しようとしました(基本的に:キューを知っている場合、どうすれば解決できますか?)。 私は遺伝的アルゴリズムを使用することを考えていました(少なくともそれを使用する方法を知っているため...)が、ボードのバイナリ表現を決定する際にいくつかの問題があります。次に、クロスオーバーの問題がありますが、これは、順序付けされたクロスオーバー演算子または同様のタイプの操作で解決できます。 私の推測では、ソルバーは常にボード構成とそれが空にしようとしているキューを知っている必要があります。 ニューラルネットワークやファジーロジックシステムなどの他のヒューリスティックアルゴリズムをいくつか知っていますが、どれが最も適切であるか、または当面のタスクにより適した他のものがあるかどうかを知る経験がありません。
10 c#  algorithm  ai  puzzle 

3
六角形グリッドに範囲を表示
これが状況です。 六角形のボードとその上にユニットがあり、速度または移動値があります。4。異なる地形には異なるコストがあります。ユニットをクリックすると、ゲームに移動範囲が表示されます。 私の解決策は、4の範囲内の各ヘクスをA *パスファインディングでチェックすることでした。パスコストが4未満の場合、このヘックスは範囲内にありました。最後に、ゲームでそのユニットの範囲をうまく表示しました。 私の質問は、私が自分のソリューションでやったことを本当に誇りに思っているので、六角グリッドまたは正方形グリッドで範囲を検索する他のソリューションはありますか?私は思う、それは少し誇張されていますか?:)) ユニットスピードが4または6または8の場合、コンピューターのコンピューティング範囲までの時間は本当に良いことに気づきましたが、スピードが10以上の場合、計算に数秒待つ必要があることに気付きました実際のゲームでは、私はこのようなものを見ることはなく、私のA *パスファインディングはかなり最適化されているので、私の解決策は間違っていると思います。 返信ありがとうございます。

3
障害物をパスファインディングするにはどうすればよいですか?
次の状況を最もよく表す方法-エージェント(@)は目標($)に到達する必要があります。パスは堀(~~~)によってブロックされています。障害物を横切ることを可能にするレーキ(または水上ウォーキングブーツのような他のデバイス)が利用可能です。 .....~~~... . ground ...=.~~~... = rake .....~~~.$. ~ water .@...~~~... @ agent .....~~~... $ goal 適切からpathfindする方法@に$何らすぐに利用できるパスがない?提供 私の道はコストだけでなく前提条件も持っているべきですか? UPD:問題は、目標にアクセスできず、レーキがマップ上の多くの可能なオブジェクトの1つにすぎないことです。次に質問は、「すくいが必要であることをエージェントに理解させるにはどうすればよいか」です。
10 ai  path-finding 

3
敵AIが聞こえる音を追加するにはどうすればよいですか?
与えられた: 2Dトップダウンゲーム タイルは2D配列に格納されます すべてのタイルにはプロパティがあります-減衰(レンガは-50db、空気は-1になる可能性があります) これから、ポイントx1、y1でサウンドが生成され、「波及」するように追加したいと思います。下の画像は、その概要を示しています。明らかに、最終目標はAIの敵が音を「聞く」ことができることです。しかし、壁がそれを遮っている場合、音は遠くまで伝わりません。 赤は50dbの減衰がある壁です。 3番目のゲームティックでは、数学を混乱させていると思います。 これを実装する最良の方法は何でしょうか?

4
射撃前の軌道周りのミサイル軌道の計算
Unity3Dでゲームを構築しています。それは重力戦争のクローンです。プレイヤーとAIの両方のタレットは、ミサイルを互いに撃ち(角度とパワー変数を与える)、惑星のミサイルを衝突させないようにします。しかし、これが私の質問です:AIにミサイルを発射する前に、惑星の重力も考慮して、パワーと角度をどのように計算させるのですか?

2
「城を守る」タイプのゲームでプレイヤーの「力」を計算する
私は「ディフェンドユアキャッスル」タイプのゲームを作っています。各プレイヤーには城があり、敵の城を破壊するためにユニットを送る必要があります。それはこのように見えます(そうです、これは実際のゲームであり、簡単なペイントの描画ではありません。): 今、私は対戦相手のAIを実装しようとしています。簡単、通常、ハード、ハードコアの4つの異なるAIレベルを作成したいと思います。これまでに「深刻な」AIを作成したことがなく、今回は完全なAIを作成したいと思います。 私のアイデアは、城の現在のヘルスとユニットの個々の「パワー」スコアに基づいて、プレイヤーの「パワー」スコアを計算することです。次に、AIはスコアをプレーヤーのスコアに近づけようとします(Easyはスコアの下に留まり、Normalはその近くに留まり、Hardはスコアを上回ろうとします)。しかし、プレイヤーのパワースコアを計算する方法がわかりません。考慮に入れるには変数が多すぎて、それらを適切に使用して1つの有意な数(電力レベル)を作成する方法がわかりません。 誰かがこれを手伝ってくれる? プレーヤーのパワースコアに影響を与える変数は次のとおりです。 現在の城の健康、ユニットの全体の健康、ダメージ、スピード、攻撃範囲。 また、プレイヤーは収入(マネーバッグ)、ダメージ(+ダメージ)、スピード(+スピード)を増加させることができます...スコアにそれらをどのように含めることができますか? 私は本当にここで立ち往生しています...または、このタイプのゲームにAIを実装できる他の方法はありますか? 貴重なお時間をありがとうございました。
10 game-design  ai 

3
2DレーシングゲームのAIを構築するためのヒント
2Dレーシングゲーム用のAIを構築するための学校プロジェクトがあり、他のいくつかのAIと競合します(衝突なし)。 レーストラックの白黒のビットマップイメージが提供されます。マップを受け取った後、車の基本的な統計(ハンドリング、加速、最大速度、ブレーキ)を選択できます。AIはゲームのサーバーに接続し、現在の加速とステアリングの秒数を数回与えます。ちなみに私が選んだ言語はC ++です。質問は次のとおりです。 最高の戦略またはアルゴリズムは何ですか(私が試して勝ちたいので)?私は現在、ネット上で見つけたアイデアと自分のアイデアの1つまたは2つを念頭に置いていますが、コーディングを始める前に、私の見方が最高のアイデアの1つであることを望みます。そのことに関してどんな良い本がありますか?どのサイトを参照すればよいですか?
10 2d  c++  ai  racing 

7
A *をどのように再計画する必要がありますか?
A *アルゴリズムを使用してプレイヤーを探すパスファインディングボスの敵がいます。これはかなり複雑な環境で、Flashで実行しているため、長距離を検索しているときに検索が少し遅くなる可能性があります。プレイヤーが静止している場合は、一度だけ検索できますが、現時点ではすべてのフレームを検索しています。これには、フレームレートが低下するほど時間がかかります。 これに対する通常の解決策は何ですか?検索全体をやり直さずにA *を「再計画」する方法はありますか?少し頻度を下げて(0.5秒または1秒ごと)、パスに少し不正確さが生じることを受け入れる必要がありますか?

2
チェイスゲームでプレイヤーに直線で敵の動き
私は、敵がマップ上でランダムに出現し、ランダムな速度でフレームごとにプレイヤーに向かって移動するゲームを作成しています。マップには障害物がないため、敵は常に直線的に移動する必要があります。私は数回ムーブメント関数を書きましたが、敵が常に0、45、90、135、180、225、270、315の角度に当たったとしても、決して直線にはなりません。次にコードの例を示します。 base_speed = random(); diff_x = abs(enemy_y_pos - player_x_pos); diff_y = abs(enemy_x_pos - player_y_pos); if (diff_x > diff_y) { y_speed = base_speed; } else if (diff_y > diff_x) { x_speed = base_speed; } if (enemy_x_pos < player_x_pos) { velocity.x = x_speed; } else if (enemy_x_pos > player_x_pos) { velocity.x = …
10 ai  movement 

4
NPCパスファインディングを信頼できるようにするにはどうすればよいですか?
NPCがマップ上をランダムに歩く「信じられないほどの」方法はありますか? 明らかなシナリオは、地下室を歩き回って警備している武装警備員です。「信じられる」パスを設定するのは非常に簡単です。 私が探しているのは、実際には小さな町の群集をシミュレーションする方法です。彼らが無目的のロボットではないように彼らの動きをどのように見せることができますか?

6
機械学習AIを含むゲームはありますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 6年前休業。 ここで誰かが機械学習AIを実装する商用AAAゲームについて言及できますか?
10 ai 

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