As I’m very far in my progress on Path 0.4b I’m no longer debugging 0.3b. I promise that not only will many of the mentioned bugs be addressed in the next release, but also “full” (whatever that means?) editor integration will be included and I’ll have good documentation available.
I’m aiming for a release around unity the 2.5 release as last I heard otee were aiming for a release at GDC09 in march.
Path is now in beta. Please try it out and toss some feedback / bug reports / requests at me in this thread or in a pm.
Documentation is available from the Path project site.
Made a simple screencast of the system in action with some pretty debug info. Have a look: Welcome - TechSmith Screencast
:idea: Original thread:
Hey guys
I just finished an overhaul of the source of my Path project yesterday and though I might as well toss up a pre-release of the thing.
It can be downloaded from my webside along with a demo project: http://angryant.com
Note:
This is a pre-release which means there is absolutely no documentation apart from the demo project. Also it is obviously not done and so all features have not yet been implemented or fully tested. However it is functional and if nothing else, fun to play with.
From the website:
This is a part time project. I plan on keeping it free to use (in accordance with the given license) and updating it as often as I can.
Edit:
A picture speaks a thousand words. Here’s a screen-shot of the demo project in action with loads of pretty debugging lines and strings.
The script ControlNavMeshTest is the control script of the demo. In the update you can see that the demo responds to right-clicks or shift-clicks. These requests a path be calculated for the seeker (in the demo a sphere) to go from its current location to where it is you’ve clicked within the NavMesh.
The seeker in the demo is quite slow, but I’m sure you can figure out a more interesting setup of max speed vs. angular drag etc.
I’ve got some demo code for an earlier version of the system where I used a character controller and the robot from the FPS demo. I’ll have it updated and uploaded hopefully sometime at the end of the week.
That sounds rather funky. Haven’t heard of anyone else having this problem. It is a 2.0 project - perhaps that is a problem if you are on an earlier version of unity?
Side-note: The project is developed for indie using indie.
Just had a look at the code whilst evaluating the eta of the character controller pathfinding demo and realised that for some funky reason I’ve included an old version of the PathFinder class.
I’ll be updating this whilst working on the character controller pathfinder. Other than this, the interfaces presented shouldn’t change much in the immediate future.
No I have not done large scale testing yet. However I have from the design phase thought of performance.
:arrow: Multi-threading: Pathes are requested by the PathFinder to be calculated by the PathSystem. The PathSystem then creates a separate thread to do the calculations and notifies the PathFinder once a result has been found. This means your code is not held up by path calculations. Furthermore the PathSystem has parameters of max calculation. These are in place to terminate path calculation if it goes on for too long.
:arrow: Multi-mesh environment: Calculation time increases with the triangle count of the NavMesh. To allow for detailed pathfinding whilst keeping performance high, the Path system supports having multiple inter-connected NavMeshes for navigation. For instance you could have one NavMesh for your landscape and then additional, more detailed meshes, for the interior of buildings.
:arrow: Path re-use: Currently not fully implemented, the PathSystem stores calculated pathes for a set amount of time (dependant on how frequently it is used). These can then be re-used if a PathFinder requests a path including the same from and to mesh triangle - thus slicing calculation time altogether.
:!: Since stored and active pathes are removed (and their PAthFinders notified) if a path becomes invalid, path re-use will not result in an invalid path being stored and given to a new PathFinder.
:arrow: Just uploaded a much simpler to use interface to the system.
:arrow: Got a few quirks with path re-use, but it should be up and running next time I have an hour or two dedicated to the project.
:arrow: This design should also be quite simple to make use of in JavaScript. I’ll be uploading a demo using JavaScript in my next session.
:arrow: Also I’ve tweaked the parameters on the demo so it should be more tolerable to watch
A javascript demo is still on the list, but I just wanted to upload a demo implementing pathfinding and CharacterController as promised. I’m using the robot from the Unity demo projects to demo this, including how animation could be incorporated.
:!: The core PathFinder still needs some tweaking as is quite apparent from this demo. Hoping to get this fixed this evening.
:arrow: Uploaded a bugfix. Not planning on changing the current interface design in any near future. Path is now in a functional state without all features implemented, but none the less functional.
:!: Moved the project to beta. Please try it out and toss some feedback / bug reports / requests at me in this thread or in a pm.