AtomAI
Hi,
This is the wiki for Atom AI framework.

Questions and Answers
Question: What’s the h#$ll is AI or why should I bother in this thingy anyway emoji:
Answer: It’s big, over-complicated and also attractive subject in Game developing.. emoji: emoji:sunglasses
Question: What can be use in my game?
Answer: Everything… You can use this lib to:
solve the common path finding,
let your creature know how to think and learn,
direct your vehicle the way to move,
your camera to interact with the screen,
teach your characters to walk/ talk/ shoot/ trading…
You can also use it in various type of simulations and
even try to solve a mathematic problem.
Question: Sound wonderful…? But wait… It should be soooooooo freaking big and heavy, is it real-time shit?
Answer: Yes, partly… Some parts are real heavy for real time computing. They just can be used in non real time application or few kind of games. Others apx 60% are designed well enough to run in real time, and also provided with JME examples. It also comes with architectures/ functions that can config, optimize, balance, cache, and batch it selfs for real-time applications…
Question: Eh… Universal solution can not be true…
Answer: Let’s me explain. Consider this a warper of every good open-source java AI libraries you can name out and hook in to JME architecure (AppState, Sptial, Entity, Control, Update cycle…etc). Under the hood, I use Guice| OSGi |Felix to dynamicly link/bind them, when you need it. The full explaination you will find below.
Question: Nice, I want to try it?
Answer: Everything is here at once, sir/ madam ! More questions ? Not convinced yet? Go to FAQ
Introducing Atom AI framework
This Atom AI framework are more or less a “framework to bring AI to jME3 game (also means real-time application)!
Here is my picked list of researches and articles you can read in AI field (game and none-game) |
Idea & Buzz
It contains warpers for various java AI libraries build on top of light-weight, configable module architecture and provide the way to hook seamlessly to jME3 games.
It’s also come up with a lot of working examples in several game genre (RTS, RPG, FPS, Sport,…).
40% of components, AI algorimth are rewritten by the author (@atomix) to be light-weight and usable in real-time application.
Tend to be used in production application and games and suppose to support broadest cases it can.
Users can use the pieces to build up their own AI part of their games and apps
Pushed to future java techs: dependencies injection, parallel as its core…
Features
(T) means additional Tools are supported
© means with examples cases
(E) means use| depend on external libs
Note that: despite of the fact, the lib has a lot of dependencies, the author always try have simple fallback - homegrown implemention. Of course, support a fewer use cases, mainly for specific game genres, but it’s better than nothing, that’s the bright side |
Read alternatives and searches if you want to go further than Atom! |
Framework
Modulize (E)
Dependency free (E)
Configable , balancable , profilable , level of detail (T)
Paralel (E)
Data Structure
State (T)
Tree (T)
Graph (T)(E)
Geometric (T)(E)
General algorimth and Support techs
Optimizing problem(E)
Constraint programming(E)
Fuzzy logic(E)
Probability
Genetic (T)(E)
Neutral network (T)(E)
Rule base (T)(E)
Scripting (T)
General AI Techs
Movement
Kinematic
Physics embed
Steering
Boid
Swarm
Formation
FSM , HFSM , FFSM for AI (T)
Searching
Path finding
algorimth: A Star, theta Star
space: Grid, Hex, Tris, Polys, 3D Block, 3D Terrain, NavMesh, points cloud/, graphs… [more]
generate methods: navmesh gen,jump points, choke points, viewset points, … [more]
re-touch methods: smooth, reduce, prunning, time-wise, cahing, progessive
highly extensible, hookable, configableready to use as corporated with lower and higher techs
General path finding
Iterative deepending
Some academic stuffs …
Reasoning
Decision Tree
Minimax
Some academic stuffs …
Planning
Goal base
Problem sovling
Learning
Character AI
Human
Chatbot (T)(E)©
Dialoge (T)©
Emotion (T)©
Facial (T)©
Voice (T)(E)
Gesture (T)(E)
CommonSense ©
Common Human AI usecases ©
Animal
Architecture and components
Here are its Architecture and Components.
iframe::http://bubbl.us/view/1860d6/2fd76d/15vmlQSf.3GMg/[width="98%", height="400px", alt="600px,600px", scroll="true",border="true",align="false"]
Vision
As the framework grown up, I will bring more unit tests and example cases.
Also it should has even better integration with the JME SDK and other Netbean’s plugins like (weka, neuphons…). Corporate with Code gen, it’s can easily replace Alice, Manson,etc… as much better 3D non-coding enviroment and one day maybe become the most advanced AI simulation enviroment on earth!
FAQ
Question: Why warpers?
Answer: Not reinventing the wheel, trust in good opensource project, broader use caces, broader user… And last but not least, it’s just work! '''
Question: Why java 1.5+?
Answer : Consider this lib is a push to java techs and java’s game techs. The user are forced to get familiar with the changing world… Yes, AI is a rapid changing subject and we (java game devs) should keep up. '''
Question: Why f$#kin heavy and not light-weight, real-time, etc???
Answer: This libs provide some features which just optimized enough to run in “quite high performance machine. But it also have sotiphicated methods to config it self. Consider this key feature to keep in mind. Get fit! '''
Question: Big jar?
Answer: Nope, consider not too big… thanks to Guice, size < 6MBs and can even smaller if you compile it your self and cut the unneccesary things. In some case you want to use ALL the features, the whole dependencies will take about 78MB and 45MB for the SDK plugins! And Maven should be to used to get every artifacts! '''
Question: Documentations and javadoc?
Answer : On its way, the orginal author (me, @atomix) are slow (busy) , volunteers are welcome! Also read all the external wel-documented open source libs Full list here that this lib depend on are quite enough. Cause its idiom is simple. '''
Question: I have ideas?
Answer : Tell me , @atomix in the forum.
Other open-source dependencies
As said, even if I try to rewriten some parts that most critical for real time game, I cannot against the ideas of including every good functions of other libs. So, I provide good way to communicate between them and the way to link them on demand…
Let name the libs can be used: As category
Neutral Network
Machine Learning
Search
Constraint programming
Geometry constraint
Human language processing
Chatbot
Documentation
Basic
Examples & Usecases
API
Alternatives
Open sources
Commercial
Toolset
Researches
Go to researches