Release of MultiAra and Working With CrazyAra Engines
The long awaited variants neural network engineBackstory
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
(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
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
- CrazyAra Engine Settings
- CrazyAra Command Line Usage
- CrazyAra Releases get future releases here :D