Difference between revisions of "Proposals/Pathfinder wishlist"

From Minetest Developer Wiki
Jump to navigation Jump to search
m (→‎Basics: Fix formatting)
 
(5 intermediate revisions by 3 users not shown)
Line 4: Line 4:
 
* '''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
 
** blocking: Can not walk through
 
** walkable: Can walk upon
 
 
** Important because: You want to teach mobs to avoid lava or other nasty blocks
 
** 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 ==
 
== 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