🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

AI library?

Started by
10 comments, last by Panayoti 22 years, 1 month ago
Does anyone know of some free AI libraries (I don''t even know if something like this would make sense) for games programming? I''ve never tried to program an AI but it seems it would be very specialized based on your specific task. But it also seems that there are a lot of functions (like pathfinding) that are generic enough that there might be pre-existing libraries for them (which would be way better than any I could code, for sure). Thanks for the input! Panayoti
Advertisement
Ah, yes...

What you ask for is the "holy grail" as far as game AI is concerned. This has been discussed at many a GDC roundtable.

There are companies that would like to make a living developing this kind of project, but finding the right set of problems to solve in the library is the key. Most game AI is so hopelessly entwined in the specific game that it cannot be discussed as a separate entity.

Anyone else want to give an opinion?

Bob
Bob ScottAI Designer/ProgrammerStainless Steel Studios
I would have to agree with the ''holy grail'' assessment. Just about every Ai algorithm (except for something like neural nets, which there are libraries for) is very dependent on the game environment. Even path finding is usually specialized to certain factors found only in the program they are in.
So, to assemble some sort of decent AI for a game, where would you recommend an AI newbie start? (for discussion sake, let''s say a 3d space sim or, if that''s too complicated, how about a 3d fighting game).

Thanks again,

P
well, it would all depend on what you want your NPCs to do. i would suggest looking into fixed state machine (google it or do a search in this forum or goto ai-depot.com). they are pretty easy to understand - pretty much just switch statements with pre-defined, hard-coded behaviors.

beyond that i''d list out the things you specifically want your NPCs to do. break those things down into logical behaviors like "if the player does this -> i do this". or break it down into stimulous - response categories "if this and this and this happens i should do this". once you start breaking it down that way it should be pretty straight forward to figure out how to get at least some basic intelligence working.

pathfinding is definitely more challenging esp in a 3D environment but ai-depot.com has some great tuts. also i think there are some good articles in the Articles & Resources section of this site.

as long as you start out basic it''s not really that difficult.

-me
Personally, I don''t see why it is so game-dependent... at least not in terms of ''standard'' AI. Genetic algorithms, neural networks, state-space searching/pathfinding, fuzzy logic... all these things lend themselves to a simple library where you just derive a new child class or add some callbacks to customise the design. Something like a finite state machine is perhaps not so beneficial to model in a library - not because it''s difficult to do generically, but because it''s so trivial to implement.

[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost | Asking Questions | Organising code files ]
Kylotan makes good points.

The other thing to consider is this... put the chicken before the egg... if there were a standard library available that did the job efficiently, more and more professional developers would use it and the interface would/may become a standard. Mainly because it cuts down production time/testing time on their own code. Middleware for AI makes a lot of sense, particularly for the low level ''grunt'' tasks of AI programming: pathfinding, scripting engines, FSMs, etc. If these tasks take only a small fraction of the development time then more time is available to creating more interesting higher level AI. The AI Software Engineer then gets more time to work with the game designers and spends less time working with the coders in the trenches, resulting in better games (IMHO).

Just another two cents worth (sheesh, so that''s why my bank balance is low!!!)

Timkin
Well, it appears that we have people who think something like this *should* exist and people who think it *cannot* exist.

*sigh*

I''m inclined to think at least the low-level stuff should exist, but I have yet to find/see any de facto AI libraries. Mind you, I haven''t *really* been looking.

What I was thinking of is probably something similar to the ODE library which will do a lot of physics calculations for you.

*shrugs*

Thanks for all the input so far,

P
quote: Original post by Panayoti
Well, it appears that we have people who think something like this *should* exist and people who think it *cannot* exist.

*sigh*

I''m inclined to think at least the low-level stuff should exist, but I have yet to find/see any de facto AI libraries. Mind you, I haven''t *really* been looking.

What I was thinking of is probably something similar to the ODE library which will do a lot of physics calculations for you.

*shrugs*

Thanks for all the input so far,

P


If you are interested in the discussion on standards in AI interfaces, here is a link to a
round table I participated in at GDC 2002. Its the closest thing to a formal attempt to
determine standards that could be usefull to achieving these libraries.

http://www.ai-center.com/extern/gameaisig/gdc-2002-roundtable.html

Eric
quote: Original post by Panayoti
Does anyone know of some free AI libraries (I don't even know if something like this would make sense) for games programming?

I've never tried to program an AI but it seems it would be very specialized based on your specific task. But it also seems that there are a lot of functions (like pathfinding) that are generic enough that there might be pre-existing libraries for them (which would be way better than any I could code, for sure).

Thanks for the input!

Panayoti


There are a number of products out right now that do in fact offer AI toolkits or SDKs to some extent, though in my experience they aren't yet mature enough to be of enormous use. I've got a list (surely not complete) over at GameAI.Com; click on the Toolkits and SDKs link at the bottom.

Here's a quick list of what's there:



  • AI Implant (used to be called ACE) is both a Maya plug-in and a standalone SDK out of Canada;


  • DirectIA is a neat FSM and rules-based middleware solution out of France;


  • GALib is a public-domain genetics-algorithm library that's well put together;


  • Logic Programming Associates has several tools that help with AI, including Flex , Agent , and Flint ;


  • LouderThanABomb has a neat Fuzzy State Machine toolkit named Spark! ;


  • Altor Systems has a tool named Nightfall that I just know nothing about;


  • PathEngine is an SDK by Thomas Young that focuses on the very narrow realm of pathfinding AI;


  • Mindlathe has a neat tool that I haven't had a chance to play with yet. Both they and AI.Implant were very big on the GDC floor in March, 2002.




Hope that helps. There are solutions...but as others have pointed out they may or may not be what you're looking for, or mature enough to help you.



Ferretman

ferretman@gameai.com
www.gameai.com
From the High, Cold, Snowy Mountains of Colorado



[edited by - Ferretman on June 4, 2002 12:02:12 AM]

[edited by - Ferretman on June 4, 2002 12:03:38 AM]

Ferretman
ferretman@gameai.com
From the High Mountains of Colorado
GameAI.Com

This topic is closed to new replies.

Advertisement