Posts

Chess Engine Communication Protocol

Image
I am exploring extending Chess for Android with some rudimentary support for the Chess Engine Communication Protocol (often simply called the XBoard or WinBoard protocol), which will enable importing not just UCI but also XBoard/WinBoard engines. A very first prototype is functioning. I made an Android binary of the engine FairyMax (written by H.G. Muller , who was also very helpful providing more background), and imported this in Chess for Android. Some screenshots are shown below. I still have to deal with a lot of details, but it will be fun to support both protocols, and even run tournaments between UCI and XBoard/WinBoard engines.

Gaviota v0.84

Miguel A. Ballicora released Gaviota v0.84 . I tested the Android version against an earlier release with a quick one-second-per-move tournament on a Nexus S, setting the hash size to 32MB and using the Silver Opening Suite and some Gaviota tablebases on SD (the latest release fixes an issue with tablebase setup on Android). Below are the results. The new version seems much stronger! 1   gaviota v0.84  +66/-17/=17 74.50%   74.5/100 2   gaviota v0.83  +17/-66/=17 25.50%   25.5/100

GNU Chess

Michel van den Bergh posted a new release of GNU Chess (5 branch) . To test the Android binary, I ran a one-second-per-move, 32MB hash tournament on a Nexus S, using the Silver Opening Suite , with Gaviota tablebases on SD. Below are the results. Although the latest release was mainly for FRC support, it also seems slightly stronger. GNU Chess               1         2         3  1 5.07.173b-libgtb-32       *     52.5-47.5 57.0-43.0  109.5/200 2 5.07.170.7b-libgtb-32 47.5-52.5     *     55.5-44.5  103.0/200 3 5.07.153.3b-32        43.0-57.0 44.5-55.5     *       87.5/200

Remembering 9/11

Image
We just came back from a visit to New York, where we visited ground zero. So tragic to remember what happened there ten years ago, but encouraging to see that America is rebuilding.

Rebel ELO Test Corrections and Results

Image
Running tournaments on diverse test suites gave me more confidence in the correctness of my FEN and PGN parser. This time Chess for Android found bugs in the " Rebel ELO Test ". Positions ELO 30, 121, 170  do not set the castling rights for either black or white properly, even though castling is the first given move (that is, the move the engine is supposed to find when used as a tactical test suite; when used as an opening suite, this move is obviously played right away). The results of (mis)using the corrected test suite as an opening suite in a fast match between the built-in Java engine and Stockfish 2.1 on a Nexus One is shown below.                    1 Stockfish 2.1    +421/  -4/=27 96.13%  434.5/452 2 Chess for Android  +4/-421/=27  3.87%   17.5/452 Here is one of the sparse victories of Chess for Android playing white from a very advantageous position. Nevertheless, I am happy that it found the right continuation as 1. Qc8+ (given in the suite) Kg7 2. Qf8+ Kg6

Max Euwe Suite Corrections

Image
I ran various tournaments using the " Max Euwe suite ", from the hand of the famous grandmaster who inspired many Dutch aspirant chess players, including myself. During the first tournament, Chess for Android detected bugs in positions 146 and 148 , where the castling rights are not set properly for white, even though white actually castles in the first given move (that is, the move the engine is supposed to find when used as a tactical test suite). For example, in position 146, the embedded FEN string in the PGN file: r1b1kb1r/p3q1pp/2pp1p2/4n3/3N4/8/PPP1BPPP/R1BQK2R w kq - 0 1 should really be: r1b1kb1r/p3q1pp/2pp1p2/4n3/3N4/8/PPP1BPPP/R1BQK2R w KQkq - 0 1

Beat the Masters

Image
As a fun way to test the new opening suite feature , I conducted a fast match between the very strong Komodo 3.0 chess engine and the built-in Java engine of Chess for Android using the " beat the masters suite " (a version with 251 test positions). Komodo is clearly much too strong for my own humble engine and the suite was meant to test the quality of moves found by chess engines, not as an opening suite. Nevertheless, since some positions give one side a very strong advantage, it seemed like a fun way to test the new opening suite feature. The outcome was as expected: Komodo won most games and only a few draws occurred. However, Chess for Android had one victory. 1 Komodo32 3 AB    +491/  -1/=10 98.80%  496.0/502 2 Chess for Android  +1/-491/=10  1.20%    6.0/502 In the position below, with black to move and only half a second thinking time per move, Komodo played 1... Rxe2, which yields a lost position (black should have played 1...hxg6). Chess for Android did not

Chess for Android 3.0

Image
Chess for Android v3.0 is available from the Android market or as direct download . New features include: The possibility to play engine tournaments from both sides of any external book in PGN format, as explained in this blog posting . Layout and formatting improvements in the UCI analysis output window. Light grey board color. Relaxed FEN parsing to accept non-standard, but frequently occurring omissions in the FEN string. Ability to view simple cross-table while tournament is in progress (>> button).

Silver Opening Suite

Image
Using the new upcoming opening suite feature in Chess for Android , I conducted a tournament between the most recent Android versions of Stockfish, Komodo, and Critter (32MB cache, 1s./move) from both sides of the " Silver Opening Suite " (300 games total). A screenshot of the tournament in progress is shown below (also note that the upcoming version improved the layout and display of the engine analysis window). When the tournament is over, a summary of the results is shown. The results organized in a cross-table are shown below. Stockfish is the clear winner. Komodo now comes in third (probably because v3 honors fixed time per move better than previous versions).                  1          2          3 1 Stockfish 2.1  **         60.0-40.0  76.5-23.5  136.5/200 2 Critter 1.2    40.0-60.0  **         72.5-27.5  112.5/200 3 Komodo32 3 AB  23.5-76.5  27.5-72.5  **         51.0/200

Opening Test Suites

Image
To eliminate the effect of opening books, it is a common practice to test the strength of chess engines by letting them play from both sides of a pre-selected set of opening positions. Earlier versions of Chess for Android already supported the option to play engine tournaments from both sides of 50 positions of the built-in book (yielding 100 games total between each engine pair). The upcoming 3.0 release will add the option to play both sides of any external book in PGN format, such as the famous " Nunn Positions " (published by GM John Nunn) or the " Silver Opening Suite " (published by Albert Silver). To use this feature, long press the notation window, and select "UCI Engine Support", followed by "Engine Tournament". Then select the "all games from both sides of external book". This will open a file navigation window, starting at the root of the SD card. Navigate into the directory and file of the desired opening suite. This

Komodo 3 for Android

Don Dailey and Larry Kaufman's Komodo version 3 is now available for Android (ARMv5TE) at UCI engines for Android . A quick one second per move tournament ended in favor of the previous version 2.03 (possibly because Don fixed the movetime command to honor the given time exactly; previous versions would sometimes use more time, which may have skewed estimates of their strength a bit). 1   Komodo32 2.03 AB  +50/-18/=32 66.00%   66.0/100 2   Komodo32 3 AB     +18/-50/=32 34.00%   34.0/100

Chess for Android 2.9.4

Image
I just released version 2.9.4 for Chess for Android, available from the Android market or as direct download . This version introduces the much requested "infinite analysis" mode for an imported UCI engine, in which the engine reports its analysis of positions without actually making moves. To enable this mode, change the level to free play, as shown in the following screenshots. If an UCI engine is imported, its analysis of the current position will appear below the board. The user can freely play through previous games or make new moves. When at the end of a game still in progress, pressing the ">" button will play the best move found by the UCI engine. Changing the level, or unloading the UCI engine will exit the "infinite analysis" mode. Although the feature may seem simple, it was actually far from straightforward to implement, also because not all UCI engines behave the same for the "go infinite" command. Please let me know if yo

DoubleCheck 1.1 Results

Lucas added the  movetime command to DoubleCheck (the stop command is still lacking) which enabled conducting a few quick 1-second per move matches to determine the strength of the engine. DoubleCheck 1.1 - Komodo32 2.03 AB  +0/-10/=0  0.00% - GreKo 8.0         +0/-10/=0  0.00% - gaviota v0.83.0.3 +0/-9/=1   5.00% - RedQueen 0.9.8    +0/-9/=1   5.00% - Jazz v444 JA      +1/-7/=2  20.00% - BikJump v2.1P     +2/-4/=4  40.00% - ZCT-0.3.2500      +4/-5/=1  45.00% - Chess for Android +6/-0/=4  80.00%

DoubleCheck 1.1 for Android

Image
I compiled Lucas Braesch's DoubleCheck 1.1 for Android (ARM) and put it on the UCI Engines for Android website . The engine works reasonably well in Chess for Android. However, because the UCI command movetime is not implemented yet, it plays almost instantaneously, making matches to determine its strength less useful at the moment.

GarboChess 3 for Andoid

Image
Jim Ablett kindly ported Gary Linscott's engine GarboChess 3 to various platforms, including Android. I also made a dynamically linked binary available at the UCI engines for Android website . As can be seen in the screenshot below, the UCI engines does not provide many options, but it plays strong. Below the results of several quick matches on a Nexus S using random book opening play, one second-per-move, 32MB hash, and 8MB tablebases cache with the 3- and 4-piece Nalimov, Gaviota, Scorpio, Robbobases endgames on SD card. GarboChess3  - Stockfish 2.1         +0/-10/=0    0.00%  - Komodo32 2.03 AB      +0/-10/=0    0.00%  - IvanHoe-Beta v999947c +0/-10/=0    0.00%  - Pepito v1.59          +3/-4/=3    45.00%  - GarboChess3 JA        +2/-3/=5    45.00%  - GNU Chess 5.07.170.7b +7/-3/=0    70.00%  - Gaviota v0.83.0.3     +7/-3/=0    70.00%  - Rotor 0.6a            +6/-2/=2    70.00%  - RedQueen 0.9.8        +9/-1/=0    90.00%  - BikJump v2.1P         +9/-0/=1    95.00%