最近开发新游戏需要用到nav寻路算法,之前游戏的寻路逻辑都是A*实现,目前nav也实现完成,这里做一下记录
最近新出的slg游戏万国觉醒,胜利之吻,文明与征服都采用类似rts寻路方式,分析后我认为他们的寻路方式都是传统mmo常用的寻路方式nav多边形寻路,在网上找了很多资料和看了一些mmo代码,大部分寻路方式都采用recast寻路,u3d也是用的c版本的recast,查找之后发现还有java版本的recast实现 recast4j
https://github.com/ppiastucki/recast4j
结合
easy3dnav: Easy3dNav 是基于 recast4j 封装的 Java 版本 3D 游戏寻路组件
easy3dnav基本实现出来了寻路功能,我自己感觉用着不舒服
1,官方的recast4j很多功能不能使用
2,客户端必须按照他的数据导出方式导出地图数据
但是对于我第一次接触3d寻路而言,对于u3d导出的地图数据 obj或者navmesh是什么还不是很清楚,大部分u3d开发人员只知道导出obj格式的数据,融合easy3dnav+recast4j写了一个直接解析obj的地图并寻路的代码
只有my目录是我自己实现其他都是官方recast4j中的代码,测试代码TestFindPath
待解决
在navmesh寻路时,服务器怎么动态避障,recast也有动态避障但是没有找到接口在哪