Pathfinding using the .aas file

If you are a new Irrlicht Engine user, and have a newbie-question, this is the forum for you. You may also post general programming questions here.
Post Reply
marrabld
Posts: 37
Joined: Wed Jul 11, 2007 9:16 am

Pathfinding using the .aas file

Post by marrabld »

Does anyone know if it is possible to produce a navigation mesh from the quake *.aas file.

the reading that I have done suggests that quake bots use the .aas file for their AI and pathfinding. I seem to be able to find information about .map files and decompilers for the .bsp files. However, I cant seem to find much information about the .aas file structure or anyway of decompiling it. Does anyone know anything about the .aas file and or a way of using it?

Alternatively I am thinking about using the .map file to to generate a navigation mesh based on the surface normals. Has anyone done this? does this sound sensible? if not, can someone suggest an alternative?

Cheers
Dark_Kilauea
Posts: 368
Joined: Tue Aug 21, 2007 1:43 am
Location: The Middle of Nowhere

Post by Dark_Kilauea »

I believe ID released the source to Quake 3 a while ago, perhaps you should take a look at that?
rogerborg wrote:Every time someone learns to use a debugger, an angel gets their wings.
marrabld
Posts: 37
Joined: Wed Jul 11, 2007 9:16 am

Post by marrabld »

Thanks for taking the time to reply

Yes I did, I can find the Arena Awareness header file which uses the information in the .aas file but cant find information on the file structure itself. I can't even read the file at the mo.

I have an idea of what is in there but don't have enough of a handle on it to write my own interpreter for the file.

There is a lot of code in the Quake source code, and my c++ is intermediate at best. I am doing this partly to improve my skills and learn as well. I may well have missed something.

Is anyone here using navigation meshes? even with another file type. How are you generating it? or what alternative processes are people using for Bot AI & navigation?

I have two ideas, 1. use the normals from the .map file (ie, if they are pointing up, they are floor tiles and therefore "navigate-able"). problem is that I cant seem to figure out if the normals are stored in the .map file or not (when I look at the file, and yes I have read a few articles on the file structure). If they are not, I suppose I can calculate them from the cross product, I just have to make sure i get the co-ordinate system correct (left or right handed). Of course this is another step and routine I have to write when my goals are more centred around exploring different aspects of game design.

idea the second. Generate my own maps using Blender (or similar) and make the floor first, then export it as a navigation mesh, then build the walls and other structures around it and make it the map. Problem with this approach is I am working on this by myself and it takes up more time "re-inventing the wheel".

I am curious if people have found a good robust approach to this problem they might like to share.



Cheers
Acki
Posts: 3496
Joined: Tue Jun 29, 2004 12:04 am
Location: Nobody's Place (Venlo NL)
Contact:

Post by Acki »

3rd idea: use the textures...
if you have special textures for the ground/floor (other textures than for walls and stuff) then you can check the mesh buffers for this texture(s) and so you know which buffers are the ground/floor... ;)
while(!asleep) sheep++;
IrrExtensions:Image
http://abusoft.g0dsoft.com
try Stendhal a MORPG written in Java
Dark_Kilauea
Posts: 368
Joined: Tue Aug 21, 2007 1:43 am
Location: The Middle of Nowhere

Post by Dark_Kilauea »

I'm not sure if this is true, but it is also possible that the source for the Quake 3 compiler is also open source. If this is the case, you should be able to look at the compiler to find out how it processes a bsp level into an aas navigation mesh.

Other than that, you may have to figure out the format yourself.
rogerborg wrote:Every time someone learns to use a debugger, an angel gets their wings.
marrabld
Posts: 37
Joined: Wed Jul 11, 2007 9:16 am

Post by marrabld »

OK cheers there are a few good ideas there. I am going to try the surface normals approach first as there are already lots of quake maps available, and making my own is another task I would prefer to avoid.
Post Reply