View Single Post
  #5  
Old 02-02-2005, 05:56 AM
fathernitwit
Developer
 
Join Date: Jul 2004
Posts: 773
Default

ah well I guess I will give a status update.

Path file generation is going very well. It is in a standalone console application, just like map building. If the zone has good pathing, or lots of mobs close together, then it is getting great results. On the other hand, sparsely populated zones are gunna need some manual tweaking, through the use of in game commands to add new hint points. It is still generating minorly invalid paths, and the only way we are gunna get away from that is to give it incentive to generate the right graph instead by providing more hint points.

Some of the biggest obstacles I have come across:
- Invalid data in the database... how to identify it. (not great yet)
- Newbie fields and high-pathing zones needed a HUGE reduction algorithm run on them.
- Eliminating small, disconnected subgraphs from the whole mess

The only real challenge I have remaining is supporting multiple disjoint fear grids in a single zone, like will be the case in ToFS. Need to identify them, and process them seperately.

Here are some example zones and their paths. Grey is the source data, and red/orange is the final fear paths, colored by z height.

Good dungeons:
http://www.projecteq.net/fathernitwi...one-mstree.png
http://www.projecteq.net/fathernitwi...der-mstree.png
Good Cities:
http://www.projecteq.net/fathernitwi...nos-mstree.png
http://www.projecteq.net/fathernitwi...os2-mstree.png
http://www.projecteq.net/fathernitwi...ark-mstree.png
Needs help examples:
http://www.projecteq.net/fathernitwi...her-mstree.png
http://www.projecteq.net/fathernitwi...per-mstree.png


These grids get put into a path file, which includes a quadtree for fast searches. The format is very similar to that of the map files.

On the emu side of things, I have code written to read in the path files at zone bootup. I can them locate the closest path to me, and run to it. Then once I reach that node, I can select the next node, etc.. so essentially it works. This is just raw testing, I dont actually have mobs running on the path, but that is trivial with the WP code. I have an issue where my code to decide where to go next is getting into a small loop and running between just a few nodes, but im working on a fix for that.

One thing im trying to decide on is what to do when I cannot locate a closest fear node. Like if we are in a place where there was no pathing/mobs anywhere near us, etc... Or in a small room that cannot see any of the nearby points. it seems like the only solution is to use what we do now, since nothing else is really reliable in emu. Theres more possibilities in the processor, but that will rely on LOS, which is not 100% perfect.

Basically, the code will be done soon, its just a matter of hand-tuning all the zones so we can get good path files.

processor is about 3500 lines right now.
emu code is about 1000
Reply With Quote