View Single Post
  #2  
Old 10-30-2004, 08:35 AM
RangerDown
Demi-God
 
Join Date: Mar 2004
Posts: 1,066
Default

First I'll argue a couple of points then I'll get to the read discussion These counterarguments are by no means any more of fact than your assertions, just based on *my* observations vs. yours. Only SOE knows the whole truth.

Outdoor zones have waypoints just like indoor zones do. Line of Sight from the mob to you dictates when the mob breaks off the grid and goes directly to you. In an outdoor zone the mob will likely have direct LoS to you during most or all of the chase so it appears he doesn't follow any pathing rules when in fact he's following them exactly as intended. We've all seen the case where even in an outdoor zone, as you pull the mob back to camp he might -- for a split second -- detour to the right or left before coming back toward you. That speck of dirt made him lose sight of you :P

To clarify -- at least if you're using the PEQ databases -- stationary mobs don't have any waypoint assigned to them. They do remember their original spawn location, and this is especially important for a gating mob. When their target zones or dies, they usually walk back to their spawn point.

Finally, the "2 table" grid system was put in place to eliminate the 50 waypoint limitation. You can have an indefinite number of waypoints to a specific grid now -- there is one table for grids and a child table for the waypoints within the grids.

Now to the meat of the discussion.

The grid system as currently implemented is really the reverse of how it should be implemented if smart pathing calculations are to be done. Currently there are grids in the zone, and within those grids are waypoints. It would need to be the other way around -- the zone has a shitload of waypoints all over the place that define valid spots a mob could travel to in its quest to get from point A to a point B it doesn't yet have line of sight to. And the various patrol grids would take a subset of those waypoints and line them up.

Each waypoint has to also have some connection information about what other waypoints near to it are valid to go directly to. That right there probably means a child database table with a bazillion-jillion records in it :P Cuz each "connection" between one waypoint and another would be a record here. But it's necessary if we're trying to avoid the CPU expense of using the Map file. Let's give an example: you're on a hallway, and a ways in front of you the hallway takes a 90 degree turn. Assume there's a Waypoint A on the wing you're in, Waypoint B right on the elbow, and Waypoint C a little down the other wing. You have to define an A-B connection, and a B-C connection. In this setup, there is no A-C connection because it's an L-shaped hallway. BUT, if this were a wide open room, you would have your A-B and B-C connections, AND an A-C connection to let the mob know he's free to cut the corner if he feels like it.

And there's the ever-present requirement that we have to do this pathing WITHOUT a significant increase in CPU utilization. On the big boys -- like WR, S2K, and PEQ as well cuz Soto like to grow his epeen by watching 100+ static zones up at a time even when there's only 15 players online :P -- just a small increase in CPU usage for an individual zone means their overall CPU usage just doubled, tripled or even quadrupled. And that expense in CPU could easily translate to a notable increase in the $$$ they need to maintain hardware. We'd certainly have to code it in a way that we can have a server variable letting the server op turn smart pathing on or off.

As to what time frame you're looking at... well we all know the basic rules. There's a ton of features/bug fixes and only so many devs to go around -- many working on what little free time they have. Something else to watch out for: we will probably see a cut in both our userbase and "active" devs in the next several weeks as they go off to try EQ2 and WoW. Some will come back eventually -- some won't. And *this* kind of module is one that's gonna be complex so it takes loads and loads of time to implement and debug, all at a time when the project's resources are threatened by new eye candy on the horizon
__________________
<idleRPG> Rogean ate a plate of discounted, day-old sushi. This terrible calamity has slowed them 0 days, 15:13:51 from level 48.
Reply With Quote