Implementation History

Up to now, there exist four major DARKTHOUGHT versions. The first one is a direct offspring of a chess program in Pascal that Peter had written for his 25MHz 68000 Macintosh in 1992. After porting the program to ANSI-C on IPD's DEC Alpha workstations, incrementally updated piece bitboards were added to speed up the evolving evaluation routines. This hybrid version of DARKTHOUGHT combined a traditional move generator and search engine that manipulated piece lists with a bitboard-based evaluation. It participated in the 8th WCCC (Hong Kong, May 1995), the 13th WMCC (Paderborn, October 1995), and the 11th AEGON (Den Haag, April 1996) while running at 20K - 40K nps on a 275MHz DEC Alpha-21064a.

The second DARKTHOUGHT version was already completely bitboard-based and as such a full-blown 64-bit program. But it never played a full game of chess because it could only handle test suites and lacked many important features that are necessary for real play. Peter started to work on the new program in June 1995 immediately after returning from the 8th WCCC in Hong Kong while Ernst and Markus still tuned the old DARKTHOUGHT for the upcoming 13th WMCC. Beside an extensive bitboard infrastructure, the second DARKTHOUGHT also featured rotated bitboards for sliding pieces. Peter implemented them independently of Robert Hyatt's CRAFTY efforts and - to the best of our knowledge - DARKTHOUGHT was among the first chess programs ever (if not the very first) to contain a working implementation thereof.

The third DARKTHOUGHT version emerged after Peter left the team in April 1996. While the bitboard move-generator of the second version remained mostly unchanged, Ernst and Markus rewrote large parts of the bitboard infrastructure, redesigned the search engine completely, and added an innovative evaluation engine with a fully programmable leaf-node evaluation function. Successive refinements of the third DARKTHOUGHT version participated in the 14th WMCC (Jakarta, October 1996) and the 12th AEGON (Den Haag, April 1997).

The fourth and now current DARKTHOUGHT version is an evolution of its predecessor featuring lots of speed optimizations as well as dramatic changes in the bitboard move-generator and various fundamental data structures (e.g. new chess-board representation). On a 500MHz DEC Alpha-21164a, the DARKTHOUGHT version as of July 31, 1997 routinely reaches 200K nps in the middlegame while peaking at over 650K nps in the endgame (see Section 1.2.8).

Created by Ernst A. Heinz, Thu Dec 16 23:28:11 EST 1999