Difference between revisions of "Proposals/Pathfinder wishlist"

From Minetest Developer Wiki
Jump to navigation Jump to search
(→‎Basics: state their relevance)
 
(6 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
== Basics ==
 
== Basics ==
 
* '''Height clearance''': Require optional height clearance for tall objects (e.g. can only proceed if 2 nodes height are clear)
 
* '''Height clearance''': Require optional height clearance for tall objects (e.g. can only proceed if 2 nodes height are clear)
  * Important because: Mobs and players rarely are only 1 node high
+
** Important because: Mobs and players rarely are only 1 node high
* '''Custom nodes''': Select which nodes to consider free/blocking/walkable
+
* '''Custom nodes''': Select which nodes to consider free (can move through), blocking (can not move through) or walkable (can walk upon)
  * free: Can walk through
+
** Important because: You want to teach mobs to avoid lava or other nasty blocks
  * blocking: Can not walk through
+
* '''Width clearance''': Require the path to have at least a certain width e.g. between columns
  * walkable: Can walk upon
+
** Important because: Mobs need to avoid narrow paths they can't fit through, especially if they are more than 1 node thick
  * Important because: You want to teach mobs to avoid lava or other nasty blocks
 
  
 
== Movement options ==
 
== Movement options ==
These should be toggable on/off.
+
These change how the pathfinder can move through the world. They are supposed to be toggable on/off.
  
 
* Fly
 
* Fly
Line 17: Line 16:
 
* Climb in climbable nodes
 
* Climb in climbable nodes
 
* Move diagonally
 
* Move diagonally
 +
* Use something (mainly for NPC using things such as boats, minecarts, ladders, teleporters)
  
 
== Movement contraints ==
 
== Movement contraints ==
Line 26: Line 26:
 
* Avoid non-liquids
 
* Avoid non-liquids
 
* Don't jump on or in <code>disable_jump</code> nodes
 
* Don't jump on or in <code>disable_jump</code> nodes
 +
* Prefer nodes to travel on (for example gravel rather than dirt/grass)
  
 
== Other ==
 
== Other ==
 
* Support nodeboxes (but how?)
 
* Support nodeboxes (but how?)
 
* Time out when search takes too long (with parameter?)
 
* Time out when search takes too long (with parameter?)
 +
* default action after move impulse is gone such as "back to base" after intruding player is out of view.
  
 
== Issues ==
 
== Issues ==
 
https://github.com/minetest/minetest/issues/5479
 
https://github.com/minetest/minetest/issues/5479
 +
 +
[[Category:Core Engine]]

Latest revision as of 21:53, 15 August 2022

This is a list of wishes for pathfinder.

Basics

  • Height clearance: Require optional height clearance for tall objects (e.g. can only proceed if 2 nodes height are clear)
    • Important because: Mobs and players rarely are only 1 node high
  • Custom nodes: Select which nodes to consider free (can move through), blocking (can not move through) or walkable (can walk upon)
    • Important because: You want to teach mobs to avoid lava or other nasty blocks
  • Width clearance: Require the path to have at least a certain width e.g. between columns
    • Important because: Mobs need to avoid narrow paths they can't fit through, especially if they are more than 1 node thick

Movement options

These change how the pathfinder can move through the world. They are supposed to be toggable on/off.

  • Fly
  • Swim in liquids
  • Climb in climbable nodes
  • Move diagonally
  • Use something (mainly for NPC using things such as boats, minecarts, ladders, teleporters)

Movement contraints

Add a couple of options to add rules to constrain movement. These should be toggable on/off.

  • Avoid nodes with damage_per_second > 0
  • Avoid nodes with drowning > 0
  • Avoid liquids
  • Avoid non-liquids
  • Don't jump on or in disable_jump nodes
  • Prefer nodes to travel on (for example gravel rather than dirt/grass)

Other

  • Support nodeboxes (but how?)
  • Time out when search takes too long (with parameter?)
  • default action after move impulse is gone such as "back to base" after intruding player is out of view.

Issues

https://github.com/minetest/minetest/issues/5479