GSoC: Recast and Detour library integration for the BGE (Nicks), discussion thread

One by one the GSoC projects are coming out of the gate, the latest one to get started is the Recast and Detour library integration for the BGE, allowing easier pathfinding capability and improved AI for the BGE.

http://lists.blender.org/pipermail/bf-blender-cvs/2010-May/028039.html
http://lists.blender.org/pipermail/bf-blender-cvs/2010-May/028040.html

Discuss the project here

What exactly does this?

There are going to be some exciting things happening down the road with this current crop of projects.

Maybe this will help with this project

How Wolfire intends to tackle it with navigation objects
http://blog.wolfire.com/2010/05/Automatic-navigation-meshes

EDIT: hhhhmmm… but you probably are already aware of this! :slight_smile:

A game object can now be set as a navigation mesh, also work on the PyAPI
http://lists.blender.org/pipermail/bf-blender-cvs/2010-May/028226.html

  • added new game object type for navigation mesh
  • added py api for path finding and ray casting

This is great!

What is the eta to completion, or at least to a workable version.

Obstacle avoidance is now possible (not a very long commit message, but adds quite a bit of functionality)
http://lists.blender.org/pipermail/bf-blender-cvs/2010-June/028421.html

Update on obstacle functionality (segment/creation obstacles)
http://lists.blender.org/pipermail/bf-blender-cvs/2010-June/028519.html

Seems to be an interesting project. So if I create a nvaigation mesh and tell an object to move from a to be it will do this automatically? Would it work with a maze? Does this only work for objects residing on a ground or would it also work for flying objects? Or do I get somthing completely wrong here?

This is great. I have attempted to try and make pathfinding which uses navmeshes, but it just becomes a nightmare to manage. I am really looking forward to this. Keep posting those commit updates!

I am eagerly awaiting a usable build!

Keep it up!
Ex.

Paremeter time (representation, radius, simulation type)
http://lists.blender.org/pipermail/bf-blender-cvs/2010-June/028571.html

Radius at least comes with a debug rendering tool which draws a circle to show the radius
http://lists.blender.org/pipermail/bf-blender-cvs/2010-June/028572.html

In what situations is this kind of pathfinding most useful?
is it more for single character games or will it be efficient for strategy games? shooting games? racing games? is it good with levels that change during gameplay or are loaded or even randomly generated? levels that are built of tiles?

In what situations is this kind of pathfinding most useful?
is it more for single character games or will it be efficient for strategy games? shooting games? racing games?

Should work fine for all those game types.

is it good with levels that change during gameplay or are loaded or even randomly generated? levels that are built of tiles?

I don’t think that it is set up to deal with meshes that change right now.

Obstacle simulation now has acceleration and turn speed parameters (with debug visualization for velocities)
http://lists.blender.org/pipermail/bf-blender-cvs/2010-June/028609.html

I’m eagerly awaiting Jahka’s Boids particle. I think boids could benefit from the path-finding code. and vice versa.

That’s a fantastic idea.

This week’s commit roundup.

More features added (including the ability to advance by waypoints it seems)
http://lists.blender.org/pipermail/bf-blender-cvs/2010-June/028747.html

Obstacle related work
http://lists.blender.org/pipermail/bf-blender-cvs/2010-June/028675.html

Project looks to be going good so far, good job Nicks.

Seems like major work on Detour is coming to a close, his work has shifted to integrating the companion library Recast.


Initial work on the modifier that will be used to create the navigation mesh
http://lists.blender.org/pipermail/bf-blender-cvs/2010-June/028880.html

The Navigation mesh can now be created
http://lists.blender.org/pipermail/bf-blender-cvs/2010-June/028884.html

Hi Nick,
I tried extracting your branch and on compilation hit this error

Compiling ==> ‘BL_BlenderDataConversion.cpp’
In file included from source/gameengine/Converter/BL_BlenderDataConversion.cpp:175:
source/gameengine/Ketsji/KX_NavMeshObject.h:31:31: error: DetourStatNavMesh.h: No such file or directory
In file included from source/gameengine/Converter/BL_BlenderDataConversion.cpp:175:
source/gameengine/Ketsji/KX_NavMeshObject.h:44: error: ISO C++ forbids declaration of ‘dtStatNavMesh’ with no type
source/gameengine/Ketsji/KX_NavMeshObject.h:44: error: expected ‘;’ before ‘’ token
source/gameengine/Ketsji/KX_NavMeshObject.h:58: error: ISO C++ forbids declaration of ‘dtStatNavMesh’ with no type
source/gameengine/Ketsji/KX_NavMeshObject.h:58: error: expected ‘;’ before ‘
’ token

Any idea what am I missing here. It is complaining abt missing Header file.