lichess.org
Donate

Release of MultiAra and Working With CrazyAra Engines

Chess variantChess engineSoftware Development
The long awaited variants neural network engine

Backstory

It has been a few years since the first CrazyAra engine was released; however, the project has not stagnated since then. Over time it continued gaining strength in Crazyhouse, and many people looked forward to the day it would be trained to play all variants on Lichess. What makes the CrazyAra project so fascinating is that it is initially trained off of games played by humans which gives it a unique playing style which looks like a superhuman playing instead of the positional, brute force style Stockfish has. In late summer of 2020, I contacted Johannes Czech, the main developer of CrazyAra, about the possibility of training the engine to play Atomic, and he very kindly trained and sent me a working engine that played atomic which I hosted on the Ilmare account. A few months later I received the very exciting news that someone was going to train CrazyAra to play all variants on Lichess, a project which was known as MultiAra. While MultiAra was being trained, it was hosted sporadically on the MultiAra Lichess account and looked very promising. In late August, MultiAra was released to the general public (link here), and it has showed to be a very strong engine in variants; its first release even took the crown of being the best Horde engine by an impressive 350 elo.

Setting up CrazyAra

Now, this next bit is because some people have asked me how to set up CrazyAra engines, so if you already know how, skip past this next paragraph.

CrazyAra engines (CrazyAra, ClassicAra, and MultiAra) and their respective models can be downloaded from the releases page on the CrazyAra Github. After downloading the engine you want and its model, you will have to extract them and drag the model folder inside the main folder. For the latest release, inside the model folder there are 3 folders; ClassicAra, CrazyAra, and MultiAra with a folder for each variant inside these folders. Put the models inside their proper folders, and you are now set for your first build of a CrazyAra engine. Now go back to the main folder, and you should see something like this crazyara folder
(note, this example is on Windows). Here you open the exe file for the engine you want to use, and you should see something like this
multiara
For MultiAra, which we are using here, you will have to build each variant's model individually. Since CrazyAra uses UCI, this command is setoption name UCI_Variant value [variant], so if I want to switch to Atomic, it is setoption name UCI_Variant value atomic. After doing this, type isready and let the engine build the model for your computer; note that this may take a few minutes. Also, for more on UCI commands, here is a great page from the CrazyAra wiki explaining how to use the UCI commands.

Notes

Unsurprisingly, the first release is not perfect, and there are some known issues. Its Atomic endgames need significant improvement as it often struggles to convert without promoting a bunch of extra queens, and there were also some problems which occasionally popped up in Horde with it not spotting wins. Examples are given of both of these problems in Appendix A of Assessing Popular Chess Variants Using Deep Reinforcement Learning (Gehrke, 2021).

Useful Links

Cool Papers related to CrazyAra (for nerds)