How to Develop an Arimaa Bot

An Arimaa playing program is often referred to as an Arimaa bot or an Arimaa engine.

You can develop an Arimaa engine in any language you wish. Programming languages such as C, C++, Java are good choices, but just about any other language can be used though the execution speed of your program might be slower.

An engine must be capable of taking the state of an Arimaa game and selecting a legal move to make. The Arimaa engine is invoked by a contoller which provides the current state of the game as input to the engine. The protocol used for communication between the Arimaa engine and the controller is called the Arimaa Engine Interface (AEI). The controller will handle interfacing with the Arimaa game room or a graphical client so that your engine does not have to deal those interfaces. The controller can also allow two engines to be played against each other locally. The AEI is the recommended protocol for Arimaa engines.

The AEI is an open source project started by Brian Haskin. You can learn more about it at:

To begin developing an Arimaa engine you will need to know:

While developing your bot you can test it locally by using the roundrobin.py script provided in the AEI package.

To have your bot play in the Arimaa gameroom you can use the gameroom.py script provided in the AEI package and it will take care of interfacing your bot to the Arimaa gameroom. However you will first need to create an account for your bot.

Additional Resources

If you click on the 'Downloads' link you will find additional resources such as the Arimaa Games Archive and a Windows Arimaa program which may also be of help when developing your bot.

Also if you click on the 'Forum' link you will find a discussion area for bot developers. This is a good place to ask questions and share ideas with other bot developers.

The old version of the Bot Interface Kit used to connect bots to the Arimaa gameroom is still available.

Good luck.

www.arimaa.com