游戏服务器3D寻路应用-recastnavigation
recastnavigation是一个开源项目,该项目在github上对自己的说明是Navigation-mesh Toolset for Games。其中主要包含了3d寻路相关的库。起初关注这个项目是在大学的时候,当时和几个同学一起开发一款3d游戏,当时就有在游戏服务器实现3d寻路的想法,后来受到当时的指导老师李华旸老师的指导开始关注recastnavigation。刚接触这个项目的时候就被这个项目吸引了,经过初步了解,如果将这个项目应用于游戏服务器中,可以很完美的解决服务器3d寻路的问题。(后续recastnavigation简写为recast)
随后经过了一到两个月的研究,大概了解了其中的工具能够应用的场景,recastnavigation其中核心模块包含了3d寻路,控制agent(可理解为游戏中的人物)行走、移动,动态添加阻挡,动态改变地形。当然看到这里如果是做游戏客户端的同学,可能会说这有什么,这些在客户端不是很容易实现的么。也许你说的对,在客户端来说确实很好实现这些东西,很多现代的游戏引擎早已包含这些工具集。(补充一点
recast其实就是unity3d引擎自带的navigation寻路模块的前生,这一点我曾经在Google Group(需要翻墙)里和recast的作者memononen确认过)然而我们要做的是在服务器上应用这些技术,在服务器上却不是那么轻松的实现。对于这个技术的应用的经过,其中经过了很多波折(),所以只到这个技术的应用直到今天(距离我接触recast已经过去了快4年了)才真正落地应用于我现在公司的游戏项目的服务器中。下面来说明这个技术的应用的细节,也许下面的内容才是很多人 真正关心的东西(后面的内容真的有点西东)。 recast在GitHub上的地址:https://github.com/recastnavigation/recastnavigation.git ...