> Is iCelGraph only used in the pathfinding algorithm? If so, it should be changed to Detour's structure (or at least be able to feed Detour this kind of data).
Yes, I think iCelGraph is used only in path finding. I'm not sure of the differences existing between iCelGraph and the data structure used by Recast, and how easy it would be to extend iCelGraph for that. iCelGraph is however a good candidate to store the navigation graph in XML, and to provide an API for manipulating dynamically the graph. I'm not sure neither of what to do with the current path finding property class: extend it, drop it, provide an alternate implementation? > -As for giving polygons a different cost, [...] talked about the alternative of tesselating the mesh, which would allow for a finer control over the costs, at the price of a decreased pathfinding performance. We could find a ideal size for the polygons for this use. Maybe an idea would be to simply provide an API so that the user can customize the tesselation of the graph depending on its needs. As you said, an editor to customize the weights of the graph may also be great. Or even a more generic solution, eg based on sth like the iMaterial of the floor, but this is probably another topic. > I also have not tested Recast with a big enough map to see if its able to generate the meshes dynamically, but I'm guessing it could be a problem. We may probably consider that a big sized level is split in different sectors connected through portals (see CS's iSector and iPortal). CEL has also advanced mechanisms for region management (see iCelMapFile, iCelRegion, iCelZone, iPcZoneManager). So navigation graphs can be generated dynamically by using Recast only on the sector, and connecting the graphs where there are portals (iff the portal is 'walkable'). This way, the path finding would also be able to handle space warping portals. This ability of handling portals and sectors is in fact probably one big great feature to have. iCelRegion and so on can also be extended to load/unload path finding data & files. > -The navigation mesh Recast generates is specific for a unit's width and height. So if two units were too diferent in size, 2 different meshes would have to be generated. This could be a good thing if we consider the possibility of adding different costs to the mesh, since different units could have different costs for each polygon. An ideal solution would provide a management of the intermediary results of Recast, so that it optimizes the use of CPU/memory when we want to compute the navigation graphs for different types/sizes of entities. There can also have one single common structure holding the graph for every type of entities, with different weights/nodes/edges depending on the type of the entities. 'Cat & mouse in a house' example: there is one big navigation graph for the whole house, some zones of the graph are common for both the cat & the mouse, some other zones/edges are only for either the cat or the mouse. Some edges have low cost for the mouse and high cost for the cat, and vice-versa. All of this is maintained in a single data structure, which is queried with the type of the entity we want to move. ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Crystal-main mailing list Crystal-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/crystal-main Unsubscribe: mailto:crystal-main-requ...@lists.sourceforge.net?subject=unsubscribe