Posts

I can't believe it, but Chess for Android just passed its ten year anniversary! In November 2008, it appears for the first time on the -then-called- Android Market, together with Reversi for Android. Checkers for Android was soon to follow. The Android Market was later renamed Google Play.
Working on this GUI has been a lot of fun, even though it took all spare time away from further developing my chess engine BikJump. But pioneering support for third party engines (at a time nobody was compiling for ARM), both UCI and XBoard, accessing endgame tablebases on SD card, adding PGN and setup features,simplifying engine setup through Chessbase compatible format and the Android Open Exchange format, using OCR apps to read chess positions, translating text to other languages, maintaining an online manual, and recently adding support for Certabo, DGT, and Millennium electronic chessboards has been just as rewarding. I have compiled many engines for Android back in the days, ran full tour…

Folkert van Heusen is developing a chess engine, called DeepBrutePos, and he also wrote a version for Android. The engine is written in Java, and he used the Android SDK to develop a version that acts as a chess server, so that it can be imported as network socket in Chess for Android (a rather unusual, but nifty use of that feature).
I conducted a quick test with one of the first versions. Below the results of a one-second-per move tournament from both sides of all Nunn opening lines on a Nexus One. I was hoping for better results for Folkert, but hopefully he will release a strong version soon. Good luck! 1 2 3 4 5 6 1 BikJump v2.1P * 17.5- 2.5 20.0- 0.0 20.0- 0.0 20.0-0.0 20.0-0.0 97.5/100 2 fairymax48q 2.5-17.5 * 10.0-10.0 12.5-7.5 18.5-1.5 20.0-0.0 63.5/100 3 umax48w 0.0-20.0 10.0-10.0 * 12.0- 8.0 20.0-0.0 20.0-0.0 62.0/100 4 Chess for Android 0.0-20.0 7.5…

There was an interesting discussion on the TalkChess forum whether a chess GUI running on the Dalvik Virtual Machine could merely support a single protocol, and use an adapter, like Polyglot, to support other protocols. Even though Chess for Android already supports both UCI and XBoard/WinBoard, I was intrigued by the question, and decided to give it a try. First, I compiled the polyglot sources for ARM-based Android devices (I had to make a few source changes to make that work). Then I edited a polyglot.ini file pointing to my own UCI engine bikjump1.8 compiled for ARM: [Polyglot]
EngineCommand=bikjump1.8
EngineName=BikJumpAsXBoard
EngineDir=/data/local/tmp/
[Engine]

As a follow-up on the previous posting and for users that want to experiment with a remote chess server without setting one up themselves, I have, very temporarily, set up a remote chess server with various engines at ports 2000 through 2005 on aartbik.dyndns.org. Simply type this hostname and one of the ports in Chess for Android and let me know if you were able to connect!

I have received several questions on how to connect Chess for Android running on an Android device (e.g. a phone) as client to a remote chess server (e.g. a powerful desktop), so I decided to write a small document with detailed instructions.
What you will need:The server software from Bernhard Wallner's chess utilities, suited for your server's operating system (if, say, your desktop runs Windows, you will need to download the Windows version). You do not need to download the client software in this case.The network enabled version of Chess for Android.On the server, start the engine server software, and construct a new row for every engine you want to run remotely. Assign a name, port number, and select the full path to each engine binary (an executable that runs on the server). You can also supply command line options for starting the engine. Check the active checkboxes and click start when done. This yields something similar to the screenshots below. Here, I have started …

I just released version 3.1.5 of Chess for Android, available either at the Android market or as direct download. New features include:Ability to filter PGN games (on player, event, ECO, ELO rating range, or result)Automatically re-import last UCI/Xboard engine on exit-re-entry of applicationFinger sweep left or right as alternative game navigationMinor improvements in setup position feature

BikJump ended at 7th place in Geert Maeckelbergh's Country Chess First Divsion of The Netherlands. After a result like this, I feel the well-known "itch" to go back to work on my chess engine again. But first a few more improvements in Chess for Android.

Vaclav Vavra set up a new website for Virutor Chess, an UCI engine available for Windows, ARM-based Android devices (and Linux soon to follow). The Android version imports without any issues in Chess for Android. I also ran a quick tournament between the built-in engine, BikJump, and Virutor. The results are show below. 1 2 3 1 BikJump * 9.5 10.0 19.5/20 2 Chess for Android 0.5 * 8.0 8.5/20 3 Virutor Chess 0.0 2.0 * 2.0.20

Another engine that can be imported in Chess for Android just became available. Martin Sedlák released a new version of his engine Cheng3, and Jim Ablett kindly made a binary available for ARM-based Android devices. The engine functions well, although it responds with "no GTB found" for the Gaviota endgame tablebases, even thought the cp4 versions reside in /sdcard/gtb.

By popular demand, I am working on a Setup Position feature in Chess for Android (file, clipboard, and MIME type operations to import and export games are already supported).This new feature is still in prototype stage, but it is going to look something like shown below.

I just released version 3.1 of Chess for Android, available from the Android Market or as direct download. New features include:engine pondering (UCI and XBoard)fixed coach bug with move from/to a1 added application/x-chess-pgn MIME support

Richard Vida released Critter 1.4, including a version for Android. This ARM binary imports well into Chess for Android. A quick 1-second-per-move tournament from both sides of all opening lines in the Nunn test suite on a Nexus S ended in favor of the previous version though.

Lucas Braesch released DoubleCheck 2.3 and I put an ARM binary on UCI and XBoard engines for Android (you can find another binary for ARM on Jim Ablett's website). Below, I show the results of a quick one-second-per-move tournament played from both sides of all lines in the Noomen test suite 2012 between some recent versions (32MB hash size, Nexus S).

Another engine for ARM-based Android devices! Tony Hecker kindly made ARM binaries of Tjchess available as either an UCI engine or a XBoard engine. Both import well in Chess for Android. Some screenshots below. With so many new engines, is it time for yet another Android chess engine tournament?

Jim Ablett kindly compiled Jon Dart's Arasan engine for ARM-based Android devices so that it can be imported in Chess for Android. The engine supports multithreading, Nalimov endgame tablebases, and clocked at about 100Kns out of the opening on my Nexus S.

As posted earlier, Jim Ablett posted an Android Chess Engine Bundle, which various UCI and Win/XBoard engines that can be imported in Chess for Android. Because the Win/XBoard protocol feature is still relatively new in Chess for Android and conducted a test tournament between all the XBoard engines (except gfc-08-rev5-ja which often claims a mate without actually making the move; I am not sure if the standard allows this, but it seems weird that the GUI should verify the claim).

During this tournament I found a few opportunities for improving the GUI's handling of the protocol, which will be released soon. Also, the next release will add the much requested pondering feature (also called permanent brain).

Group B has finished a complete thirty seconds-per-move tournament in Chess for Android, played from both sides of all positions in the Nunn opening suite under the conditions described earlier. Regrettably I found that Crafty was put at a slight disadvantage (not something that would have changed the outcome though) due to a misinterpretation of XBoard's resign plus move command, causing a resign by illegal move in the next game. This issue has been fixed now.