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
Pathfinding using the .aas file
-
- Posts: 368
- Joined: Tue Aug 21, 2007 1:43 am
- Location: The Middle of Nowhere
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
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
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...
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:
http://abusoft.g0dsoft.com
try Stendhal a MORPG written in Java
IrrExtensions:
http://abusoft.g0dsoft.com
try Stendhal a MORPG written in Java
-
- Posts: 368
- Joined: Tue Aug 21, 2007 1:43 am
- Location: The Middle of Nowhere
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.
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.