Intelligence, Extelligence & Instincts

InExIn is artificial intelligence library originally developed by Jindrich Rohlik for game Mutant. Even if the library was developed for particular game it was designed to be used in general computer game. It was also always intended to turn the library into an open source project once it will be finished, so usage by other developers was considered within design and implementation time. Main goal of InExIn project is to develop well designed, robust and easy-to-use library for solving real problems in computer games development.

Architecture

Architecture of InExIn library is split into three logical levels:

Extelligence (term originally coined by Ian Stewart and Jack Cohen) represents some common knowledge base created by human society that could be used by any particular member of the society. The typical example are maps (pathfinding), another examples could be football or any other sport rules. In another words, Extelligence, by mean of this library, involves everything what exceeds intelligence of one human being (i.e. agent). Only pahtfinding (with navigation meshes) is implemented at this very moment.

Intelligence involves everything what refer to human (agent's) high level decisioning: what the agent will be doing and when. Agent's intelligence is represented by the state machine at this moment. There are also several useful states implemented and others could be easily added.

As the intelligence refer to agent's high level decisioning the Instincts refer to low level decisioning, i.e. unconscious acting of agents (I am running and there is an obstacle before me so if the high level decisioning wants to keep running so I must make sidestep otherwise it will hurt). Only small obstacles and wall avoiding are implemented at the moment.

Future

Version 2.0 shouldn't bring any new features. Rather then adding new features the design should be make much more clear. For example agents should be component based rather then made by inheritance as well as the instincts part should be made modular (maybe with state machine usage).

Acknowledgements

Instincts part was based on Steering Behaviours For Autonomous Characters by Craig Reynolds presented on GDC 1999. Pathfinding was based on work of Arvid Norberg. Mathematics, spatial database as well as some other classes was taken from The Nebula Device 2 (and modified to met InExIn's coding convention requirements).

This project needs participants.