I am uncertain whether this would be a good addition, because usually you generate the NavMeshes before shipping the game and then have a thin library to do the path finding.
So maybe if we implement it, we could have different artifacts like jme3-ai-rt and jme3-ai or something. Which actually reminds me that the name itself is unsatisfying because it’s only navmeshing and not for instance the steering behaviors I have in MonkeyBrains…
What I did in my project is just using CritterAI directly and then generator = new org.critterai.nmgen.NavmeshGenerator(nG.cellSize, nG.cellHeight, nG.minTraversableHeight, nG.maxTraversableStep, nG.maxTraversableSlope, nG.clipLedges, nG.traversableAreaBorderSize, nG.smoothingThreshold, nG.useConservativeExpansion, nG.minUnconnectedRegionSize, nG.mergeRegionSize, nG.maxEdgeLength, nG.edgeMaxDeviation, nG.maxVertsPerPoly, nG.contourSampleDistance, nG.contourMaxDeviation);
So I am uncertain if we should add it to the AI library, but on the other hand a all-in-one library might also be handy, yeah.
The steering behaviors included with the AI don’t really work as expected, actually they don’t work at all. Not one time did any vehicle avoid any obstacle. Every test I tried using different behaviors did exactly the same thing, i,e. just barged through the obstacles and followed the target after catching up to it.
Basic behaviors should work, I actually posted screenshots of a simple multithreading test into the Screenshot Thread Sometime. The only thing I didn’t get to work properly was following a path, but at that time I was too exhausted to continue MonkeyBrains anyway.