Thank you so much for that explanation! It helped a lot!

I have some questions that I would like to ask.
After reading your explanation, I was able to finally understand what the 
documentation was saying about the routing cache!
However, I still have some things that I wish someone may be able to clear up 
for me.

The documentation says that the routing cache expresses
"
Per goal area that is in the cluster, the area cache
stores the travel time of each area in the cluster
towards the goal area. This goal area can only be
an area within the same cluster, including the
cluster portals that touch the cluster.
"
So, the data inside the cache should express a relationship between TWO areas, 
area where the bot currently resides AND the goal area the bot wants to go to, 
right?
If that is true: "the area cachestores the travel time of each area in the 
cluster towards the goal area."

* Why does the cache carry only ONE areanum, the goal's, and not two, goal's 
and source's?




________________________________
 From: uwe koch <spiro...@gmx.net>
To: ioquake3@lists.ioquake.org 
Sent: Thursday, December 22, 2011 5:32 PM
Subject: Re: [ioquake3] AAS is twisting my brain ><
 
On 22.12.2011 08:33, Yasir I. Al-Dosary - zgzg2020™ wrote:
>
> Here is the part that really doesn't make any sense to me:
> The AAS_GetAreaRoutingCache() function is used to find the route to a
> certain goal.
> Inside that function we have the loop that iterates through the
> "routing cache".
> It does a check:
> if (cache->travelflags == travelflags) break;
> As I understand, the travelflags express what type of area "this" is,
> right?
> Then, based on whether the travelflags ALONE are the same as the we
> need or not, the "cache" node is chosen.
> What exactly IS the relationship between the goal and that chosen
> cache node???
>

The cache node stores routing information: for every area of the
goalarea cluster, it stores the reachability (in graph search this is
usually called link or edge) that leads to the shortest path towards
goalarea. Assuming that the entire map is one cluster, the cache node
for area x and travelflags y tells you for every area of the map, which
way to go for the shortest path towards x that uses only the movement
types covered by y.
Travelflags indicate, which kinds of reachability the bot can use. Every
reachability is of a certain type, like walk, swim or rocketjump. If the
shortest path contains rocketjumps, but the querying bot has no
rocketlaucher, the cache is useless for him. In this case, a new cache
will be generated that uses only the travelflags of the querying bot.
The actual "pathfinding" is done in AAS_UpdateAreaRoutingCache, it's
basically inverse breath-first-search.
Here's some documentation, the relevant chapters are 6.4 and 6.5:
http://dev.johnstevenson.co.uk/bots/20585341-The-Quake-III-Arena-Bot.pdf
_______________________________________________
ioquake3 mailing list
ioquake3@lists.ioquake.org
http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org
By sending this message I agree to love ioquake3 and libsdl.
_______________________________________________
ioquake3 mailing list
ioquake3@lists.ioquake.org
http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org
By sending this message I agree to love ioquake3 and libsdl.

Reply via email to