Game Development Community

Torque AI Pack

by Stefan Beffy Moises · in Torque Game Engine · 06/15/2004 (3:07 am) · 113 replies

Hey guys, since we are working hard on the TorqueAI project we were thinking it would be a good time now to start collecting some expectations and requests people would have with such a thing...
So if you scan through our plans, you should get a pretty good idea what the basic "AI Pack" will contain, here are some highlights:

Pathfinding / Navigation:
- autogenerated, highly customizable navigation grid for interior and exterior settings, seamlessly connected
- highly-optimized, A* based pathfinding routine
- filters: the autogenerated navigation nodes / "waypoints" (and the "links" between those) can be filtered, e.g. by slope between nodes (terrain slope, but also interior-slope (global as well as on a per instance basis) or by distance to static obstacles or interiors etc.
- possibility to filter waterblock nodes
- NavMeshBlockers: you can block a certain area to not have any nodes generated
- InteriorBlockers: interiors can also be tagged to not have any nodes, but to be used as "blockers" instead
- Terrain texture filter object: you can restrict the node generation to certain terrain surfaces (or prevent the navgraph to create nodes on certain surfaces)
- Additional waypoints can be added manually
- NavMeshModifiers: you will be able to flag certain nodes as "not usable", "blocked", "one-way-only" etc.
- Path interpolation / smoothing / straightening: the generated paths can be visually optimized

Here is a typical AINavGraph block:
new ScriptObject(MissionNavGraph) {
         terrainAngleFilter = "60"; // max. terrain angle in degrees (0-90)
         terrainFrequency = "5"; // dist. between terrain nodes
         interiorAngleFilter = "50"; // max. interior angle in degrees (0-90), can be overwritten for each interior
         interiorFrequency = "1"; // dist. between interior nodes
         botHeight = "2.0"; // max. bot height for this map
         interiorInteriorRayscanHeight = "0.6"; // rayscan height between 2 interior nodes
         terrainInteriorRayscanHeight = "0.4"; // terrain - interior node rayscan height
         terrainTerrainRayscanHeight = "1.0"; // terrain - terrain node rayscan height
         surfaceExclusionMode = "1"; // 1 = exclude marked surface textures (don't create nodes),
         // 0 = create only on the marked surfaces / textures
         // surfaces are marked with the (up to 16 per mission) "SurfaceMarker" entity in the mission editor
         filterWater = "1"; // filter waterblocks, i.e. water that is below the terrain, not the whole rect
         objectDistanceFactor = "1"; // distance factor to remove nodes around obstacles, e.g. interiors
   };
#81
03/11/2005 (4:52 pm)
1: hey one big problem with ai that I have worked on is that they seem to come into the mission before you do so they have already killed say 3 people before you can even get oriented. You've probably already fixed that but just in case...

2: make command areas so when a player gets near to a set of ai they begin a chain of events like talking to one another or other long sequences.
#82
03/13/2005 (1:07 pm)
I've solved the problem of the Bots starting before the player. If peolpe are really interested I can post it as a resource.
#83
03/13/2005 (1:15 pm)
Hmmm, I don't have that problem cos, bots are far enough from player on loading, but i have other problems. My bot's respond (attack, run, patrol) when player is near enough but i can't get them tu respond when i hit them (from a distance of course). Anybody solved that, I am pretty sure that somebody is :)
#84
03/13/2005 (3:11 pm)
TThere are a couple of apaches to do this, Denis.
If you haven't any OnCollision method(s) for you bots then that's your problem. Use this method to have your bots responded in any way you want.

Other usfull methods are:
::onTargetEnterLOS();
:onTargetExitLOS();
::onDamage(%this, %obj, %delta);
::onDisabled(%this,%obj,%state);
::onReachDestination(%this,%obj);

Another approach to handle this problem is to create a function that controls the Bots actions and then use schedule to have the control function called at regular intervals. I use this approach to handle herds & flocks so I only needed to write the controlling code once. I'm currently working on an approach that will allow each bot to have it's own internal timer that can be set to through a callback when time expires.
#85
01/15/2006 (10:47 pm)
Did the AI Pack ever get finished? Is it available for purchase?
#86
01/16/2006 (4:14 am)
I'd be interested to find out too.
#88
02/28/2006 (2:02 pm)
Did the AI Pack ever get finished? Is it available for purchase? Will this be available anytime soon.
#89
02/28/2006 (3:48 pm)
Another blog of Phil's
Quote:AI pack is also coming along, we're all working towards a single delivery goal and basically will consider that pack 1.0 unless we get comments otherwise :)

And ... don't forget this little nugget ;)
I really like this one
Good things come to those who wait

Pretty much in chronolgical order I would say, with the most recent sighting on top :)

Hope this helps ...
#90
02/28/2006 (6:22 pm)
I saw all that when is the realse date.
#91
02/28/2006 (7:05 pm)
When its finished.
#92
02/28/2006 (7:17 pm)
When will that be?
#93
02/28/2006 (8:06 pm)
I'm not sure. Nobody knows, not even Phil probably ;)

Takes time man. They have to make sure its done properly, easy for us to use, and all that stuff that goes on in software development.
#94
02/28/2006 (10:00 pm)
Well, for somehing that has been in dev for practically 2 years without even a hint of releasedates I would say that Phils comment (quoted above) is really specific.
#95
03/08/2006 (9:04 am)
2 year is long time, Something went wrong or the project was put on the back burn.
#96
03/08/2006 (9:38 am)
Phil Carlisle and others picked it up and it seems it is fairly close to be released from plans I read.
#97
03/08/2006 (11:48 am)
That would be nice. I have been play around with AIGuard that seem to be work pretty good. I was able to get ragdoll to work with it. I also hack the beast code from 3D Game Programming All in one but I conside not to be mind So I wont be using it in the finish product but it work good.
#98
06/11/2006 (6:10 pm)
This is probably too little too late but I had an Idea, you probably already made something like this.
I would like my ai to follow paths like guards and stop at specific points and waite for a specifc amount of time.
I this should be seperate from the think process because if you want gaurds to behave like humans then they need to react when they see you despite the fact that they are waiting to procede onto the next marker.

What else?..
Field of vision, sense of sound. I want to be able to sneek up and kill gaurds without them knowing Im comming.
If they see me attack shure but I dont want them spining like a nutcase looking for a target. I guess this would be described as powerful senses with a lack personality.
#99
06/11/2006 (8:36 pm)
This is interesting - also very long...heh, anyway sounds great.
#100
12/02/2006 (7:11 am)
Hope there has been some progress!