myschkin: . . .
"Ferret dates from approximately 1990, although serious work didn't start until 1994.
The program is 100% original, although at the time I started I had access to the Gnuchess source code. That code was kind of messy and it was its messy state that inspired me to think that I could do better.
In 1994 I created something that could play a complete game of chess. The program entered Don Beal's uniform-platform tournament later that year (I emailed him a copy of the program), and it scored well. Surprisingly well, since the program had never played a game at tournament time controls before.
In late 1994 I discovered the ICC. Work immediately stopped on the program as I spent many hours using the program to play against other computers, and against strong humans including some grandmasters and other titled players.
During 1994 and 1995, I made the acquaintance of many other chess programmers, and I am indebted to these people, without whom Ferret would still be very weak. Included in this list are Bob Hyatt, Peter McKenzie, Dave Kittinger, John Stanback, Mark Lefler, Martin Zentner, Thorsten Greiner, and Stefan Meyer-Kahlen.
The program played in two ICCA events in 1995, which started a string that has remained unbroken except for the year 2000 event.
Ferret is a "normal" chess program. By that I mean that it uses alpha-beta full-width search, a quiescent search, a transposition hash table, an evaluation function that is called at the tips, and so forth.
It uses null-move forward pruning, and for that I am indebted to Chrilly Donninger, who did not invent this technique, but he made it accessible to the amateur community via an ICCA Journal article (Vol. 16 #3, September 1993).
The program uses numerous common extensions such as check extension, recapture extension, and single-response to check.
It also uses a sort of singular-extension that is loosely based upon the extension of this name that appears in Deep Thought and presumably Deep Blue.
The evaluation function is designed to catch common features without being slow, but it's slow enough that the program isn't particularly fast.
The program uses endgame databases of my own design and construction, but which aren't any better than the Nalimov, Edwards, or Thompson endgame databases. I wrote my own because I didn't want to take advantage of code written by others, since I felt that the program would be less mine if I did so.
The program has a series of special case low-material evaluation functions that it uses when endgame databases are not present, and in some cases when they are.
The program is written 100% in C, and is portable to any platform that runs any Windows-based operating system, including multiprocessor machines."
(by Bruce Moreland, chief programmer)