Sign in to follow this  
PumpkinPieman

PathLib Extentions

Recommended Posts

Recently I have been looking over PathLib, a rather undocumented(eng) PathFinding library. Unfortunatly a lot of features that I'd like to see in a path finding library aren't in this one. So for the past few days I've been trying to understand the structures and mechanics. In that time I've extended it to except lists of paths so that when one path is completed or the unit for some reason stopped, it would continue off to the next path. The other feature I have been looking in to would be extending it to take walkers(units, objects ..) that have variant sizes. Such that units like infantry can be properly represented outside of things like buildings. Now I'm sure a few of you have looked for pathfinding libraries and have come across this one. But how many of you have been able used it in your own projects? To be honest, I haven't done a whole lot of work with pathfinding algorithms like Astar and an unsure how I would be able to implment something such as this. Those who have, do you have any suggestions? Also, do you think interest would generate if I set up a page for an open source project?

Share this post


Link to post
Share on other sites
I think the issue might be down to how game-specific you want to make it. It sounds like what you've added to it is something that I might not choose to put in the library, because chaining multiple paths seems to be outside the scope, as does representing the 'size' of whatever's going along the path.

Perhaps there's an argument for having a low level library which is purely graph traversal, and a high level library on top of it which provides some 'pathing' specifics.

I've always used my own home-rolled version of the A* algorithm, personally.

Share this post


Link to post
Share on other sites
To be real honest I don't want to spend 2 to 3 weeks learning and writing my own pathfinding engine. But as it seems it may just take that long to find one with the specifications that fit a generic RTS. I have a summer to work on personal projects, then I'm back to school and they take the back seat.

Like you had said, you create your own pathfinding engines. But it leaves me out in the dark because the options available are lacking features, inefficient, or commercially licenced.

Share this post


Link to post
Share on other sites
Quote:
Original post by PumpkinPieman
But it leaves me out in the dark because the options available are lacking features, inefficient, or commercially licenced.


Hence why most hobbyist game developers write their own! ;)

...and Kylotan... you must be looking over my shoulder at one of my current projects! ;)

Share this post


Link to post
Share on other sites
PumpkinPieMan, I don't think robust pathing is actually that difficult, but the differences between games means that finding a generic solution is quite difficult. I don't think it's a case of them "lacking features", more the case that you want something quite specific that wouldn't work well as a library. If you read all the articles in the Game Programming Gems/AI Programming Wisdom books about this subject area, you'll see there are many different ways to approach the issue and that there's no single solution that fits all situations. Things you've mentioned wanting for your game just wouldn't be needed in my game, for example.

Share this post


Link to post
Share on other sites
Well, what I'm doing is just writing extentions. The functions don't internally change the structure of the engine. So the original code can be run without the use of extra helper functions.

Yeah, I understand what you're saying. But when I searched for PathFinding Libs the first time I had hoped they would be as common as 3D engines, it didn't seem that way though.

At any rate I'll slowly work and reshape this one to my liking, I guess that is all I can do. I can understand that pathfinding is used for many purposes outside the RTS genre, but I figured the genre was big enough that people would add these features if they were needed.

I'm new at pathfinding, so maybe I got my things wrong and this is normally done in another process. *shrugs*

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this