AI Control Issue
by Alex Champandard · in Technical Issues · 02/01/2003 (4:07 am) · 12 replies
I'm lead developer on the FEAR project at fear.sf.net. There have been rumours of integration with Torque, and I'd like to keep them alive!
Things have been flowing in fast and furious -- with many great features in the 0.1.1 release. But rather than expanding prematurely, the project has been focusing on its core issues trying to keep the design simple. Things have got much better with the 0.2 branch in CVS, as the design is more powerful and even more code has been factored out (sign of a good project: removing lines & files ;)
I've also been working on some command-line tools, which make the development an maintenance of AI modules a true pleasure (all mechanical code is automatically generated). Specific implementations of AI techniques will flow in quickly now. This is possible since the design at the modular level is unlikely to change before iteration 0.6.x (even then, it will most likely be compatible).
Post-GDC will be a good time to start integrating, but before then I have some higher-level design issues to ask you.
* Do you want per-bot control of the AI within Torque? If so, how do you wish to represent/specify the bots to FEAR?
* Is letting FEAR handle all the bot AI itself feasible? If so, a manager module could be created, but what sort of information would this require?
I have existing designs and ideas but would rather not contaminate your thought. Feel free to express them here.
Alex
Things have been flowing in fast and furious -- with many great features in the 0.1.1 release. But rather than expanding prematurely, the project has been focusing on its core issues trying to keep the design simple. Things have got much better with the 0.2 branch in CVS, as the design is more powerful and even more code has been factored out (sign of a good project: removing lines & files ;)
I've also been working on some command-line tools, which make the development an maintenance of AI modules a true pleasure (all mechanical code is automatically generated). Specific implementations of AI techniques will flow in quickly now. This is possible since the design at the modular level is unlikely to change before iteration 0.6.x (even then, it will most likely be compatible).
Post-GDC will be a good time to start integrating, but before then I have some higher-level design issues to ask you.
* Do you want per-bot control of the AI within Torque? If so, how do you wish to represent/specify the bots to FEAR?
* Is letting FEAR handle all the bot AI itself feasible? If so, a manager module could be created, but what sort of information would this require?
I have existing designs and ideas but would rather not contaminate your thought. Feel free to express them here.
Alex
#2
FEAR is fundamentally based on XML for design, but thanks to the new meta-programming tools XML does not appear at runtime. Only initialisation needs XML, and tools in 0.3.x will remove this necessity. So, XML is basically a great way to focus on high-level design, and the tools can convert that to native code or binary data-structures. AIISC will probably end up using this method, if not the FEAR tools.
You do not need FEAR if you want to borrow the ideas, but you'd be missing out on many AI technique implementations, interface designs, as well as the ease of development thanks to the tools.
Alex
02/01/2003 (5:35 am)
Python has been removed form the core, and will become an optional module. You could implement a TorqueScript module instead.FEAR is fundamentally based on XML for design, but thanks to the new meta-programming tools XML does not appear at runtime. Only initialisation needs XML, and tools in 0.3.x will remove this necessity. So, XML is basically a great way to focus on high-level design, and the tools can convert that to native code or binary data-structures. AIISC will probably end up using this method, if not the FEAR tools.
You do not need FEAR if you want to borrow the ideas, but you'd be missing out on many AI technique implementations, interface designs, as well as the ease of development thanks to the tools.
Alex
#3
Only issue now I guess is the license one.
As i say, I'll revisit the code and stuff and see where we are in terms of how it interfaces and such.
You really need to do that master outline doc tho, the site doesnt really give enough info on what fear is attempting to do (and in turn how cool it would be).
I guess the only other issue is the level of person we're targetting. In general, it seems fear is much more suited to the academic types, whereas my implementation plans are much more focussed on getting useful behaviors for objects and creatures into torque based games as quickly and with as much flexibility as possible (rather than trying to be using every new AI technique that comes along) it may be that the middle ground is the best way.
Phil.
02/01/2003 (8:46 am)
I appreciate how cool fear would be to put into torque alex. Just got some concerns with the original direction it was going in (although that seems to be a lot better now).Only issue now I guess is the license one.
As i say, I'll revisit the code and stuff and see where we are in terms of how it interfaces and such.
You really need to do that master outline doc tho, the site doesnt really give enough info on what fear is attempting to do (and in turn how cool it would be).
I guess the only other issue is the level of person we're targetting. In general, it seems fear is much more suited to the academic types, whereas my implementation plans are much more focussed on getting useful behaviors for objects and creatures into torque based games as quickly and with as much flexibility as possible (rather than trying to be using every new AI technique that comes along) it may be that the middle ground is the best way.
Phil.
#4
FEAR is a platform for design, a development enviromnent, and a set of tools for the AI engineer. FEAR provides a solution which emphasizes all the key concepts of modern AI enginnering , and brings them all together with cutting edge technology ;) See this document, which outlines the different ideas behind FEAR: fear.sourceforge.net/docs/Technology.html As it is FEAR is already of great help, but it will revolutionise AI in the long term ... hehe :P
As far as being applicable to academia rather than games, it's true that FEAR has been supporting my research. But the past 5 months have been independent from that (I'm no longer an "academic"), and the path has taken a different course now -- as explained. The existing modules implemented, or the interfaces already designed in no way compromise the benefits of the platform from an enginnering point of view. If you want to create "useful behaviors quickly and with as much flexibility as possible," then the methodology behind FEAR will allow you to do that very quickly yourself, especially since this is an AI focused project. Although I do believe that "traditional" techiques will come into their element over the next year, so we'll continue to develop them in the near future (decision trees, finite state machines, genetic algorithms, neural networks, rule-based systems...)
As for license, tell me what happens to the Torque source base, given that there are many licensees. What do they have to do with their code?
Alex
02/01/2003 (9:45 am)
Indeed, I've got a much clearer vision of where FEAR is going and when it works out there will be no compromises for anyone! FEAR is taking a step back at the moment; rather than focusing on raw programming (and particular solutions), we're looking at the AI development process and how that can be assisted (tools, libraries...) This is applicable no matter what kind of AI is desired, what the target platform is, and what ideas are prefered. FEAR is a platform for design, a development enviromnent, and a set of tools for the AI engineer. FEAR provides a solution which emphasizes all the key concepts of modern AI enginnering , and brings them all together with cutting edge technology ;) See this document, which outlines the different ideas behind FEAR: fear.sourceforge.net/docs/Technology.html As it is FEAR is already of great help, but it will revolutionise AI in the long term ... hehe :P
As far as being applicable to academia rather than games, it's true that FEAR has been supporting my research. But the past 5 months have been independent from that (I'm no longer an "academic"), and the path has taken a different course now -- as explained. The existing modules implemented, or the interfaces already designed in no way compromise the benefits of the platform from an enginnering point of view. If you want to create "useful behaviors quickly and with as much flexibility as possible," then the methodology behind FEAR will allow you to do that very quickly yourself, especially since this is an AI focused project. Although I do believe that "traditional" techiques will come into their element over the next year, so we'll continue to develop them in the near future (decision trees, finite state machines, genetic algorithms, neural networks, rule-based systems...)
As for license, tell me what happens to the Torque source base, given that there are many licensees. What do they have to do with their code?
Alex
#5
Frankly, I've been mostly ignoring FEAR because it's a GPL licensed library. I'm not interested in open sourcing my code, so FEAR is pretty useless to me. If you've got plans to release it under LGPL or some other license, then I'll take notice.
But as far as your interface questions, I'd very much want per-bot control of the AI from torque. I wouldn't mind writing the bots in whatever FEAR-language you pick, but I should definately be able to turn individual AI on and off, tweak settings, and switch AI types for the bots from Torque.
Letting FEAR manage everything might be OK for a bot-deathmatch game like Quake III, but for 'real' single player the game code is going to need a lot of control.
02/01/2003 (12:13 pm)
No one has to do anything with their code, Alex. It's true that there's some community pressure to open source things, but it's not a requirement. This is what attracted me (and I think a few of the other Torque developers) to this engine. If I didn't mind GPL, I'd have saved my $100 and gone with Quake 2 or Ogre.Frankly, I've been mostly ignoring FEAR because it's a GPL licensed library. I'm not interested in open sourcing my code, so FEAR is pretty useless to me. If you've got plans to release it under LGPL or some other license, then I'll take notice.
But as far as your interface questions, I'd very much want per-bot control of the AI from torque. I wouldn't mind writing the bots in whatever FEAR-language you pick, but I should definately be able to turn individual AI on and off, tweak settings, and switch AI types for the bots from Torque.
Letting FEAR manage everything might be OK for a bot-deathmatch game like Quake III, but for 'real' single player the game code is going to need a lot of control.
#6
As for handling units, how about a trigger / event based handling instead of polling? Someone suggested the importance of this to me, and it makes sense; you can get very detailed control with little overhead. It was supported in 0.1.x, but was factored out of the core by design. It will now become an extension, which seems the best way to do things.
What do you think?
Alex
02/05/2003 (1:28 pm)
We've been granting LGPL licenses for free to anyone who has asked, so it makes sense to make that official ;) I've also made some of the base files BSD, so fewer/no limitations are imposed on using FEAR's tools.As for handling units, how about a trigger / event based handling instead of polling? Someone suggested the importance of this to me, and it makes sense; you can get very detailed control with little overhead. It was supported in 0.1.x, but was factored out of the core by design. It will now become an extension, which seems the best way to do things.
What do you think?
Alex
#7
I'm looking for a competent AI implementation to shoe-horn into Torque, any suggestions ( if there is no available FEAR interface )?
/Bjarne
08/04/2004 (3:50 am)
Hi guys! Is there an interface between Torque and FEAR? Phil, you said "Someone already put fear into torque, but I havent been able to get back in touch with him."... heard anything more lately?I'm looking for a competent AI implementation to shoe-horn into Torque, any suggestions ( if there is no available FEAR interface )?
/Bjarne
#8
08/11/2004 (7:21 pm)
Phil and some others are working on an AI content pack. Might want to peek into that...
#9
08/12/2004 (8:55 am)
Can you give me a link? I really have trouble finding stuff on this site... :'(
#10
You will have to look at their older .plans to get the full picture, as the .plan page only includes links to the 5 most recent ones (six including the one you're looking at), which you can access by doing a resource search using their names.
No firm release date on the AI content pack, but we're working our butts off to bring something that's not only useful, but darn cool to the TGE table ;)
Also, on searching through the site, there is a search functionality in the top navigation bar, which can be used to search in different areas of the GG site : use it wisely :)
08/12/2004 (9:12 am)
Check out Phil Carlisle and Stephan Beffy Moises .plans for all the dirt.You will have to look at their older .plans to get the full picture, as the .plan page only includes links to the 5 most recent ones (six including the one you're looking at), which you can access by doing a resource search using their names.
No firm release date on the AI content pack, but we're working our butts off to bring something that's not only useful, but darn cool to the TGE table ;)
Also, on searching through the site, there is a search functionality in the top navigation bar, which can be used to search in different areas of the GG site : use it wisely :)
#11
08/13/2004 (12:28 am)
That stuff looks to be great when completed, but as I need it within a month: I guess I'll have to cook something up myself. Thanx.
#12
02/02/2005 (7:20 am)
Any progress on the integration of FEAR with Torque?
Torque 3D Owner Phil Carlisle
Ive just begun looking at FEAR and AI for torque again (to shove into Realmwars now that Hand 2 Hand is coming along).
One thing that worried me with implementing FEAR into torque is the use of any third party libs and stuff.
I'm probably getting confused as to where you were taking fear, but I remember on the mailing list talk about python modules and XML and all of that malarky, at that point I kind of decided to take the core idea of FEAR (the method of isolating the agent from the api) but not necassarily the implementation.
I'll read up on it again, see if Ive read it right.
BTW: Someone already put fear into torque, but I havent been able to get back in touch with him.
Phil.