Pathfinding
From GDWiki
| To comply with our quality standards, this article may need to be rewritten. Please help improve this article. The discussion page may contain suggestions. |
If you create a game with pathfinding(RTS game, Adventure, RPG or sometimes boardgames), then you need to know a algorithm.
Pathfinding algorithms are different:
If you make a game with tiles you can use a accurate algorithm what can examine all tiles.
But a continous game environment need a quicklier algorithm.
Here is the A* algorithm, remember don't grow angry if it doesn't work.
It's pseudo code you know.
I've converted this code to qbasic and it works (in a textbased environment with a size of 80x50 tiles, but very quick.)
class PSEUDO_CODE_PATHFINDING_IN*A { int list(XSiz,YSiz) ;Declare the tile-list contains the information, if a tile is open,closed,or not examined. int fromX,fromY(XSiz,YSiz); array that stores the parent tile position of the current tile in it int Yx,Yy ;Your position int Tx,Ty ;Targets position int map(XSiz,YSiz);Declare the map-array contains information about the map (unpassable,open terrain etc.) int pathx(length_path) int pathy(length_path) repeat for(x 1 to XSiz) for(y 1 to YSiz) if list x ,y is open then check all adjacent tiles if adjacent tile is not examined and map x,y is open too then that tile is open set the position of the parent_tile in array fromXY if xy = txy then end the loop next y next x until Target_pos_reached function createpath(x1,y1,x2,y2) repeat pathx(count)=x pathy(count)=y x2=fromx(x2,y2) y2=fromy(x2,y2) count++ until x=x2,y=y2 }
Tadaa! Here is your path, if it is converted correctly.,

