Initial setup of mini-Shogi
WinBoard Shogi package, including Shokidoki and UCI2WB.
WinBoard Xangqi installer, including UCCI2WB and UCI2WB and 3 sample engines.
Special mini-Shogi package with 6 different mini-Shogi engines.
Shogi-variant package (Dai, Chu, Sho, Heian, Tori, Judkin, Euro- and mini-Shogi) !!! Updated July 2015 !!!
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. In 2013 Shokidoki even won the mini-Shogi gold medal in the Olympiad.
In the first half of 2015, two new variants (Tori Shogi and Euro-Shogi) were added to the variants Shokidoki can play. In preparation for the ICGA Computer Olympiad the general playing strength of Shokidoki was significantly improved, by a more aggressive evaluation of King safety, and static detection of mate-in-1 piece drops in quiescence search. As a result it now scores approximately 40% against the SPEAR engine in 20-min games, and 52% in bullet games. (The previous version scored 28% and 48%, respectively.) In addition the implementation of the multi-PV option was completed, so that the engine setting 'Multi-PV margin' can now be used to specify a centi-Pawn range, and moves that are within that range from the best moves will also be reported in the engine output. Some annoying bugs were repaired as well.
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 and x64 architectures. 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 and Bonanza 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, but it is recommended to use the Bonanza WB version I created, which does not need adapters, and supports interactive analysis and move exclusion under WinBoard.
|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! Enhanced WB version!||Bonanza download page, u2b (link to zip file) WinBoard version (source)|
|Ponanza Quartette||USI (but resigns at classical TC)||Byoyomi TC only||Download page|
|SPEAR||USI/Shogidokoro||Does not ponder as USI engine||Spear home page|
|Sunfish||USI||pondering cannot be switched off||Download page|
|Laramie V3||USI||Link to zip file|
|Shokidoki||WB||Supports 5x5 and 6x6 mini variants||Link to binary (v0.9)|
|Kuma Shogi||USI||Only plays 30-min ponder on||Download page|
|Hiyoko Shogi||USI||non-compliant||Download page|
|Miyako Shogi||USI||Cannot start with sente||Download page|
|Nebiyu||WB||Supports 5x5 and 6x6 mini variants||Download page|
Supports 5x5 and 6x6 mini variants
Byoyomi TC only
|Home page (Japanese, but recommended reading), Download page|
|TJshogi||WB or USI||Separate binary supports 5x5||Home page|
|GNU Shogi||WB (or XShogi)||Very weak||Link to zip file Source code|
|Lesserkai||USI||Even weaker, USI demo engine included with Shogidokoro||Link to Shogidokoro zip file Source code|
|Inaniwa||USI||Non-searching engine, non-compliant||Link to zip file|
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 ###