Initial setup of mini-Shogi
WinBoard Shogi package, including Shokidoki and UCI2WB.
WinBoard Xangqi installer, including UCCI2WB and UCI2WB and 3 sample engines.
On August 1, 2010, I started building an engine for Shogi, to compete in the ICGA Computer Olympiad 2010 in Kanazawa, Japan, for which I had already registered it under the name 'Shokidoki'. I derived it from my Xiangqi engine HaQiKi D, by changing the board representation, and replacing the move generator and evaluation function. The evaluation is still very rudimentary, as I am no Shogi playe myself.
During the Olympiad I adapted Shokidoki to also play mini-Shogi (variant 5x5+5_shogi, in WinBoard terms). To my surprise, the search algorithm I used was much more suitable for mini-Shogi than for regular Shogi (where it tends to overlook tsume mates by drops), and it finished second place there, before the 2007 World Champion Tacos.
Shokidoki implements modern search techniques, such as hash table, null-move pruning, late-move reductions, check extension. Especially drops are heavily reduced unless they prove useful (by making a null-move reply fail low through a move with the dropped piece).
Amongst the downloads above, you can also find a Linux binary for i386 architecture. (This should run on x6 architectures too.) To use that, unzip it, and place it in /usr/games. You will then be able to run it in XBoard through the command:
xboard -fcp shokidoki -variant shogi
WinBoard for Shogi
Shokidoki uses WinBoard protocol, and can thus run natively under WinBoard. Other WinBoard engines are TJshogi and a version of GNU Shogi adapted by me. WinBoard can also run Shogi engines using USI protocol through the UCI2WB adapter. USI-compatible engines that I tested this way are Lesserkai, (which is included in the package of the Shogidokoro GUI), PetitShogi, Laramie, BlunderUSI and SPEAR. Some of these, in particular PetitShogi and SPEAR, are not fully USI compliant, but support some 'Shogidokoro dialect' of USI. This dialect only support byoyomi time control (which is not yet available under WinBoard). They can be run by a kludge (built into UCI2WB for this purpose) of making WinBoard incremental TC look to them as if it was byoyomi. The very strong engine Bonanza can be run as USI engine through the u2b adapter, and thus under WinBoard through UCU2WB and u2b in tandem.
|engine name||supported protocol||remarks||downloads|
|GPS-Shogi||USI||Strongest free engine? Ended 3rd in last CSA Championship||direct link to installer|
|Bonanza||USI through u2b.exe, WB||Open source!||Bonanza download page, u2b (link to zip file) WinBoard version (source)|
|SPEAR||USI/Shogidokoro||Does not ponder as USI engine||Spear home page|
|Laramie V3||USI||Link to zip file|
|Shokidoki||WB||Link to binary|
|PetitShogi||USI/Shogidokoro||Supports 5x5 and 6x6 mini variants, but with fatal bug||Home page (Japanese, but recommended reading), Link to zip file|
|TJshogi||WB or USI||Home page|
|GNU Shogi||WB (or XShogi)||Very weak||Link to zip file|
|Lesserkai||USI||Even weaker, USI demo engine included with Shogidokoro||Link to Shogidokoro zip file Source code|
Below is the cross table of a bullet tournament I conducted (1 min + 1sec/move) amongst these engines, where each participant played each opponent 100 times. (A '+' stands for 0.5 point.) GPS Shogi is not really suitable for such fast games, and loses on time a lot, because it sometimes pauses for several seconds to clean up its memory. (E.g. of the 28 losses against Shokidoki 0.9x, 27 were lost on time in a won position.) Spear underperforms badly because uses almost zero time; at long time control it is much stronger. Lesserkai is hard-wired to search 4 ply deep in any position, and ignores all time control. The other engines were using their time in a reasonable way.
CROSS TABLE Bon GPS Blu Spe Lar Shx Shm TJs Pet GNU Les Bonanza Feliz WB ### 65 80 98 100 96 96 GPS Shogi r2410 35 ### 73 89+ 82 72 77 Blunder-20091023 20 27 ### 93 97 94 96+ SPEAR CSA09v1.5 2 10+ 7 ### 77 52 62+ 85 82 Laramie V3 0 18 3 23 ### 53 52 86 66 Shokidoki 0.9x 4 28 6 48 47 ### 50 75 74+ 94+ Shokidoki 0.9m 4 23 3+ 37+ 48 50 ### 71 78 97 TJshogiWB 0.03b 15 14 25 29 ### 56 87 PetitShogi (ssp) 18 34 25+ 22 44 ### 98 GNU Shogi 1.3.2 5+ 3 13 2 ### 89 Lesserkai 1.3.3 11 ###