Interview with Jon Dart author of the Arasan chess engine.
Hosted by Darius, founder of Chessengeria.eu, March 2023.
„(…) The chess programming field has clearly benefited from the availability of open-source engines.”
Before you is an interview with Jon Dart - the man who created Arasan - a real beast in the world of chess engines.
Arasan beats most of its competitors, and not only because of its strength, but also because it is an open project - anyone can be inspired by Jon's ideas, which he has been developing successfully for several decades!
In the interview you will learn how Jon traveled the development of his work, what ideas he had for its development and what he has planned for the future. If you are curious about what secrets Arasan hides and how it became so strong, this interview is for you!
Jon, please introduce yourself to our readers.
I have lived in Silicon Valley for almost 30 years. I've had a long career in commercial software development. I've worked at a number of companies and had roles including developer, manager, and software architect. For the past 10 years I have focused on computer security. I am currently CISO at Workato, a company specializing in business integration and automation.
Arasan has been a side hobby project to my day jobs in software. In the late '80s, Windows was a new technology, and I got interested in trying to each myself C++ and Windows programming, so I had the idea of making a Windows chess program. That eventually became Arasan 1.0.
Arasan is getting stronger and stronger and is capable of winning against anyone. Could you give us more details about the latest development versions of Arasan?
Arasan has become gradually stronger over time as I added more features, tuned the engine, and removed bugs.
Recently, like many engines, Arasan got a big boost in strength by adopting a NNUE evaluation. That has been worth over 100 ELO on the computer rating lists.
What is the secret of Arasan's high skill level, and what long-term ideas can push Arasan's skill level to even greater heights?
The recent gain in strength is mostly due to NNUE. The current network is the result of several rounds of tuning, the most recent being a reinforcement learning pass.
I think gaining significant additional strength will probably require a different and probably larger network structure, and I have done some preliminary work on that, but it is going to take some time to develop and tune it.
What are your recent major changes to Arasan over the past few years?
Is the increase in Arasan's strength the only motivator for its continuous improvement? Are there other factors ?
You can see full details in the repo logs and an overview in the CHANGES file in the repo. Some of the major changes were:
2014-2017: Auto-tuned evaluation (Texel Tuning)
2021: NNUE implementation
2022: additional NNUE tuning
Plus a lot of bug fixes and minor search/eval improvements.
I do work on improving the engine's strength, but I am not obsessed about being on top of the rating lists. I'm also just happy to see it used and enjoyed by people.
Arasan still ships with a Windows user interface, and I think the majority of users are actually downloading that package and running that version. The engine behind that isn't really optimized for strength (it is compiled for maximum portability) and anyway will be too strong for most human players. That's why the UI has a strength reduction option.
What are your primary programming interests for the future of Arasan?
Is there something you are most interested in when it comes to game styles ? Do you like to create a positional / tactical / strategic engine ?
I have a lot of things in my todo list.
I don't think Arasan has a very distinctive playing style and I don't try to tune it to have a particular style. I am tuning it for overall strength. One thing I notice is that when it's playing weaker opponents, it often either is winning right out of the opening (if using its own opening book, which is pretty good), or they succumb to an attack and lose. It certainly does know how to attack and will do so if given the opportunity. But when playing other strong engines, they don't typically make opening mistakes, or if they do they can recover from them, and they don't allow spectacular attacks, in general. So those games tend to be draws.
Arasan is a chess engine that we can enjoy on various operating systems, such as Linux, Mac, Windows. Is it difficult to write a chess engine in such a way that it is relatively easy to compile it for the above-mentioned systems ?
Originally Arasan had a lot of macros and hand-coded tweaks to make the code portable, but modern versions of C++ have features in the language and system libraries that provide portability, so I use those now.
The only place I do something special is setting the stack size for MacOS and Linux.
You are also the author of the Arasan Test Suite, a select collection of special chess positions. Does Arasan Test Suite significantly help you develop your chess engine ? If so, what do you mainly pay attention to when using these test positions ?
I used to rely on test suites for tuning a lot, but I came to realize that they do not reliably measure program strength and in particular cannot discriminate between versions or engines that have small differences in strength. Arasan is tuned now by running fast time control games and doing a SPRT test of the new version against the old version. This became widely practiced after Houdini was said to be using that method.
Test suites are still useful to give a coarse measure of strength. I am also still interested in collecting and analyzing positions that Arasan does not solve, or does not solve quickly. Arasan is playing on several chess servers and I look at the log files from those games to find positions that deserve scrutiny.
Do you have plans to introduce Arasan support for Fischer random chess (Chess960) ?
It's in the todo list, but I am not personally very interested in Chess960, and I think it would be a big job to add that support and get it thoroughly debugged, so I haven't done it so far.
When can we expect Arasan 24 ?