游戏ai寻路的一些想法
主要讨论静态地图的一些想法(基本地图不是随机生成的,而是有初始模版)
在游戏的AI寻路中最普通的就是全地图的A星,但这种方法几乎不会在游戏中使用(除非地图非常小),另外一个就是将整块大地图分为一个个的小格子,每个格子之间可以设置连通点(如果名没有连通点则认为不可通过)然后先进行格子之间的A星决定通过哪些格子可以到达目的地,格子之间的A*可以在生成地图时预处理,提前将每个格子之间的寻路存为静态数据。这样每次在进行A星时,先找到要通过的格子,然后在格子中找到连通点,然后只需要在当前格子中找当前点到连通点的A星路径就可以了。
还有一个在格子基础上的改进就是,在分格子时,通过将地图中的可行走区域分为尽量少的图多边形(每个多边形中不包含任何不可走区域,任意两点之间可以直线连通)这样将可行走区域和不可行走区域区分开来,会再次省略掉块内的A星。但在制作地图时可能需要策划或者地图维护人员通过工具或手动将地图进行分割(我们是策划使用工具分出基础块,然后在细节调整)这样可以保证尽可能少的块(减少预处理时的A星),以及块内的直线连通,每次寻路时只需要找到需要通过的块,以及块与块之间的连通点(可以是多个,在预处理块时也可以通过不同的连通点,进行路径权值的差异化),因为在块内直线连通,所以当前点与块连通点的连线所构成的路径就是寻路结果,虽然不一定是最优的(A星也不是)但基本不会感觉怪异(可以多设置连通点,让块间移动更自然,但也别太多).
集群单位寻路的想法(没有实践过)
未完待续