= jMonkeyEngine Artificial Intelligence
:author: 
:revnumber: 
:revdate: 2017/04/15 13:30
:relfileprefix: ../../
:imagesdir: ../..
ifdef::env-github,env-browser[:outfilesuffix: .adoc]



Most games written need some type of link:https://en.wikipedia.org/wiki/Artificial_intelligence_(video_games)[Artificial Intelligence] to deliver a feeling of realism, excitement or challenge to the player. AI can be as simple as having an NPC (Non Player Character) respond to some action taken by a player or as complicated as smoothly link:https://en.wikipedia.org/wiki/Pathfinding[pathfinding] your way through a scene full of obstacles without getting stuck. It's a time-consuming and significant challenge to develop these systems so its much easier to use an existing library to do the heavy lifting for you. 

Unfortunately, the jMonkeyEngine comes with no official library for dealing with AI. There is, however, the jme3 Artificial Intelligence library that is probably the closest there is to an official release. Although it never made it into any official releases, it was designed by core team members. It's a link:https://en.wikipedia.org/wiki/Navigation_mesh[Navigation Mesh] pathfinding library that contains some simple <<jme3/advanced/steer_behaviours#,steering behaviours>> and is enough to get you started. 

You can read about the introduction of the library in the forum thread: link:https://hub.jmonkeyengine.org/t/ai-plugin-now-with-navmesh-pathfinding/24644[AI plugin now with NavMesh pathfinding]. 

== Where to find it

The library and javaDocs can be found in the link:https://github.com/jMonkeyEngine-Contributions[jMonkeyEngine-Contributions] repository on GitHub under link:https://github.com/jMonkeyEngine-Contributions/jme3-artificial-intelligence[jme3 Artificial Intelligence]. Check the `release/libs` directory for the zip files. 

The library consists of two parts:

*  NavMesh - use to generate a Navigation Mesh.
*  Steering - use to control the movement of characters, usually NPC's. Contains a test case as well.  


== Use Examples


== Other jME3 AI Options

There are other jME3 specific options available you can read about in the wiki under the topic link:https://jmonkeyengine.github.io/wiki/jme3.html#artificial-intelligence-ai[Artificial Intelligence (AI)].
