Cost stamps (pathfinder) #1676
Labels
area: simulation
Involved in the game mechanics and simulation
good first issue
Suitable for newcomers
just do it
You can start working on this, there should be nothing left to discuss
lang: c++
Done in C++ code
nice new thing ☺
A new feature that was not there before
Required Skills: C++
Difficulty: Medium
Our current model of the flow field pathfinder doesn't account for temporary changes of the cost grid, e.g. a building being placed on terrain. In this example, the building would change the movement cost of the grid (making affected tiles impassable) only as long as it exists. Once it is removed, the cells should return to their original cost value (e.g. that of the underlying terrain).
For flow fields there already exists a suggested solution for this in the form of cost stamps (check out the related article). Essentially, cost stamps record the original value of the cells when they change its value. Removing a stamp restores the original value.
To try out the current pathfinder, check out pathfinding demo 1 by running the following command:
Tasks:
CostField
implementation. For performance reasons, the stamps should be stored separately from the current cost values (so not in thecells
vector). Stamps should recordCostField
. You should at least implement these functions:CostField::stamp(..)
: Place a stamp down for a specific cellCostField::unstamp(..)
: Restore the original value for a specific cellFurther Reading
openage::path
pathfinding moduleThe text was updated successfully, but these errors were encountered: