Checker Apps for the Android

On this page and in our companion Checker Maven webzine article, we take a tour of checker apps for the popular Android platform. Our test device was a Motorola Droid X; due to budget limitations we didn't test any Android tablets or other Android devices.

We did a survey of available apps (as of April, 2012) and took a look at a number of them. While we'll give more complete results in just a moment, we'll jump to the bottom line and tell you that only Checkers Tutor, by Martin Fierz, and Checkers for Android, by Aart Bik, really made the cut. The rest of the apps were either also-rans or just what we'll call "toys"--- apps that treat checkers as a game for kids and no more.

We asked both Martin and Aart to do an email interview with us, and they were both very gracious with their time and expertise.

Interview with Martin Fierz

1. Why did you decide to write and publish CT (Checkers Tutor)? What did you expect the market to be?

I guess I just wanted to see whether I could write something for Android, and since I'm best at checkers programming that's what I did. I would have expected the market to be bigger than it turned out to be! Checkers Tutor has sold an underwhelming 52 copies in 14 months. Checkers Free by Optime (which at least on the iPhone is based on Simple Checkers) has over one million downloads. Of course it's free, but a lot seems to have to do with visibility in the Android marketplace, and somehow my app seems to be more or less invisible. Another thing that lowered my motivation considerably is that Google is churning out Android versions more or less every month. You are supposed to keep up with all the different OS versions, and all kinds of different screen resolutions. Ah, my kingdom for an iPhone!

2. Why do you think serious chess apps succeed and serious checker apps don't?

At least one of the reasons is likely that everyone playing chess knows the real rules, which strangely is not at all the case in checkers, so authors have to produce toy programs instead to get good reviews and ratings. This explains why most of the apps have the ability to turn off mandatory captures--- because the people using the apps have no clue about checkers, or because many kids learn to play without mandatory captures for some reason, and they are very unhappy when they must capture, then think the app cheats and proceed to give very bad ratings which hurt sales/downloads. So not only do the programmers have to make the programs very weak, they also have to let their apps play with the wrong rules just to avoid the bad ratings. For me that was one of the reasons to add those options of showing all legal moves in Checkers Tutor. I also went to some lengths to add levels where it should be easy to beat the machine--- I had to invent some new tricks for that, such as a level where the app always tries to play for a weak position. Sadly, people want checker apps to be toys.

3. What's the engine in CT? Is there an opening book, endgame database, etc.?

The engine is written in Java (standard on Android), and was written from scratch, but of course based heavily on Cake. However, it is definitely less complex, and less powerful--- there is also a Windows version here: It has no opening book and no endgame database. I was motivated to add at least an opening book, but with the absolutely abysmal sales, motivation has gone to subzero.

4. Given that there's Cake, KingsRow, Chinook, 10-piece databases, proof that checkers is a draw, etc., do you see any future in checker engine programming? (You and Ed have pretty much stopped any work on Anglo-American checkers and there is no other serious effort that we're aware of.) Do you think world-class engines might be brought to the quickly emerging tablet format?

I'm very much behind latest developments in hardware, so I don't quite know what would run on a tablet. My jCheckers thing should run everywhere, and at least as an engine (without talking about opening books and endgame databases). It is quite powerful. One of the reasons I stopped checkers programming is that I have no way of verifying any improvements any more--- playing matches against KingsRow was always my favorite way of testing, and with scores now around +15-15=258 in a match over all 3-move openings, I can't do that any more: KingsRow has a small randomization feature, so if you play the same match three times, you get three slightly different results, and because the scores are so narrow, there is no way for me to really find out whether whatever I changed led to an improvement. If I can't test that, I can't optimize further. As for anyone else trying his hand--- with checkers being officially solved, it probably doesn't attract much attention any more.

5. Assuming that the picture is bleak because of a lack of public interest in serious checkers, what might be the solution? Can this be turned around?

If only I knew! I thought that something like Checkers Tutor, which would teach people how to play the "real" game, might help, but I failed bigtime.

Interview with Aart Bik

1. Your Android app "Chess for Android" has won much recognition and user acceptance. How then did you become interested in checker programming?

Ever since I got a dedicated chess computer as a kid in 1981, I have been fascinated by game programming. It was not until 2007, however, that I implemented a simple, but fully functional C++ chess engine "BikJump." At the end of the same year, I participated in a pioneering program at Google to develop applications for Android with the objectives to test the SDK and to explore what kind of applications could be developed in a short time. Since I was new to GUI programming, I started with Reversi for Android, mainly to keep graphics simple, before developing Chess for Android with initially just a stripped down Java version of my chess engine but later extended with UCI and XBoard support for importing third party engines. When I posted these applications on the Android Market, I got a lot of user requests for a checkers program, which inspired me to write Checkers for Android. After reading an online tutorial on checkers programming, I wrote a Java bitboard 8x8 checkers engine from scratch which to my surprise already played a decent game of checkers. To avoid the engine's indecisiveness in the endgame, I added pre-computed endgame tablebases for P-P, P-K, K-K, and 2K-K which are queried during the search tree. Soon I became intrigued with checkers programming and ported the Java code to a C++ checkers engine "BikMove", which can be imported in Martin Fierz' excellent CheckerBoard application. I had a lot of fun playing tournaments, although my engine of course never reached the level of Martin's Cake or Ed Gilbert's KingsRow.

2. In "Checkers for Android" is your move evaluation based on Simple Checkers, Cake, or some other published model--- or is it an algorithm of your own?

I wrote all code, search, evaluation, and endgame tablebases from scratch, although I would like to acknowledge Jonathan Kreuzer's excellent online tutorial for teaching me the basics of checkers bitboards move generation. I also bought a few checkers books to get inspiration on improving the evaluation function, and I looked at some evaluation components used in Martin Fierz' Simple Checkers.

3. Your calculation of 'perft 'tables is, we gather, well-known in checker programming circles. Can you comment on that?

As you know, the perft/divide method originated in the chess programming community as a useful way to test the correctness of a move generator. After I wrote the first version of my 8x8 checkers engine, I compared numbers with Martin Fierz to get piece of mind on the implementation. Around that time, I was experimenting with a prototype distributed worker pool at work that needed some test input, and perft for 8x8 checkers was a suitable candidate. After publishing higher depths on the World Draughts Forum, I got in a good natured competition with kind people like Rein Halbersma. Eventually I computed perft/divide up to depth 24, at which point my project went beyond the prototype stage. I emailed Jonathan Schaeffer the results and was very honored with a reply. It will be interesting to see who computes depth 25 next!

4. We note that "popular demand" caused you to add a "non obligatory jump" option to your app, and that many comments state that the app plays too well! Can you comment? Does this say something about checker apps in the marketplace?

Indeed, many users requested optional captures. Even though in my opinion forced jumps only add to the beauty of the game, it was not hard to add that feature and I obliged. I was more surprised by complaints that the game plays too strong because, as a developer, I was interested in making the engine as strong as possible. But overall I think it is fair that users want to win every once in a while. A successful checkers application in the marketplace should probably offer a wide variety of levels, ranging from friendly mode to very strong levels. I also think users appreciate an actual animation of the moves, something that is not present in my simple GUI.

5. Where do you think checker programming is going (if anywhere)?

Hard to comment, since I am only an amateur this field. Top programs like Chinook, Cake, and KingsRow dominate 8x8 checkers, so the focus will probably shift to other checker variants, such as 10x10 international checkers.

6. Anything at all you care to add .... ?

I have had lots of fun developing my games for Android. I hope users keep enjoying the games, and see them in the right perspective: simple fun projects, developed in spare time, that I give away for free.

Android Apps Rundown

A look through the Android App Store (now called "Google Play") lists many, many checker apps. We took a brief look at a few of them and included some comments below. Some are listed just by name; it's safe to say that such apps have little to offer the serious player.

Checkers Free
Checkers-V Free
Zen Checkers
Checkers Tutor

Our first contender is Martin Fierz' Checkers Tutor. The program has the following features, among others:
Certain things that we wish it had:
Checkers for Android

Our other contender is Aart Bik's Checkers for Android. The program has the following features, among others.
Things we might wish for:
The Showdown

We played two matches between Checkers Tutor and Checkers for Android. While we feel that Tutor came out ahead, there are enough variables in play that we can't claim to have definitive results.
The bottom line: Tutor drew the first game and won the second. However, in the first game, Checkers for Android achieved a won position but was unable to convert the endgame. So things were a little closer than the 1.5-0.5 results might indicate.

Both games are given in PDN for easy cut and paste into CheckerBoard in case you'd like to do your own review and analysis.

[Event "Checkers Tutor vs. Checkers for Android"]
[Black "CFA 10 sec"]
[White "CT 15 sec"]
[Location "Hawaii State Public Library"]
[Date "04/18/2012"]
[Result "1/2-1/2"]
1. 11-15 23-19 2. 8-11 26-23 3. 9-14 22-18 4. 15x22 25x9 5. 5x14 29-25 6. 11-15 25-22 7. 14-18 23x14 8. 10x26 19x10 9. 6x15 31x22 10. 4-8 27-23 11. 2-6 21-17 12. 7-10 23-18 13. 8-11 17-13 14. 12-16 24-20 15. 15-19 22-17 16. 19-23 28-24 17. 10-15 18-14 18. 16-19 14-9 19. 19x28 9x2 20. 15-18 13-9 21. 18-22 17-14 22. 22-26 14-10 23. 11-15 2-7 24. 26-31 7-11 25. 15-18 11-15 26. 18-22 15-18 27. 1-5 18x25 28. 5x14 25-22 29. 3-8 10-7 30. 8-11 7-3 31. 11-15 3-7 32. 14-18 7-11 33. 18x25 11x27 34. 31x24 30x21 35. 24-19 21-17 36. 19-23 17-13 37. 23-18 13-9 38. 18-14 9-6 39. 14-9 6-2 40. 9-5 2-7 41. 5-9 7-10 42. 9-5 20-16 43. 5-9 16-12 44. 9-5 12-8 45. 5-9 8-3 46. 9-5 10-14 47. 5-1 14-17 48. 1-6 17-22 49. 6-9 22-26 50. 9-5 3-7 51. 5-9 7-10 52. 9-5 10-14 53. 5-1 26-30 54. 1-6 30-26 55. 6-1 26-30 1/2-1/2

[Event "Checkers for Android vs. Checkers Tutor"]
[Black "CFA 10 sec"]
[White "CT 15 sec"]
[Location "Lion Coffee Cafe, Honolulu"]
[Date "04-30-2012"]
[Result "0-1"]
1. 9-14 22-18 2. 11-15 18x11 3. 8x15 25-22 4. 7-11 22-17 5. 4-8 29-25 6. 2-7 23-19 7. 15-18 24-20 8. 5-9 17-13 9. 18-23 27x18 10. 14x23 25-22 11. 11-15 28-24 12. 7-11 22-17 13. 1-5 17-14 14. 9x18 21-17 15. 6-9 13x6 16. 18-22 17-14 17. 10x17 19x10 18. 22-25 26x19 19. 25-29 6-2 20. 5-9 2-7 21. 9-14 7x16 22. 17-21 10-6 23. 8-11 16x7 24. 3x10 6-2 25. 14-18 2-6 26. 10-14 31-26 27. 14-17 6-9 28. 29-25 9-13 29. 17-22 26x17 30. 25-22 17-14 31. 18-23 14-9 32. 21-25 30x21 33. 23-26 9-6 34. 22-18 13-17 35. 18-22 17-14 36. 22-25 6-2 37. 26-31 2-7 38. 31-26 19-15 39. 26-22 15-11 40. 22-17 7-10 41. 17-22 11-7 42. 22-26 7-2 43. 26-31 2-7 44. 25-30 24-19 45. 31-26 21-17 46. 30-25 17-13 47. 26-22 13-9 48. 25-30 9-6 49. 30-26 19-15 50. 22-25 15-11 51. 26-22 11-8 52. 22-26 8-4 53. 25-30 4-8 54. 30-25 14-18 55. 25-30 6-1 56. 30-25 7-11 57. 25-29 10-15 58. 29-25 1-6 59. 25-29 32-28 60. 29-25 6-9 61. 25-29 9-13 62. 26-30 18-22 63. 12-16 13-17 64. 16-19 15x24 65. 30-25 22-18 66. 25-21 17-22 67. 21-17 22x13 68. 29-25 13-9 69. 25-30 18-22 70. 30-26 22x31 0-1

Additional Play

We tried two additional matchups.
  1. We played Checkers Tutor against Simple Checkers and Tutor won.
  2. We played Checkers Free against Simple Checkers and Simple won. So much for Checkers Free. This surprised us, because we understood that Free was based on Simple.

As we noted in our Checker Maven article, there's really no reason for you not to have both Checkers Tutor and Checkers for Android. It will only cost a dollar, and you can try them both and make your own decision. We've decided to keep them both on our Droid X; we feel they're both worthy and a lot of fun.

We really urge you not to base your decision on the fact that Checkers for Android is free and Checkers Tutor costs a dollar! A dollar to support Martin's work is hardly too much to ask, and it will neither make you broke nor make him rich.

It's a shame that the marketplace won't support checker apps the way it supports chess apps. If you're a chess player, you can have engines like Shredder and Stockfish, with a whole host of features that appeal to the serious player. Some of these, like Droidfish (the Stockfish variant for Android) and Chess for Android (also by Aart Bik) are completely free. A lot of this has to do with the more robust nature of the international chess community, and some intrinsic advantages (chess is played by a single set of rules around the world, while checkers most definitely is not). But a major factor is the persistent public notion that checkers is "for kids." As long as that view prevails, we will have a ton of "toy" apps, while top-notch developers find little or no incentive to push their apps forward.

Last Words

Our sincere thanks to Martin Fierz and Aart Bik for generously giving their time to provide information for this article. Any errors contained herein are, of course, the sole responsibility of The Checker Maven.

This article is Copyright (C) 2012 The Checker Maven. All rights reserved. May not be reproduced in any form, in whole or in part, without the express written consent of the copyright owner. Permission is granted for web links to the original article only.