EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   Grid Pathing: hopping and grid_entries (https://www.eqemulator.org/forums/showthread.php?t=40024)

AdrianD 09-18-2015 01:41 PM

Grid Pathing: hopping and grid_entries
 
In this thread I will attempt to extract the knowledge of you, the community, on how npcs go about their business in their grids. Specifically, what causes hopping/disappearances and how to fix it. I know this isn't new.

I figure if I can get help to fix this zone then all or most of the other zones should be quite a bit easier. Hopefully, I will understand everything that goes into it much better allowing me to pay it forward.

I've searched google, this site and tested the various rule_values to get a bit of understanding before coming here. I'll try not to make general presumptions based on data specific to me; although making those presumptions begs correction from you. ;)

I only tested in the worst zone. Lavastorm is the worst. Grid pathing seems fine any many other zones.

I've changed plenty of grids in other zones with no issues. I know how to use the two grid tables, `grid` and `grid_entries` and the grid tool within the game. I probably won't need quite the tutorial in using this tool like I did the #path tool.

Some of my notes. I use my own terminology which should be simple to follow.
Quote:

Pathing - grids
............
Testing many of the map pathing rule_values (for npcs who use grids) in lavastorm (old)

+ `rule_values` - `Map:FixPathingZWhenLoading`, and others like it
- set all but `Map:FixPathingZWhenLoading` to false and it seemed to improve quite a bit but it is still unacceptable
+ set `Map:FindBestZHeightAdjust` to 1 from 5 to 10 to 20
- no noticeable change
+ `Map:FixPathingZWhenMoving` turned on/off - this off (false) made pathing noticeably better from observations above
+ changed a few grid_entries to test a few things above
- vertices (waypoints) placed at different locations on the terrain
+ setting the other rules using datatype REAL to various values (ie. RULE_REAL(Map, FixPathingZMaxDeltaMoving, 20), etc)
- high values (~100) create a scenario where the actual Z (/loc) continues to increase along the npc grid path to a ceiling (+265 for this zone and npc tested on) - the grid_entries Z is about +25

I noticed, at least in lavastorm, the grid waypoints seem to connect by rigid poles(lines). When observing the npcs in their grid routine, their paths reflect this rigidity with little flexibility to the actual terrain. They hop. I can see the path they want to take while moving from one waypoint to the next. The distance they fall changes and can be traced from their waypoints. When the line from one waypoint to another is below the visual surface, the npcs disappear into the underworld and reappear when the line is above the surface again. I tried altering, enabling, disabling in various combinations to only gain a certain (small) amount of stability in this regard.
Source compiled from stable on 7/29/15. Titanium client.

I don't know why, exactly, one zone will be fine when another will be Lavastorm.

I would like feedback, please.

Shendare 09-18-2015 02:15 PM

There are three rules that affect the frequency with which NPCs will scan for the best Z-coordinate (elevation) for their current position.

Map:FixPathingZWhenLoading set to true will determine the best Z for each spawn point, once for the zone (I think).

Map:FixPathingZAtWaypoints set to true will have the server check each waypoint along a grid for the best Z-coordinate to reach it. Uses slightly more CPU power than the previous one.

Map:FixPathingZWhenMoving set to true will cause NPCs to constantly check for the best Z coordinate for their current position as they traverse their grid or roaming boxes. I think it does its check each second or something. This uses the most CPU power, but computers running servers in 2015 are unlikely to see any kind of performance hit, really. It was more of an issue 10 years ago.

N0ctrnl 09-18-2015 07:18 PM

Boy was it. Changing anything with pathing back then could knock the zones up to 100% CPU without even blinking.

AdrianD 09-19-2015 08:39 AM

I did some more testing and searching.

Quote:

Pathing - grids
............
Testing some of the map pathing rule_values in qeytoqrg
+ tested in irregular terrain (Z)
+ `Map:FixPathingZWhenMoving` turned off broke grid pathing
+ `Map:FixPathingZWhenMoving` turned on fixed it
+ doing anything else with the above rule off made no noticeable difference
- only tested a few settings

The conclusions I made about Lavastorm do not apply to qeytoqrg. `Map:FixPathingZWhenMoving` does what it's supposed to do.

Testing some of the map pathing rule_values in nektulos
+ the grid pathing behavior of npcs in nektulos is similar to lavastorm although the terrain is less varied
+ any changes made had similar effect to lavastorm or no noticeable effect

I think it's fair to assume the issues are with the zones.
I made this assumption long ago. I am revisiting this issue which has been on my ToDo list for quite some time. Understanding the process a little more is a byproduct of due diligence. I found a quote from this thread from about six years ago. http://www.eqemulator.org/forums/showthread.php?t=28306

Quote:

trevius
Developer

Nektulos is a bit of a unique situation. There are like 3 versions of that zone. If you are using a different version than the spawns in that zone were created in, you will have weird issues like NPCs falling/jumping a lot and other stuff like that. I think the .map file for that that zone are for the original Nektulos only. I know they don't have .map files for the newest version, and I don't think anyone cares about the 2nd version enough to bother with it for anything (it sucks). So, if you want to use the old version, I think you have to do some file name changes so that it stops using the newer one(s). I think the PEQ forums describe the exact changes that you need to make somewhere in their play/setup guide.
I am using the old zones, if that wasn't clear. I have read many threads here and elsewhere at different points in my knowledge to refresh my understanding.

I have tested the client files by logging into P99 and going to these zones, just out of due diligence, again. I'm thinking I need different .map files.

I reverted the .map (linker address map) files for lavastorm and nektulos from the `EQEmuServer` I saved prior to updating on 7/29/15. The hopping issue all but went away. Much improved at first glance. Still could be better.

I'm not sure what happened during the update or if the newer files are for different zone versions. I'm disappointed noone suggested this very simple fix. This has been an issue for years and it is "common knowledge" that it exists.

On the other hand, I am pleased this was simple and greatly improved grid pathing. If other similar issues are found I could try the same fix. I would still like to know how to go about creating the files which had such varying effects on npc behavior.

Good day.

image 09-19-2015 04:29 PM

I have the FixPathingZWhenMoving check turned on in my server as well. One note is there were some zones such as skyfire we had to rebuild the .map file because mobs were warping up in the air if you are using the public .map lists.


These are my server settings for Map/Pathing(if it isn't here its default):
Map:FixPathingZWhenMoving set to true
Map:FixPathingZAtWaypoints set to true

Map:FixPathingZMaxDeltaMoving = 30
Map:FixPathingZMaxDeltaWaypoint = 30
Map:FixPathingZMaxDeltaSendTo = 30
Map:FixPathingZMaxDeltaLoading = 55


Pathing:

Pathing:MinNodesTraversedForLOSCheck = 5
Pathing:CandidateNodeRangeXY = 50


Also increased these so people can't use levitate and other stuff in zones like mistmoore to make mobs run back and forth.

Pathing:CandidateNodeRangeZ = 25

provocating 09-19-2015 11:37 PM

Thanks image, I may have to try your settings on my server to see the difference. This does help with people exploiting pathing nodes?

AdrianD 09-20-2015 12:06 AM

Thanks! I'll give it a shot as well.

provocating 09-20-2015 08:43 AM

Quote:

Originally Posted by image (Post 243328)
IOne note is there were some zones such as skyfire we had to rebuild the .map file because mobs were warping up in the air if you are using the public .map lists.

Yeah I think I looked at skyfire and it was one of those zones that had a gazillion path nodes, I normally do not do path nodes in outdoor zones.

image 09-20-2015 09:32 AM

Quote:

Originally Posted by provocating (Post 243338)
Thanks image, I may have to try your settings on my server to see the difference. This does help with people exploiting pathing nodes?

Changing the Z values helped the most in that respect to stop levitating exploits. Now having said that it didn't eliminate it completely, in situations where the NPC did loop even with the increased Z I manually added a new node under the players levitation spot which addressed the issue. It just seems sometimes you got weird pockets that the NPC gets stuck in a loop.

The NodeXY value I reduced and the min nodes increased because I wanted to make sure the NPC's kept "pathing" until they truly saw the target in Line of Sight. With the default settings I find NPC's like to come directly at you as soon as they see Line of Sight so they would cut corners rather specifically once the LoS check was met.

Yea for skyfire doing #path shownodes locks up the zone pretty good for me, there are a ton of nodes. That zone is kind of necessary though -- I agree open zones I typically wouldn't add pathing points, but there are so many rocky formations that shoot up way high and the NPC's don't know any better so without the pathing they would just go right through them.


All times are GMT -4. The time now is 01:01 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.