Chess for Android: UCI Engine Options
The UCI engine setup dialog in Chess for Android was developed a long time ago when there were not many chess engines available for Android. As a result, I opted for a simple dialog that featured a few, commonly used UCI engine options only (such as hash table size, number of threads, endgame tablebases). However, the options that I picked almost ten years ago no longer serve the wide variety in options of the many chess engines available for Android.
Therefore, I decided to re-implement the UCI engine setup and do what the UCI protocol specification actually intended: the GUI should parse all options and build a dialog that allows the user to change them. For engines with only a few options, this yields a concise dialog, as illustrated below with BikJump v1.8. For engines with many options, this yields a more elaborate, scrollable dialog, as illustrated below for Leela Chess Zero. In any case, however, the new implementation gives the user full access to all options!
Expect this new feature to go into production very soon. A few comments on issues that could be improved.
- As before, the options setup is a one time procedure for each engine. Individual options can only be changed by first clearing the options setup for that engine, and starting again. I may add a "change options" feature at some point, so that not all parameters need to be revisited each time.
- The UCI protocol specification recommends omitting certain options that are best handled elsewhere. For now, I opted for showing all options at once.
- The options setup is associated with an engine binary. Perhaps in the future I may allow setting up a single binary with different options, and giving each configuration a new name.
As usual, please let me know what you think!