Posts

Animation of Engine Moves

Because it is hard to print all information from the UCI engine on the phone screen, I am toying with a feature where the current move considered by the UCI engine is shown graphically. Below is a short demo of this feature. Let me know what you think!

Chess for Android 2.4

I just released version 2.4 of Chess for Android at the Android Market with the following new feature: basic UCI engine support (ability to replace built-in Java engine with any third party UCI engine compiled "natively" for Android) Instructions on how to setup an UCI engine are given at UCI for Android . As far as I know currently only BikJump is available as stand-alone UCI engine for Android. Although stronger than the built-in engine, I hope I will be able to add links to much stronger third party UCI engines soon. Please note that support is still rather basic (elaborate setup, only tested on one engine, GUI does not support engine options, time control restricted to time-per-move, position sent as FEN, making the engine more prone to three-fold repetition, no tournaments, etc.). Nevertheless, I hope it is an interesting start.

UCI Engine on Android

Image
Here is an UCI engine running on a Nexus One in Chess for Android, probing the complete 3- and 4-piece Nalimov endgame tablebases (29.6 MB) from SD card. Here is a screenshot where the UCI engine already reports a mate (using the tablebases), while the internal Java engine only reports a negative score for white given a search tree of depth 9. Steps to make this work are shown at UCI for Android .

More UCI Support for Android

Image
The UCI engine output is now presented in a slightly better format, where information is broken up into individual fields. Also, I have compiled BikJump v2.1 natively for Android, which is more elaborate multi-threaded bitboard-based engine that also supports the Nalimov endgame tablebases (with kind permission from Eugene Nalimov and Andrew Kadatch). I copied a few tablebases into the emulator's SD card and started the engine analysis. As can be seen in the screenshot below, the engine together with the probing code run fine on the Android emulator.

UCI Support for Android

Image
The UCI ( Universal Chess Interface ) protocol defines an open interface between a chess engine and a graphical chess program, which allows chess programmers to focus on their engine rather than GUI details. Many programs on Windows, Linux, and MacOS support the UCI protocol (e.g. ChessBase, Arena, Sigma Chess, Lucas Chess), but as far as I know, no UCI support exists for Android. Even Chess for Android uses a simplified Java port of my own UCI engine BikJump rather than going through the UCI interface. Therefore, I am prototyping UCI support in Chess for Android with the idea that, in the long run, this will allow importing third party engines into the GUI. So far, I added a "kibitzer feature". Any UCI engine binary that has been "natively" compiled for Android (using a compiler that ships with the Android NDK ) can be imported through a file finder dialog, as shown below for a natively compiled version of BikJumpv1.8 running on the Android emulator. Once impor