表示地图上国家之间的联系的数据结构


9

在为客户开发的游戏中,关键游戏概念涉及在地图上四处移动。在这种情况下,各个国家的大小和形状是无关紧要的:从一个国家转移到相邻国家只是一个步骤。

我正在尝试找出最佳的数据结构,以内部表示国家之间的联系。对于给定的国家/地区,游戏需要知道哪些国家/地区相邻,既要知道玩家可以移动的方式,又要允许游戏的AI绘制路线,从而确定从一个国家到另一个国家的可能路径。认可机构还需要评估一个国家的联系程度,不仅与其邻国相邻,而且与这些国家的邻国等等。

我已经找到了几种可能性,但它们似乎笨拙且效率低下。因为AI将需要计算大量可能的路线才能做出关于其运动的正确决策,所以“低效”是个大问题。

我怀疑这是一个比较常见的CS难题,并且存在一个通用的解决方案,但是我无法通过搜索找到很多东西。欢迎任何建议。


如果我应该在GameDev.StackExchange上问这个,请告诉我。我在这里问是因为我确定所有开发问题都需要这种东西,而就其“游戏”方面而言,我本身就不需要帮助,只需要路线规划部分就可以了。
马修·弗雷德里克

您需要一个图或一个连通性矩阵(这很方便,因为闭合很容易计算)。也许你们两者都需要。查找它们。

2
看一下图数据结构和算法:en.wikipedia.org/wiki/Graph_%28data_structure%29

1
这对我来说似乎不是主题。它应该在GameDev或Stack Overflow上,因为这里的主题太客观了。

Answers:



6

定义图。在这里检查图论,基本上您有了节点和边。一个节点可能包含0个或多个其他节点的边。

有很多算法可以计算最短路径(跳跃或距离),检查冰柱(不止一种到达自我的方式)等。

现在,要实现高效的解决方案,这要复杂一点,但是与往常一样,有很多方法。


非常好,谢谢。您对在哪里可以找到这样的算法有什么建议吗?我不需要那么短的路径,但是诸如检查圆圈之类的东西将非常方便。
马修·弗雷德里克

2

如前所述,您将需要一个代表国家之间所有可能联系的图表。每个连接还将保持两个国家之间的距离。

然后,可以使用像A *这样的寻路算法来确定两个国家之间的最短路径。

也有一些关于游戏人工智能的好书:以Mat Matland为例的Game AI http://www.ai-junkie.com/books/toc_pgaibe.html

或AI Game Programming Wisdom系列。 http://www.aiwisdom.com/ 第一本书包含有关寻路的几章内容。


太好了,谢谢你的指点。似乎有大量的AI书籍,个人推荐比我从搜索中获得的广泛结果要好得多。
马修·弗雷德里克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.