Game Development Community

TCP Project - AI - Update

by Phil Carlisle · in Torque Game Engine · 05/08/2002 (11:14 am) · 20 replies

Hi guys, sorry for the update being all over. I originally planned on putting it here, but got sidetracked into putting it in a RW forum and then my plan.

Let just clear a few things up first:

Started a new thread for AI discussion (here).

@Phil
*Please read this as constructive*
I have to disagree on the concept that terrain based AI is more important than AI that is equally good for terrain and for interiors. This seems a bit short-sighted. Maybe I'm misinterpreting what you say above but I don't think the assessment that "the majority" working on terrain based games is a proper solution.

Correct or enlighten me on this. I'm just beginning to look at AI and have only been reading these discussions to this point. However, I am very interested in the solutions in this category because I have a fair amount of experience with neural nets and genetic algorithms. However, these were not applied to virtual environments.

Yeah, I think you misinterpreted what I meant. Basically, what I was trying to say was that the goal of the AI must be to handle landscapes AND internal pathing in an efficient manner. From a lot of the algorithms Ive seen, most arent well suited to handling outdoor environments because they end up generating far too many waypoint nodes. In essence they become very dependant on waypoints, perhaps overly so.

Alex's system is fairly good in this respect, in that its built for indoor environments, but is dynamic and scales well to outdoors (because it in theory should produce less waypoints). Of course the outdoor stuff is experimental to some extent (seeing as alex wrote it with Q2 as his testbed).

As for the TCP project. Alex and I have pretty much sorted ourselves out. He is working on an AI framework interface called FEAR (I'll post a link to the website later if I remember) which defines the interface between the game and the AI. I am writing a FEAR compatible interface into torque, whilst Alex ports his original code to be FEAR compatible at that side.

What this means is:

1) Any AI you write with FEAR interface will be portable to other platforms and engines (specifically, Q2, possibly Unreals etc.. depends on the takeup of FEAR).

2) FEAR AI's are plug and play. They dont require any special functions of the engine beyond those needed to support the FEAR API.

3) The AI code is pluggable into any object. I.e. you can add AI for a creature into any other creature (because the locomotive layer abstracts the AI's wish to move into actual animations to move). So you can play around a lot with creature AI's.

I hope the effort to get the FEAR stuff enabled pays off, I think having a strong API to work with for the AI is a great great idea. Allowing me to work out AI in a non game engine specific manner is also good (speaking professionally, it would be great if others picked up the FEAR API specs and incorporated em, so it would allow us to provide our AI implementations as toolsets for other engines/games.

Questions?

Phil.

#1
05/09/2002 (3:11 pm)
Nope, sounds sweet. :)

I cant wait till it is ready. :)
#2
05/29/2002 (5:41 am)
Just wondering the status and if you needed any sucker..I mean volunteers ;) to test code out. I'd be willing to try anyway.
#3
05/29/2002 (7:41 am)
Have either of you read the Game Developer article, I think it is on Gamasutra now, about volume based AI movement? It is really sweet, especially the optomizations you will get in a closed BSP type environment. The exterior problem has been solved many times over. And I don't think waypoints are the answer either, the AI has to be aware of there surroundings more than just follow this line from point to point.
They need to have the terrain weighted for "cost" of travel, so they won't trudge thru a swamp or lake unless they absolutely have to.
#4
06/07/2002 (4:21 am)
Phil, any news about the UN Bot integration??
#5
06/07/2002 (4:40 am)
Yep, got an update from Alex the other day, he's just finishing off some of the FEAR interface specs and altering the API slightly, then I'll apply the new changes (he's experimenting with the AI still, so the interface does change a bit).

I'll have a fear interface done fairly soon after I get the peasant model for the RWTA builds.

Its not making huge leaps yet, but I'll update everyone once we have a working bot in, even if its a bit dumb still.

Phil.
#6
06/07/2002 (4:54 am)
Sweet!! :-)
#7
06/07/2002 (8:12 am)
Off topic, but I find it interesting that the AI in question is dubbed FEAR. From what I gather from an ex-Dynamix employee, Fear was the original name of the concept that lead to Tribes (and thus eventually to TGE). Hmmm...
#8
06/24/2002 (12:38 am)
Just in case anyone is following this FEAR thing...
there is a new website here - check it out!
Phil, any news for us about "getting the FEAR in"... ? ;-)
#9
06/24/2002 (2:24 am)
Quote:Fear was the original name of the concept that lead to Tribes

www.planettribes.com/tsrr/misc/bg.jpg
Ahhhh the nostalgia. :D


*EDIT*

I just spoke with Zear and realized that many of the Tribes vets probably won't remember this picture. I'm sure the GG guys do though. It's hidden in the gui volume of Starsiege: Tribes.

And sorry for carrying the offtopic a bit further, Phil. :)
#10
01/14/2003 (8:30 am)
Hey guys, just wanted to let y'all know that I'm interested in getting involved in this as much as possible. About a year ago I finished working on a project called BACH (Behavior Animation and Control Heuristics)... Sounds really amazing, but it was a plugin for trueSpace that allowed behavioral animation to be applied to objects.

I would figure that some of the ideas/code behind it might be useful. Here are some of the things I ended up implementing:

* Stand/Do Nothing
* Seek
* Flee
* Evade
* Pursue
* Wander
* Avoid
* Contain
* Group movement/Crowding
* Sibling/Child Inheritance

These are the basic things that were implemented. With blending, I was able to develop more complex behaviors. This was all based on "steering behaviors."

Sepcifically, I would like to see group movement/crowding implemented with the AI. I believe that with a core set of behaviors, more complex AI could be developed by adding/attaching to these behaviors.

IE: Someone develops a bot that blends 50% Wander, 30% Seek, and 20% Evade. Thus, the bot would already take care of wandering along a set of waypoints, while actively seeking new targets, but evading targets within a list. Then, the developer would "enhance" this with their own code. Using the complex/unique ability to add callbacks, changes in state would be triggered in the script code.

Anyhoo, let me know what's up... I'd love to get my feet wet with this. Sorry to say that 100% of the plugin was developed using a specific API and in Delphi, but I'm also a C programmer that is re-learning C++. It might take a while for me to get into it, but I think there is some real possibility here.
#11
02/10/2003 (1:41 pm)
Hey, i'm a n00b , i've just read this discussion [and the previous AI discussion].

I'm a university student aiming to integrate an extensible conceptual map system into the agents. The idea is that the agents can communicate by traversing each other's concept maps, and the system is abstract enough that it should be able to cope with just about any type of agent. I'll try and let you know how i get on, in the mean time, i'm going to have to find somewhere to teach me how to add classes in the scripting engine, does anyone have any suggestions, either for useful tutorials or discussion on any similar project?
#12
09/08/2003 (6:17 am)
Any news on this? Phil?
#13
11/27/2003 (4:20 am)
Well, maybe someone is interessted in that.
I'm working on getting FEAR into Torque. Maybe someone has tried it already and has some tipps.
It looks like a quiet huge task. It will take alot of time. But I hope that I get some more free minutes after I have passed Alpha with my current Project.
#14
11/27/2003 (6:00 am)
Marco, I've been looking at FEAR for a long time. But I think the torque target market isnt quite at that level yet. So I'm basing my work on a framework which will support FEAR type functionality in the long term, but is a lot simpler and easier to get a game working with in the near term.

FEAR is kind of the "AI done well" whereas I'm doing "AI Done Quick" :))

And btw.. the effort has just started, what with the new job and all.

Phil.
#15
11/28/2003 (9:05 am)
Nice to hear :) It sounds good to have such "AI Done Quick". As what I have seen so far of FEAR, it's quiet... complex. So it would definitely be good to have an easier way.
I just think it's a good experience and a good possibility to learn more about AI. So, I will go on with my work and see if I can get everything up and running :)
#16
08/04/2004 (2:21 am)
After looking around for a system that could make the Torque AI a bit smarter, I found FEAR. And I also found that people were making adaptations to plug it into Torque. Has anyone actually started to do that yet? Or have anyone actually completed such an interface?

This thread started quite a while back, so I am hoping something usable has been done by now.

If not: have any of you used any form of "serious" AI in Torqu, and if so: Could you secomment and / or give some pointers.

Thanx
/Bjarne
#17
08/11/2004 (8:10 pm)
Man... love that picture.

There's what Phil Carlisle and co. are working on. Have you seen that?
#18
08/12/2004 (8:49 am)
No Ben, I havent. I must be missing something important in my undrestanding of the GarageGames site, because I cant find anything on it :'(

Could you give me a link, or maby some keywords to look for?
#19
08/12/2004 (1:47 pm)
Here's a good one: Link.
#20
08/13/2004 (12:29 am)
There is a lot of work done, but nothing to test right now, am I right? I'll just have to throw in a "quick and dirty" then :)

Thanx