Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 06-28-2009, 06:50 PM
Dibalamin
Hill Giant
 
Join Date: Dec 2007
Posts: 182
Default Derision, your pathfinding code

Is brilliant. Well done. Unrest is probably the most problematic zone in the game and it works amazingly well.

Is there anything we as the community can do to help edit the .path files?
__________________
Retired EMarr
Project1999 Developer
Reply With Quote
  #2  
Old 06-29-2009, 07:46 AM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

Not yet, but it is high on my priority list to put #commands in to allow people to place path nodes with an external command line tool to calculate the connectivity (using line-of-sight and terrain 'steepness' tests) and generate their own .path files.

The reason for an external program to create the .path files is because it is heavily CPU intensive with the time it takes growing exponentially with each added path node. I'll add in a feature to reload the .path file into a running zone, so it shouldn't be too laborious a process.
Reply With Quote
  #3  
Old 06-29-2009, 09:30 AM
Dibalamin
Hill Giant
 
Join Date: Dec 2007
Posts: 182
Default

Aight!

Only thing I might mention, is that feared/aggro'd mobs don't use doors....they really didn't need to before, as they would just run through the wall...

I see guards in cities opening doors as they path by, so I think the code is already there.
__________________
Retired EMarr
Project1999 Developer
Reply With Quote
  #4  
Old 06-30-2009, 11:41 AM
Dibalamin
Hill Giant
 
Join Date: Dec 2007
Posts: 182
Default

Someone over at P1999 reported that in Unrest, live mobs like beetles and werebats were running away at full speed while snared.

Quote:
Live enemies that run upon low health are bugged right now. Death Beetles and Werebats were the two that I was having trouble with today.

At low health they run at full speed, even with snare on, they still run at full speed.

The pathing looks good though haha.
http://classicbetatest.guildlaunch.c...d814&gid=62867

Nothing special in our DB that would prevent this for these mobs.
__________________
Retired EMarr
Project1999 Developer
Reply With Quote
  #5  
Old 06-30-2009, 12:49 PM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

I see the problem.

MobAI.cpp Line 649
Code:
CalculateNewPosition2(Goal.x, Goal.y, Goal.z, GetRunspeed());
Should be:
Code:
CalculateNewPosition2(Goal.x, Goal.y, Goal.z, GetFearpeed());
I'll test this and commit it shortly.
Reply With Quote
  #6  
Old 06-30-2009, 01:50 PM
gaeorn
Developer
 
Join Date: Apr 2009
Location: USA
Posts: 478
Default

Quote:
Originally Posted by Derision View Post
I see the problem.

MobAI.cpp Line 649
Code:
CalculateNewPosition2(Goal.x, Goal.y, Goal.z, GetRunspeed());
Should be:
Code:
CalculateNewPosition2(Goal.x, Goal.y, Goal.z, GetFearpeed());
I'll test this and commit it shortly.
Wow, GetFearpeed()... so now they pee their pants when feared? I know I would! lol
Reply With Quote
  #7  
Old 07-10-2009, 01:51 PM
Yeormom
Discordant
 
Join Date: Apr 2004
Location: 127.0.0.1
Posts: 402
Default

I look forward to more of your path finding goodness. The lack of NPC pathing is the last big problem I see with the project code, since many dungeons are unplayable. I noticed the path files were far from plain text so an editing tool sounds quite exciting.
__________________
Yeorwned
Bane of Life [Custom Classic/PvP]
Reply With Quote
  #8  
Old 07-25-2009, 04:55 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

Because I'm impatient I went ahead and added several #path commands for direct manipulation and saving of the pathing system. I made blackburrow and qeynos2 maps and they work quite well but I'm still working out the quirks in the commands.

#path process is fairly CPU intensive and should probably not be used on any live servers.
#path resort 's use isn't very obvious but basically if you delete a connection it can leave holes in the neighbors list which causes paths to completely fail; because for optimizing reasons when the path code comes to a hole it assumes it's the end of the line, it resorts it so there are no more holes in path node neighbors.

Also no changes are actually made to the .path file in the maps folder, if you don't #path dump it all your changes are lost when the zone boots down.
Everything else should be fairly straight forward.
Reply With Quote
  #9  
Old 07-25-2009, 06:45 PM
Dibalamin
Hill Giant
 
Join Date: Dec 2007
Posts: 182
Default

Did you upload those path files somewhere Kimmy? I didn't see them at the SVN downloads. So, I may be blind!
__________________
Retired EMarr
Project1999 Developer
Reply With Quote
  #10  
Old 07-26-2009, 12:23 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

I don't actually like my qeynos2 file I made all that much but I did both blackburrow and mistmoore and added them to pathfiles download at http://code.google.com/p/projecteqemu/downloads/list
Reply With Quote
  #11  
Old 07-26-2009, 11:44 AM
Dibalamin
Hill Giant
 
Join Date: Dec 2007
Posts: 182
Default

You rock. I'm assuming towards the end of the #path frenzy of maps that quest::pathto & quest::moveto will use the pathing maps?
__________________
Retired EMarr
Project1999 Developer
Reply With Quote
  #12  
Old 07-26-2009, 11:19 PM
vales
Discordant
 
Join Date: May 2006
Posts: 458
Default

Hmm. I think there's something wrong with mine because I've downloaded the pathfiles, and watched in horror as the NPCs in PoK were walking through the walls, buildings, and hopping on top of the structures. This was with the pathfiles before the newest Pathfiles_01.zip was uploaded.

Is there a certain setting or something in rules_values or something that I'm missing?
Reply With Quote
  #13  
Old 07-27-2009, 12:40 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

The pathfiles in the zip haven't changed. And I don't believe there's been any changes to the code recently in terms of the pathing code.
Reply With Quote
  #14  
Old 07-27-2009, 12:59 AM
vales
Discordant
 
Join Date: May 2006
Posts: 458
Default

Must be something in mysql then. I'll check the defaults to see if they've been changed or something.
Reply With Quote
  #15  
Old 07-27-2009, 01:05 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

I'm going to start uploading any maps I make to the map svn, I did tutorialb and worked on mistmoore a bit, there were certain spots that were unreachable on the map.

Also fixed up yet more #path stuff, including a crash related to adding and deleting nodes. Also including adding #path resort nodes which is needed if you ever get your node ids out of order, like if for example you ever create node 1 2 3 4 5 and then delete node 3 so it's 1 2 4 5 it will cause issues because some of the code assumes nodes are in order and none are missing.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 05:25 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3