-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Labels
area: simulationInvolved in the game mechanics and simulationInvolved in the game mechanics and simulationgood first issueSuitable for newcomersSuitable for newcomerslang: c++Done in C++ codeDone in C++ codenice new thing ☺A new feature that was not there beforeA new feature that was not there before
Description
Required Skills: C++
Difficulty: Hard
At the moment, changes to the movement cost of cells in the openage pathfinder always overwrite the old values. The old values are not saved anywhere, so going back to a previous state of the grid is currently not possible. Ideally, the grid should support going back in time, so we can roll back changes e.g. for multiplayer matches.
openage already provides the curve data types for storing values over time, so changes could be recorded using the same methods. An array curve (see #1678) would probably be the best option for storing values for a grid.
To try out the current pathfinder, check out pathfinding demo 1 by running the following command:
./run test -d pathfinding.tests.path_demo 1
Tasks:
- Add a cost record storage for cells to the
CostField
implementation. The cost record should use curve. For performance reasons, the recorded values should be stored separately from the current cost values (so not in thecells
vector). - Record the changed cost whenever a modifying operation occurs for
CostField
, e.g. setting a cell value.
Further Reading
Metadata
Metadata
Assignees
Labels
area: simulationInvolved in the game mechanics and simulationInvolved in the game mechanics and simulationgood first issueSuitable for newcomersSuitable for newcomerslang: c++Done in C++ codeDone in C++ codenice new thing ☺A new feature that was not there beforeA new feature that was not there before
Type
Projects
Status
📋 Backlog
Status
pathfinder