Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (784)
Games in Android Showcase (234)
games submitted by our members
Games in WIP (858)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Opensource Java AI library (ai4j)  (Read 9137 times)
0 Members and 1 Guest are viewing this topic.
Offline zakster

Junior Newbie

« Posted 2009-03-11 09:41:10 »

Hey guys,

I just put out the first release (pre-alpha) of my opensource (BSD license) Java AI library called ai4j (ai4j stands for artificial intelligence for java). You can find it on Although this current release (0.1) is far from being feature complete, the final goal is to have a stable Java library that contains group of common AI algorithms used by games and related applications in an abstracted and extendable form.

The current release aids with:

- goal oriented behaviour
- state oriented behaviour (state machines)
- genetic algorithms
- path finding
- decision trees

The upcoming releases plan to aid with:

- artificial neural networks
- fuzzy logic
- more path finding
- blackboarding systems
- minimax
- examples that show the ai library in action

If you decided that you'd like to use the library, feel free to go to to download it, submit bugs, submit feature requests, or to help contribute. Any help would be greatly appreciated.

Offline Eli Delventhal

JGO Kernel

Medals: 42
Projects: 11
Exp: 10 years

Game Engineer

« Reply #1 - Posted 2009-03-11 16:10:21 »

That would be a really cool system, but how exactly would you use the same library for each game? Seems like AIs are so implementation independent that it would be difficult getting this just how you want it.

See my work:
OTC Software
Offline zakster

Junior Newbie

« Reply #2 - Posted 2009-03-11 18:14:30 »

That would be a really cool system, but how exactly would you use the same library for each game? Seems like AIs are so implementation independent that it would be difficult getting this just how you want it.

That is true. I've tried to abstract things out and add various niche features as best I could. For example, the A* implementation will let you write your own heuristic if you want, it'll let you do a full A* search, it'll let  you do a partial A* search (return the first path it sees that has the end node), and the graph system that it works with is pretty extendable.

There are other things that I wanted to add but I couldn't figure out a proper way to abstract them such that they could be used in most games. Steering behaviour was one of those features that seemed so dependent on the actual game that it seemed like a waste of time for me to try to do anything with it. One way to think of it is that ai4j helps you design/write your AI system, but it doesn't write the AI for you. It's not so much an AI engine as it is a group of common algorithms.

The neat part for the user is that ai4j's opensource. If the user sees that a feature needs to be tweaked such that it works with their specific game, they can go ahead and do that (although most of the time I think this would be unnecessary as the library is abstract enough to handle most cases). If they see that some feature or abstraction is missing, they can add it in. And if they choose to, they can submit a patch back to ai4j so everyone else using the library will be able to take advantage of those changes Smiley
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Jono
« Reply #3 - Posted 2009-03-11 19:25:54 »

Can I suggest that for artifacts like ANNs, decision trees, and GAs, that you only make a facility for applying them in a game, rather than a whole learning framework. You might want to consider looking into WEKA (this is the standard suite for testing algorithms used by the machine learning community - and it happens to be in Java!), and make your library compatible with their output formats.
Pages: [1]
  ignore  |  Print  

hadezbladez (1623 views)
2018-11-16 13:46:03

hadezbladez (635 views)
2018-11-16 13:41:33

hadezbladez (1613 views)
2018-11-16 13:35:35

hadezbladez (329 views)
2018-11-16 13:32:03

EgonOlsen (2672 views)
2018-06-10 19:43:48

EgonOlsen (2937 views)
2018-06-10 19:43:44

EgonOlsen (1639 views)
2018-06-10 19:43:20

DesertCoockie (2347 views)
2018-05-13 18:23:11

nelsongames (2251 views)
2018-04-24 18:15:36

nelsongames (2946 views)
2018-04-24 18:14:32
Deployment and Packaging
by philfrei
2019-02-17 20:25:53

Deployment and Packaging
by mudlee
2018-08-22 18:09:50

Java Gaming Resources
by gouessej
2018-08-22 08:19:41

Deployment and Packaging
by gouessej
2018-08-22 08:04:08

Deployment and Packaging
by gouessej
2018-08-22 08:03:45

Deployment and Packaging
by philfrei
2018-08-20 02:33:38

Deployment and Packaging
by philfrei
2018-08-20 02:29:55

Deployment and Packaging
by philfrei
2018-08-19 23:56:20 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!