pathfinding help
Blitz3D Forums/Blitz3D Beginners Area/pathfinding help| 
 | ||
| Hi, i'm back, with an even more naive question than ever before! I've tackled A* already, and failed miserably ( see below ). I was wondering if there's any file somewhere with a simple plug-in-and-use pathfinding system. It doesn't need to be extremely fast, just usable. I want to be able to set up a grid of given dimensions, and send an object from point A to point B, A* style. It seems that all the easy ones are 3D node-based and are way too slow for an interpolated grid. A simple 2D that i could translate into 3D (relative to the terrain, or whatever) would do nicely. That or tell me what's wrong with the above code. thanks!! (i send a thank-you-cookie-program to whoever solves either of my problems) | 
| 
 | ||
| You really are best learning it yourself :o) When you get it ( i swear it just CLICKS on day), you'll see it's not that hard at all. I can't be of more help though, sorry ^_^ | 
| 
 | ||
| well, i took another shot at coding it, but I'm getting killed (on step 1  here on a MAV for doing this: 
for node.nodes = each nodes
     for node.nodes = each nodes
     next
next
anybody wanna fix this for me? I'm kinda perplexed how to work around the above thing. code down below! And Ross, I totally understand the logic of A*, just I keep screwing up on the code for it. I drew out a grid and A-starred my way from point A to point B around obstacles to prove to myself I knew it. I tend to have trouble translating logic into code when it's complex and random MAV-involving... | 
| 
 | ||
| ..have you try to setup network of nodes where each connected node is a child or parent of previous one? On that way you can simply get closest path/node to the desired location by just checking parented nodes ..thats what I did, and its really simple to use and working just fine for me.. | 
| 
 | ||
| 
for node.nodes = each nodes
     for node.nodes = each nodes
     next
next
I'm certain that will fail. You have the same varaible assigned to both loops. 
for node1.nodes = each nodes
     for node2.nodes = each nodes
     next
next
That should work. | 
| 
 | ||
| is a node just a predefined set of coords on a map? i.e with pacman it would be all square, but with 3d maps like quake maps, would it just be the corners of rooms and doorways? | 
| 
 | ||
| I'll try that naughty alien, thanks  (andy_mc, each node is a coordinate on a grid, I hope to just use 2D graphics and translate it into 3D using a heightmap or whatever I do) | 
| 
 | ||
| why do I get an error saying "Variable must be a type" on these lines: If NodeID(n * m)\x = StartX And node\y = StartY Then NodeID(n * m)\StartNode = True If NodeID(n * m)\x = EndX And node\y = EndY Then NodeID(n * m)\EndNode = True in this code: | 
| 
 | ||
| really guys, something like  this  for b3d would be FREAKING AWESOME.  If you have one, find one, make one, get it to me :D I'm about to explode, I can't reverse engineer anybody else's, I can't code my own because stupid syntax errors keep getting me and it takes about a day to figure out why for EACH, and all the good ones that are SIMPLY TOO PERFECT for my purposes are bmax!!! GAH!!!!!!!!!!! (I think I need to go play some TF2 to blow off some steam by blowing off some heads...) ....FYI: I've been at this for two hours straight today and gotten absolutely nowhere, I have the right, no, the DUTY to be ticked off :) | 
| 
 | ||
| Hope this is what you're after.  I'm sure it'll make sense to ya. If NodeID(n * m)\x = StartX And NodeID(n * m)\y = StartY Then NodeID(n * m)\StartNode = True If NodeID(n * m)\x = EndX And NodeID(n * m)\y = EndY Then NodeID(n * m)\EndNode = True | 
| 
 | ||
| dang, typo, I feel like an idiot now :( | 
| 
 | ||
| ok, bram translated  this  for me to b3d, and it works kinda fine.  Except it's SLOW.  Up to 50m/s per loop on a 256 x 192 grid.  Check this out: pathinc.bb: test.bb: does anybody have some ideas to speed thing along? (I need speed, at least 100 or so "dudes", 20 "dudes" is around 0.5FPS!!) | 
| 
 | ||
| well, I didn't quite fix the speed problem, but I made it look nonexistant.  I just use an interpolation of positions, but the stupid "dudes" keep getting stuck on walls.... test.bb: | 
| 
 | ||
| hmm...fixed that, now I guess I just kinda...well, unless anybody can speed up the code, it's my problem now.  Thanks for the help, guys! | 
| 
 | ||
| dun dun dun.... this doesn't plug into a 3d FPS too well, as soon as I raise the grid to 100 x 100, it's SLOW... I may have to chunk the pathfinding grids....would it be practical to give each npc a grid of it's own, and if the player invaded the grid, it would chase the player?? |