在游戏中使用C#进行基于气味的寻路

在游戏中使用C#进行基于气味的寻路,c#,path-finding,C#,Path Finding,我想知道是否有人知道如何实现寻路,但使用气味。周围节点的气味越强烈,就是“敌人”走向的方式 感谢每次游戏更新(或其他一些不太频繁的时间范围),增加目标对象(红色斑点)所在位置附近节点的气味值 将所有节点气味值减少一部分,使衰减量为零 在黄色blob的think/move函数中,获取要移动到的可用节点。向具有最高气味值的节点移动 根据节点的数量,“减少所有节点的气味值”可能与视错觉有关,例如,可能会保持一个非零节点列表以减少。不太清楚具体问题是什么,但这似乎是描述以下问题的另一种方式: 计算机科学

我想知道是否有人知道如何实现寻路,但使用气味。周围节点的气味越强烈,就是“敌人”走向的方式

感谢

每次游戏更新(或其他一些不太频繁的时间范围),增加目标对象(红色斑点)所在位置附近节点的气味值

将所有节点气味值减少一部分,使衰减量为零

在黄色blob的think/move函数中,获取要移动到的可用节点。向具有最高气味值的节点移动


根据节点的数量,“减少所有节点的气味值”可能与视错觉有关,例如,可能会保持一个非零节点列表以减少。不太清楚具体问题是什么,但这似乎是描述以下问题的另一种方式:

计算机科学与操作 研究,蚁群优化 算法(ACO)是一种概率算法 求解计算问题的技术 可以简化为 通过图找到好的路径


好吧,想一想

我的想法是将游戏场分成32x32的部分(或者你的角色大小)。然后每x秒进行一次检查(这样,如果他们保持静止,他们周围的瓷砖会有更多的“气味”),以确定任何给定瓷砖上的气味有多强烈。一些例子可能是:1)如果你越过瓷砖,添加3;2) 如果跨越相邻的平铺,请添加1

然后添加一些东西,比如随着时间的推移而退化,每x秒减少1个瓷砖,直到它达到零

你最不需要担心的是使用人工智能来跟踪这条路径。我建议将AI放在某个地方,告诉它找到一个具有气味的节点,然后转到具有较高/相等气味的相邻节点。同时也要担心穿越道路。如果玩家走上一条路径,然后从另一个方向返回,请确保AI始终沿着循环的路径返回。
对于人工智能来说,最后要考虑的是添加一点错误。每隔一段时间让人工智能走上错误的道路。或者更容易失去踪迹


这些是关键点,我相信你可以想出更多的,通过一些头脑风暴。

是的,我做了关于这个主题的大学期末专题

这个想法的一个应用是寻找
最短路径
。 正如你所说,这种“气味”会随着时间的推移而腐烂。但是两点之间最短的路径会有最强烈的气味

看看这个


你到底想知道什么?

我发现气味模型和寻路之间存在很大的矛盾。对于自然界中的猎人来说,通过气味寻找路径意味着准确地找到被跟踪对象所使用的路径。在游戏中,寻路意味着在两点之间找到最快的路径。这是不一样的。 1.在对气味进行建模时,您会将该点的气味浓度计算为周围浓度乘以不同因子的总和。从点开始搜索最快的路径意味着取周围点计算的最小时间乘以不同的参数。 2.计算气味时,应该使用递归模型——气味会向各个方向传播,包括向后传播。在寻路的情况下,如果已找到目标周围点的最短路径,则它们不会更改。 3.气味的水平可以上升和下降。在寻路中,当搜索最小值时,结果永远不会上升


因此,气味模型实际上比你的目标复杂得多。当然,我所说的,只有在标准情况下才是正确的,你可以有一些非常特别的东西…

世界规则非常基本,它是为外星人和捕食者设计的。这个想法只是使用简单的寻路(即一个红点和一个黄点),黄色打击使用气味来发现红色,气味颜色会随着敌人的距离而增加/减少。我想了解如何在我的c#A*和Dijkstra Pathfinding中将其转换为A*修改Hurisic函数以转换我问题中提到的“气味值”。对于dijkstra,只需选择更高的香味值即可