Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Path finding context #18

Open
namreeb opened this issue Apr 19, 2020 · 5 comments
Open

Path finding context #18

namreeb opened this issue Apr 19, 2020 · 5 comments

Comments

@namreeb
Copy link
Owner

namreeb commented Apr 19, 2020

The user must be able to create a path find context to configure certain behaviors, such as:

  • Water behavior (can walk on land? can swim?)
  • Obey maximum slope of ADT geometry?
  • "Spline mode" where only the final hop of a path requires a precise Z value?
  • "Human-like mode" where movement heuristics are applied to make the movement appear more natural (eroding edges to not hug the walls, smooth turns)?
  • Shortcuts (flight masters, hearthstone, teleportation spells, etc.)

Not all of these features need necessarily be implemented for the initial release, but a forward-compatible context structure should be created that can support them when they are introduced.

@namreeb namreeb added this to the Initial release milestone Apr 19, 2020
@namreeb
Copy link
Owner Author

namreeb commented Apr 19, 2020

Another possible context option:

  • Prefer roads for long paths

@oiramario
Copy link

oiramario commented Apr 18, 2022

  • why dont you reduce size of mmtile by detect angle > 60, then we can load whole instance map into memory. (all of navmaps of cmangos about 1.2G, and kalimdor of namigator > 4.3G)
  • The path generated by cmangos is usually in the middle of the road, and most of path of namigator are the edge of triangles, which will lead to easy falling to the next layer in some cases.
  • reference https://gamedevelopment.tutsplus.com/series/understanding-steering-behaviors--gamedev-12732. I think seek and collision avoidance behaviors are suitable for application scenarios. Shall we try to throw away CTM and use forward start / stop instead? The face of character is the driving force.
  • Shortcuts you said that I think dont for namigator.
  • We can set some connection points at the edge between area, so that cross region movement can move to these points first.

@namreeb
Copy link
Owner Author

namreeb commented Apr 18, 2022

why dont you reduce size of mmtile by detect angle > 60, then we can load whole instance map into memory. (all of navmaps of cmangos about 1.2G, and kalimdor of namigator > 4.3G)

Server-controlled movement does not honor ADT slope. The files are large because they contain not only the mesh data, but also the height field. This is to support temporary obstacles. It very well could be that temporary obstacles don't need to be enabled for large continents, so that data may end up being excluded by default.

The path generated by cmangos is usually in the middle of the road, and most of path of namigator are the edge of triangles, which will lead to easy falling to the next layer in some cases.

Can you provide a concrete example of where corners are cut to the extent that an agent will fall off a ledge? I don't believe that units in WoW have width, so they should be able to stand right on the edge and be fine. This also is important for successful pathfinding across the rope in the Blade's Edge Arena.

reference https://gamedevelopment.tutsplus.com/series/understanding-steering-behaviors--gamedev-12732. I think seek and collision avoidance behaviors are suitable for application scenarios. Shall we try to throw away CTM and use forward start / stop instead? The face of character is the driving force.
Shortcuts you said that I think dont for namigator.
We can set some connection points at the edge between area, so that cross region movement can move to these points first.

I don't understand the rest of your comment.

@oiramario
Copy link

Karazahn
when agent move from A to B will fall off to conner. map id 532(Karazahn).
forget my rest comment

@namreeb
Copy link
Owner Author

namreeb commented Apr 20, 2022

Okay, I opened issue #30 for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants