Tasks:Path Finding: Difference between revisions

From Adonthell
Jump to navigation Jump to search
Freddy3 (talk | contribs)
m Updated state of pathfinding tasks
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
__NOTOC__
Back to [[Tasks:Contents|Task List]]
== Overview ==
== Overview ==


Line 10: Line 13:
== Requirements ==
== Requirements ==


* A perfect or near-perfect path has to be found, when possible, from one point to another.
* <del>A perfect or near-perfect path has to be found, when possible, from one point to another.</del> (done)
* It should be able to handle goals in different altitudes, handle the y axis.
* <del>It should be able to handle goals in different altitudes, handle the y axis.</del> (done)
* It has to be quick and do not degrade the frame rate in older machines.
* <del>It has to be quick and do not degrade the frame rate in older machines.</del> (done)
* NPC's should be able to handle collision with other NPC's or objects that were not supposed to be in their path, ie. blocked the path after the search was done,
* <del>NPCs should be able to handle collision with other NPCs or objects that were not supposed to be in their path, ie. blocked the path after the search was done.</del> (done)
* It should be able to load and save data so that it can reconstitute at least ongoing pathfinding searches in the current map, after a game save/load.
* <del>It should be able to load and save data so that it can reconstitute at least ongoing pathfinding searches in the current map, after a game save/load.</del> (done)
* It should be capable of following the player to wherever he goes, so that the player can't find spots where he can attack without being wounded.
* <del>It has to allow the possibility of choosing which direction the NPC will face after finishing moving.</del> (done)
* It has to be able to find items in the current map.
* Support jumping and climbing.
* It has to be able to find items in the current map, <del>as well as specific areas in the map (ex: "Redwyne Inn", or "Someone's House", etc)</del>, and other NPCs. (partially done)
* <del>Each map tile should have a different interest value, so that different creatures/races can follow paths mostly composed of tiles they "like" and avoid tiles they "dislike". Ex: a human might choose a path consisting mostly of roads, avoiding forest and mountains, while a dwarvf might have a path consisting mostly of mountain tiles. This could also be taken to another level and each race could have different velocities according to the tile they are standing on, ex: water tiles would be slow for most races, humans would be fast on roads, slow on mountains, etc...</del> (done)


== References ==
== References ==
* [http://cvs.savannah.gnu.org/viewvc/adonthell/adonthell-0.3/src/path.h?view=markup Adonthell 0.3] version of the pathfinding code in CVS
* [http://cvs.savannah.gnu.org/viewvc/adonthell/adonthell-0.3/src/path.h?view=markup Adonthell 0.3] version of the pathfinding code in CVS
* [http://cvs.savannah.gnu.org/viewvc/adonthell/adonthell/src/world/ Version 1.2] of the pathfinding code in CVS
* [https://github.com/ksterker/adonthell/blob/master/src/world/pathfinding_manager.cc Latest] version of the pathfinding code in GIT
 
* [http://lists.nongnu.org/archive/html/adonthell-devel/2012-11/msg00000.html Open Issues]


[[Category:Tasks]]
[[Category:Tasks]]
[[Category:Development]]
[[Category:Development]]

Latest revision as of 10:41, 10 November 2012

Back to Task List

Overview

The pathfinding engine has the responsibility of providing NPCs the capacity to move from one point to another in the map. To do so it first needs to find a path between those two points, and then handle the movement of the character trough the path.

Dependencies

Mapengine implementation

Requirements

  • A perfect or near-perfect path has to be found, when possible, from one point to another. (done)
  • It should be able to handle goals in different altitudes, handle the y axis. (done)
  • It has to be quick and do not degrade the frame rate in older machines. (done)
  • NPCs should be able to handle collision with other NPCs or objects that were not supposed to be in their path, ie. blocked the path after the search was done. (done)
  • It should be able to load and save data so that it can reconstitute at least ongoing pathfinding searches in the current map, after a game save/load. (done)
  • It has to allow the possibility of choosing which direction the NPC will face after finishing moving. (done)
  • Support jumping and climbing.
  • It has to be able to find items in the current map, as well as specific areas in the map (ex: "Redwyne Inn", or "Someone's House", etc), and other NPCs. (partially done)
  • Each map tile should have a different interest value, so that different creatures/races can follow paths mostly composed of tiles they "like" and avoid tiles they "dislike". Ex: a human might choose a path consisting mostly of roads, avoiding forest and mountains, while a dwarvf might have a path consisting mostly of mountain tiles. This could also be taken to another level and each race could have different velocities according to the tile they are standing on, ex: water tiles would be slow for most races, humans would be fast on roads, slow on mountains, etc... (done)

References