マップ上の国間の接続を表すデータ構造


9

私がクライアントのために開発しているゲームでは、主要なゲームのコンセプトには、マップ上を移動することが含まれます。この場合、さまざまな国のサイズや形状などは関係ありません。ある国から隣接する国への移動は、1つのステップとしてカウントされます。

国間のつながりを内部的に表すための最良のデータ構造を見つけ出そうとしています。特定の国では、ゲームは隣接する国を知る必要があります。プレイヤーが移動できる方法を知るためと、ゲームのAIがルートを計画し、国から国への可能なパスを決定するためです。AIはまた、国がそのすぐ隣の隣国だけでなく、それらの国の隣国などとどのように接続されているかを評価する必要があります。

私はいくつかの可能性を見つけましたが、それらはあまりにも非効率的で非効率的です。AIは、その移動について適切な決定を行うために、可能なルートの束を計算する必要があるため、「非効率」は非常に問題があります。

これはやや一般的なCSパズルであり、共通の解決策があると思いますが、検索しても多くを見つけることができませんでした。どんな提案でも大歓迎です。


GameDev.StackExchangeでこれを確認する必要がある場合は、お知らせください。この種のことはあらゆる種類の開発問題に必要であり、それ自体の「ゲーム」側、つまりルート計画の部分だけでは手助けが必要ないので、ここで質問します。
マシューフレデリック

グラフまたは接続性マトリックスが必要です(クロージャは計算が簡単なので便利です)。おそらく両方が必要です。彼らを見上げて。

2
グラフのデータ構造とアルゴリズムをご覧ください

1
これは私にはトピックに見えません。ここではあまりにも客観的すぎるため、GameDevまたはStack Overflowのいずれかに配置する必要があります。

回答:



6

間違いなくグラフ。グラフ理論で確認してください。基本的にはノードとエッジがあります。ノードには、他のノードへの0以上のエッジが含まれる場合があります。

最短経路(ホップまたは距離)の計算、シクルのチェック(1つの自己に到達するための複数の方法)など、多くのアルゴリズムがあります。

さて、効率的なソリューションを実装できるようにするには、少し複雑ですが、いつものように方法があります。


優れたありがとう。そのようなアルゴリズムを見つける場所について何か提案はありますか?最短経路はそれほど必要ありませんが、円のチェックなどはとても便利です。
マシューフレデリック

2

すでに述べたように、国間の可能なすべての接続を表すグラフが必要になります。各接続は、2つの国の間の距離も保持します。

次に、A *のような経路探索アルゴリズムを使用して、2つの国間の最短経路を決定できます。

ゲームAIに関する優れた本もいくつかあります。マットバックランドの例によるゲームAI http://www.ai-junkie.com/books/toc_pgaibe.html

またはAIゲームプログラミングの知恵シリーズ。 http://www.aiwisdom.com/ 最初の本には、パスファインディングに関するいくつかの章があります。


すばらしい、本のポインターをありがとう。AIの本がたくさんあるようで、個人的な推奨事項は、私が検索して得た幅広い結果よりもはるかに優れています。
マシューフレデリック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.