Writing chess programs has been a hobby of mine since 1976, when, as a student, I wrote (in C) a blitz-chess program for a PDP-11 running under UNIX. It was not much more that a static exchange evaluator applied to every square, and its only aim was to drive the human opponent through the 5-min time control (or capture his King without warning if he was careless). It used only 3 seconds of CPU time (on a ~1MHz CPU) for the entire game.
In those days you had to solder your own computer together from chips, if you wanted to have one at home. I did that too, I built systems of my own design with 6800, 6502 and 6809 microprocessors. I wrote a series of chess programs for those, released under the name Usurpator. There was no internet in those days, so the release was in the form of a stencilled booklet with the assembly source. People that bought the book poked the hexadecimal machine codes from this listing in their machines, which was doable because the 'executable' was only 2-4Kbyte (and their total memory was not much bigger than that!)
The Usurpator programs for 6800 and 6502 (Usurpator I and Usurpator II, respectively) were even published as a regular book, published by Wolfkamp (picture left). From 1981 on I participated several times in the Dutch national Computer Chess Championship, where I usually ended in the lower half of the ranking. In 1990 I competed for the last time. I had already stopped working on program development for several years at that time, and the computer that could run the program was already scrapped. But because I was specially invited for the occasion of the 10th championship, I built a computer system in a matchbox for the purpose of running Usurpator. |
After that, I was really 'out of the business' for 15 years, and didn't take up chess programming again before the fall of 2005 (when I was invited to participate in the 25th Dutch championship). For this occasion I rewrote Usurpator in C ("Usurpator V") so that I could run it on a modern laptop, which was 10,000 times faster and had 100,000 times as much memory as the matchbox computer. That is a total improvement of a factor 1,000,000,000... But the algorithm could not handle such an improvement, and it played like crap because it was thinking much too far ahead at the expense of immediate threats. (Last place with 0 out of 9). This was at least partly due to the fact that 1 month of development time was not enough to get the more subtle bugs out, and that I had hardware trouble with my laptop (overheating because of a stuck fan, causing bit flips and crashes). I hope to have more about the new version of Usurpator on these pages soon. As a distant future relative of Usurpator used to say: "I'll be back...!" |
On this web-site you can find a recent project of mine: Micro-Max. Just for fun I tried to write a chess program in a high-level language, which had a source similar in size to the executables of my old engines. As with the matchbox, I wanted to know how small I could make things, and still have it play a decent game. The source (not counting comments and white space) contains under 2000 characters and under 200 lines, and although you might describe it as obfuscated C code, due to its small size it might be easier to understand than bigger, better styled engines. |
I am also working on building of end-game tablebases (EGTBs). This project is in an early stage, but the aim is to make an EGTB generator fast enough to generate the EGTB you need 'behind the board', so you don't need to use an enormous amount of precomputed information on disk, but just compute what you need based on the current game position. |
Chess and Evolution come together in the Chessiverse, an environment where assembly chess programs for a small virtual machine compete for survival. The question is if the programs will in the end succeed in developing a strategy to play better chess than their competitors, despite the fact that the environment does not know anything about chess strategy either, and only enforces the rules (and awards capture of the opponent's king). |
At some time I as also interested in the game Ultima. This can be played with a chess set, but since we were fanatic (blitz) chess players the tactical properties of chess pieces were hard-wired in our cognition centers. So to play Ultima I designed a set of special Ultima pieces that did not look anything like chess men.