# MaDKit 5.3.2

#

#

### Multiagent Development Kit

by Fabien Michel, Jacques Ferber, and Olivier Gutknecht.
www.madkit.net
December 23 2021
MaDKit is a multiagent-based development platform written in Java that allows to easily build distributed applications and simulations using the multiagent paradigm.

One key aspect of MADKit is that, in contrast to conventional approaches which are mostly agent-centered, MaDKit follows an organization-centered approach (OCMAS).

Especially, MaDKit does not enforce any consideration about the internal structure of agents, thus allowing a developer to freely implements its own agent architectures.

So, MaDKit is built upon the AGR (Agent/Group/Role) organizational model and does not rely on a predefined agent model: (any kind of) Agents play roles in groups and thus create artificial societies. So MaDKit features:

MaDKit-5 is free software, licensed under the CeCILL-C, featuring:

- Artificial agents creation and life cycle management.
- An organizational infrastructure for communication between agents.
- High heterogeneity in agent architectures: No predefined agent model.
- Multi-Agent based simulation and simulator authoring tools.
- Multi-agent based distributed application authoring facilities.

##

## Documentation and resources

- API: Javadoc detailing the MaDKit programming interface
- Tutorials: Getting started with MaDKit source code examples illustrating basic features
- A French tutorial realized by second year students at the IUT of Montpellier, and its source codes.
- Demo source codes are also a good starting point. They are available in the demos directory of the MaDKit-5.3.2.zip file.
- Xml files could be used to set the running parameters and launch agents. An example is available in the docs: XML_config_example.xml.

- A build.xml ant file for easing the development and deployment of MaDKit projects.

- MaDKit classes Java source code as a zip file. It could be used to attach source in an IDE for easing the development.

- The complete MaDKit development tree is available on GitHub.

## Testing MaDKit 5.3.2

1. unzip the MaDKit-5.3.2.zip file somewhere in your file system.
2. using java -jar madkit-5.3.2.jar launches the desktop mode of MaDKit which could be used to test the demos.

The demo directory contains files for different purposes:
- Using the jar files
These jar files are runnable: Double click them (file execution permission is required) or use java -jar demo-name.jar
They are also used to build the demo menu of the MaDKit 5 desktop which could be launch by running the kernel jar file.
- Using the jnlp files
These files could be used to launch the last version of a demo using Java web start.
You can also distribute these files so that one can see the demos without installing anything
- Source codes
can be tested in Eclipse with Import > Existing project > Select Archive File > demo-name.-src.zip > finish

## Developing with MaDKit 5.3.2

madkit-5.3.2.jar is a regular Java library which could be used by simply having it on the classpath:

1. unzip the MaDKit-5.3.2.zip file somewhere in your file system.
2. In a new Java project, add the madkit-5.3.2.jar to the build path (e.g. in your Eclipse project).
3. Now, you can start using the API.
4. Optional: You can use the build.xml file in your project to easily build library and deployment files (runnable jars, Java Web Start files, etc.)

To launch your MaDKit agents, simply either
(1) use, anywhere, a main method with something like :
public static void main(String[] args) {
new Madkit("--launchAgents","mypackage.myagentClass;mypackage.myOtherAgentClass");
}
(2) use, in an agent class, a main method with :
public static void main(String[] args) {
executeThisAgent(args) // This will execute one agent of this kind with a GUI
}
(3) use a command line such as
java -cp pathTo-madkit-5.3.2.jar:yourClassPath madkit.kernel.Madkit --launchAgents mypackage.myagentClass;mypackage.myOtherAgentClass
Other command line options are described in the API of the madkit.kernel.Madkit class

## Online help

###

- MaDKit forum

## Release notes

###

- VERSION 5.3.2

## License

- MaDKit 5.3.2 is 100% pure JDK and free software licensed under the CeCILL-C license.