在像星际争霸这样的游戏中,你可以在地图中拥有多达200个单位(适用于玩家).
有小而大的地图.
例如,当您抓住50个单位并告诉他们去地图的另一侧时,一些算法会启动,他们会找到通过obsticles(河流,山丘,岩石等)的路径.
我的问题是你知道游戏如何减速因为你有50条路径可以计算.与此同时,其他的事情发生像收集矿物质的无人机制造等等.如果地图很大,它应该更难,更慢.
所以即使算法很好,也需要100个单位的时间.
你知道这是如何工作的可能算法类似于其他游戏.
正如我所说,当你告诉单位移动你没有看到计算路径的任何延迟 - 他们立即开始跑到目的地.
问题是他们如何使单位通过最短的路径,但速度很快.
大多数游戏都没有延迟(星际争霸,魔兽争霸等)
谢谢.
我想它只需要细分问题并记住结果.示例:2个单位.Unit1从A到C,但是最短的路径经过B. Unit2从B到C.B到C只需要计算一次,并且可以被两者重用.请参阅https://en.m.wikipedia.org/wiki/Dynamic_programming
在这个维基百科页面中,它特别提到了dijkstra的路径查找算法,该算法通过细分问题并存储要重用的结果.
在http://www.gamasutra.com/blogs/TylerGlaiel/20121007/178966/Some_experiments_in_pathfinding__AI.php中还有一个非常漂亮的替代方案,它考虑了像障碍物这样的动态内容并且仍然表现得非常好(视频演示:https: //www.youtube.com/watch?v=z4W1zSOLr_g).
另一个有趣的技术,采用完全不同的方法:计算从目标位置到地图上每个点的最短路径:请参阅此处的完整说明:https://www.youtube.com/watch?v = Bspb9g9nTto - 尽管这一个对于大型地图来说是低效的
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |