EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Archive::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=621)
-   -   Pathing Question And Offer To Help DevTeam (https://www.eqemulator.org/forums/showthread.php?t=3616)

DeletedUser 11-06-2002 07:27 AM

hmm, what if its a wide area though. its open to wander. Is there some sort of way to restrict it from going to the area of a wall.

In EQLive, i've seen some mobs walk into walls.. mainly because of lag which would make sense but also because they are not in that area.. its a weird bug.

Example:
In city of mist, monsters on the top area of the zone, im guessing they fall sort of and they fall onto the ground and start walking, they usually just walk into walls then disappear.. im guessing they dont fall its just a bug. But what if it does run into a wall? what would happen sense it doesnt know what it is.

As for Glasswalker, this would be a great thing to start if you are going to show work to EQEMu. Just a suggestion ;)

quester 11-06-2002 07:41 AM

Quote:

Originally Posted by Darkyth
hmm, what if its a wide area though. its open to wander. Is there some sort of way to restrict it from going to the area of a wall.

It doesn't know it walked into a wall, and keeps going. Let me try to explain what happens from both points of view.

Code:

      |
a    |    b
      |

You are going from point A to point B. There is a wall between you. SERVER side, you don't see this wall. You go straight from A to B as if the wall wasn't there. CIENT side, when you get to the wall, your model will be shown hung up on the wall. You aren't really hung up.. but the client sees the wall, does the collision detection and hangs you on the wall. Then next movement update packet tells the client you are past the wall because you never stopped in reality.

This is what happens in wide opens. Server side, the mob just keeps walking merrily along, because it never saw the wall. Client side, it appears to hang in the wall because of client side collision detection, because the client predicts movement based on last known vecotr.. As soon as the client gets the next movement packet though, it updates the position. This is why you see mobs that sometimes look like they are hung up on a wall or structure. A good example, if the Hermit hut in SK. There is a Gnoll who always walks right into the wal.. appears to be hung up on the wall for a bit, then pops to the other side. In reality, the Gnoll never stopped. He walked right "through the hut", because he doesn't even know it is there.

In more complicated zones, the problem of obstructions is moot, because the pathing is designed to prevent them from getting hung up. In other words, while the server doesn't know this hallway takes a right turn up ahead, it doesn't matter. Because the pathing takes a right turn, and thats all it needs.

Did I make it any clearer?

Trumpcard 11-06-2002 07:44 AM

Perfectly..

That explains why cutting corners to try to lose a mob never helped me a bit...

The server doesnt care.. He's stll chewing a hole in your ass, even if the client might disagree..

DeletedUser 11-06-2002 09:29 AM

Im sure that the EQLive servers follow some sort of map that just has pathing rules that they follow, I doubt a EQEMu developer has the time or expertise to work on it. Theres so many other things that need to be worked on, be happy mobs move. At one time they just stood still and faced you when you attacked them.

quester 11-06-2002 09:35 AM

Quote:

Originally Posted by image
Im sure that the EQLive servers follow some sort of map that just has pathing rules that they follow

All it follows is the path points as defined. The map of the zone structures, gemoetry, is NOT used. Or at least, never used to be used.

It just isn't needed.

If a hallway goes straight, then turns right.. The mob doesn't need to know this, because his path points do the same thing.

quester 11-06-2002 09:41 AM

It is really just this simple... A mob can only move from one ppoint to an adjacent ppoint. Those ppoints are placed, in such a way to avoid obstacles in a zone. Those ppoints are placed in 3 dimensions to avoid Z problems. Those ppoints are ALL a mob needs to do pathing.

In Wide Opens, NO geometry is taken into account. A straight line from A to B is used, assuming BOTH points are inside the same wide open.

It CAN be done in the emu, and without the overhead you all seem to think it will cause. A* pathing is very rudimentary, and easy on the resources as long as you don't go overboard with it. Yes, a zone with 1k wandering mobs would be a killer. Yes, on lower end systems here, you would have to keep the number of roamers down.. probably couldn't do as many as live EQ. But you can still have roamers, and you can still have pathing so that statics when tagged will follow proper pathing.

kathgar 11-06-2002 11:08 AM

most people run 5-10 zones on one computer, that isn't even dedicated as a server easily get way too amny mobs

mByte 11-08-2002 08:38 AM

Sounds interesting.

I would also create it as a file of its own just like the quest.

DeletedUser 11-16-2002 10:35 PM

Image,
I have to disagree, in a whole hearted opinion. Your right about being greatful they move and all, but pathing in my opinion is one of the bigger things the emulator needs.

Trumpcard 11-17-2002 02:10 AM

Well, we shoould consider implementing a waypoint system in, then experiment with using it. 1st case would be a fleeing mob just to test it out. Its a simple case, isolated, and it would allow us to put some thought into the implementation before we just have a zone of wandering mobs.

Put in some simple logic to determine whether to flee or not based on level relative to the player, hitpoints, then on a successful flee check, move to the nearest waypoint and start a traversal. I would think load the waypoints from the database then pull them into the memory space when the zone loads. The waypoints themselves won't take up alot of memory, we'll just have to experiment with the movement logic a bit to keep it from being to intensive.

Mobs would need to be identified as wanderers or not. Guess a boolean flag in the database would take of take, spawngroups would need to be divided into wanderer groups and stationary groups.

Just thinking outloud..

DeletedUser 11-17-2002 06:32 AM

Why should we hack something in when we can do it right? We will need a map eventually, to map arena coordinates, then within the map we can set waypoints (or fog of war sort of thing), along with the ability to setup pathing for boats.

DeletedUser 11-17-2002 06:43 AM

rofl boats :)


see what i mean? a lot of the little things needed eventually will lead into pathing. thats why its one of the major things.

Half of the people that I know that play EQEMu say pathing is mainly the reason it fails to compare to VI servers, what good is it having NPCS stand still.

quester 11-17-2002 06:48 AM

How many times do I need to say this? YOU DONT NEED A MAP, you only need your PPOINTS and wide-open definitions. THATS IT.

DeletedUser 11-17-2002 07:20 AM

Map map map? :)

DeletedUser 11-17-2002 07:21 AM

lol:p


All times are GMT -4. The time now is 04:12 PM.

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