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 01-18-2008, 10:30 PM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

Quote:
Originally Posted by moydock View Post
My mobs still go under the world when trying to go through a hill, the hill can be little more than a bump too. What i've found is if you give precise waypoints, that only take him on a straight line, polygon to polygon, he will never go under the world.
The issue with some zones is that the Verant/SOE designers put in a base ground mesh and then put mountains on top of that, so if a waypoint sends a mob under the ground, the BestZ code looks down and sees the lower ground level under the mountain and sends the mob down there.

I had experimented with further fixes to the BestZ code to look up and down and decide which was the more likely ground level the mob should be it, but it was getting messy, so I stopped work on that.

The tool I am currently working on it plots the paths between waypoints, looks for collisions and inserts extra waypoints to avoid the collisions. In very uneven terrain, it will put an extra waypoint on both edges of a polygon to lead the mob safetly across it. It also inserts extra waypoints to keep the mob close to the ground and not attempt to path through the air.

This is done 'offline' to reduce the overhead at runtime, however a grid that has, say 20 waypoints, can easily turn into one that has 200+ when processed like this, so there is extra overhead for the server in terms of extra memory to store the waypoints and CPU to process them, although I can't really quantify the latter.


It is really only designed for auto-fixing outdoor paths at the moment, but I haven't got an ETA as yet as although it fixes paths well in a lot of cases, there are still some cases where I set it off fixing a zone and it will find some unhandled set of geometry conditions or a bug where it gets into a loop. The job is then to analyse the set of conditions that causes that and put in logic to either to be able to fix that waypoint or to safetly exit the auto-fix routine to tell the user he will have to manually insert waypoints to get around it.
Reply With Quote
  #2  
Old 01-26-2008, 12:49 PM
moydock
Discordant
 
Join Date: Jun 2005
Posts: 286
Default

Great to hear man, this would be wonderful for designing new content. My #1 headache is waypoints. Don't give up! Don't let the hills win! <3
__________________
-Croup (the rogue)
Creator of Pandemic (PvP-Racewars)
Reply With Quote
  #3  
Old 01-27-2008, 10:08 AM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

Quote:
Originally Posted by moydock View Post
Don't give up! Don't let the hills win! <3

I've not given up, although there have been frustrating days that I wanted to, in fact I have worked on this every day for almost a month, often in work, when there is a quiet moment. It's taking
a lot longer than I thought, especially the outdoor auto-fix features which I am a concentrating most on. It's largely a case of one step forward, two steps back, although I am slowly
getting there. I've had to make a couple of mods to azone to fix some issues with the map files, and also to the LineIntersectsFace/Zone functions to cater for intersections right on the edge of a polygon (I've learned a LOT about 3D geometry doing this ... I didn't know what a Normal vector was a month ago )

I think I made a bit of a breakthrough today with a (on the face of it) reliable method of detecting if a point
is 'under the world', rather than just underground, based on the algorithm used for back-face culling. I am hoping this may lead to a reduction in the number of waypoints that need to be inserted
to make the path follow the ground, but I need to try this out next week.

Forgive the rambling, all I wanted to say was I am still on the case, but still no ETA (still several weeks off). What I will say is you will need Python/pygame installed to
use this (because OpenEQ uses those for it's UI, and I kept it, because although I didn't know Python, it was easier than building a new UI from scratch), and also you will
need to build new MAP files with a patched version of azone (I posted in the Development/Bugs section about one of the fixes required about a month ago, but there is one
more azone patch required that I haven't got around to posting yet).

For what it's worth, here's some current screenshots:



I added a mode to display the polys instead of textures:



And also an overhead view:

Reply With Quote
Reply

Thread Tools
Display Modes

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 03:18 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 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3