如何确定RTS中的一组单元

时间:2011-11-21 19:37:16

标签: algorithm cluster-analysis data-mining

寻找一种可用于确定在星际争霸等实时战略游戏中作为小队一起移动的单位组的算法。我目前看到的方向是一个聚类算法,但很难找到哪一个最好用,因为单位不仅仅是静止不动地移动。任何帮助都会很棒。

3 个答案:

答案 0 :(得分:3)

K-means不是最佳选择,因为它要求您指定您希望找到的群集数量。有些可能包含单个对象。

我建议改编DBSCAN。特别是广义版GDBSCAN。

为此,您需要定义单位邻域的构成 - 例如,2范围内属于同一玩家且大致朝同一方向移动的任何其他单位(最多为xy速度中的某个增量阈值。

接下来,您需要指定何时考虑开始形成初始群集的单位,称为“核心点”。假设这至少是3单位。

然后使用DBSCAN是非常基本的,应该会给你很好的结果。您需要稍微调整一下参数。像这个最小尺寸的东西显然是输入参数,并取决于您的用例。邻域定义也是如此:您正在寻找向相同方向移动的组,这些信息需要以某种方式放入算法中。使用GDBSCAN,通过调整邻域定义,这是微不足道的。

答案 1 :(得分:1)

您可能需要查看一些分类算法,例如k-Nearest NeighborSupport Vector Machines

答案 2 :(得分:0)

Kmeans算法是非常简单和标准的方法。您可以检查它是否有效: