A Short Story of JCW's Computer Chess Program

(Bon, je crois qu'il y a une traduction dans Europe Echecs, ça peut pas être pire que l'original, où est mon scanner ?...)

I began to program Computer Games when I was 13. (Well, this is a long time ago) First I tried to understand how to make a better Othello player than me. I stayed on Othello, Connect 4, Awari, International Checker for a long time, perhaps being afraid of attacking what was for me the *real* challenge : Computer Chess. I rode all the literature on Computer Chess I can found in some specialized Chess Library of Paris. I even found the source of the Sargon I program. And in the summer on '84, I decided that it was the time to do it for real. I managed to have a 8088 assembly programs that played some games during the summer. Looked strong as mate searcher, weak at positional play. Was playing more or less like Sargon 2.5. After a crash, I accidently remove the source from the diskette... Next time was during my scholarship in spring '89, I wanted to test some ideas on Null Move. I did not want to care to much about positional play so I copy the Tech paradigm and focused only on tactics with help of null move and fast! (was it fast?) move generation. Then came, the first computer olympiad and I decided to make a new chess program for it since I was going there with an Othello program. But who can help me for the positional play ? At this moment, I remembered that my friend Marc-Francois Baudot was a chess player and that he all ready tried to make a chess program, this was definitively the man ! And guess, what ! He was just playing a Chess tournament near my home. He was not difficult to enroll in the project. Our goal was to make a fast tactical program with a very fast but good evaluation function. We chose of course to use the PC/Sq paradigm. The program was using Negascout Search with Killers, History Killers, transposition table. In one month, we had a reasonable prototype. It made it first entire game just 2 days before the begin of the Olympiad, and won convincingly against Cyrus on my PC. Oups, it was giving its pieces for the position so we slow down the positional evaluation. The name of the program was Echec . (Yes, Chess in French is Echecs with a S, but if my French spelling is far better than my English one, it is still really weak. Echec in French is failure !) Well, we had many bugs in the Olympiad but we did not finish the last and eventually we had a draw against Mephisto, not so bad. We rapidly then improved Echec and the version 1.5 finished second of the 1990 World Microcomputer Chess Championship. Echec even should have win the tournament since it had a winning position against Mephisto but since our new program Cumulus was having visibly a bad bug and that we were not sure that the Bug was not in common code shared by Echec, we were happy with a draw and set the contempt factor to +4. When Richard Lang saw that, he set Mephisto's Contempt Factor to -2, laughing. Well of course, we were all thinking that Mephisto should win... Mephisto took a poisoned pawn and then came into a losing position. Echec tried to repeat the position, and Mephisto did not want at first but its score went bellow -2 and finally the programs drew ! Cumulus was a new program that basically tried to solve the hanging piece problem in the quiescence search. Its quiescence search was really complex and required me at least 2 years of testing before giving me some good results. In 1991, for the Vancouver World Micro Computer Chess Championship, we decided not to enter the same Echec but the new version which should have been better, we though. In fact the version appeared to be worse than the 1990 version after the tournament... Echec and Cumulus eventually won the 1992 French Computer Chess Championship, finishing first and second. But I was not happy with Cumulus behavior : too slow. So I began to code an engine totally in assembly language while our previous program was in C + assembly. It took me one month and the results was encouraging. We named our new program Ecume but was entered as Cumulus for the 1992 World Computer Chess Championship because we were not sure that Ecume will be in a playing state for the championship. And it was, and eventually shared the second place... After the tournament, we corrected so many bugs in the assembly engine that we still does not understand how did it manage to play ! 1993. We debugged a lot Ecume and tried to make it play better on positional play... In the meanwhile I was testing some news ideas like having the search extensions not based on statics consideration but on how the move changed the board, I named that "Entropics Extension" and the program was named Joker . Joker even finished first at the 1993 French Computer Chess Championship just before Ecume. And even did better in the AEGON tournament, but our internal tests was showing that Ecume was much superior... Ecume was in the 1993 Micro Computer Chess Championship in Munich but not in a real stable state... We entered an other version in the blitz tournament and this version eventually finished second... We made a toss to know which version should compete before the tournament.... 1995. I finished my Phd. Thesis. Subject "Computer Chess" ! Frenchess our parallel chess program shared the 3rd place (with Deep Blue prototype!) of the World Computer Chess Championship. Ecume went commercial under the name Virtual Chess . And for that occasion, Marc-Francois rewrote all the engine in 386 assembly code. (not 8086). It shared 3rd place of the World Micro Computer Chess Championship, finished first of the Harvard Cup. It made ELO performance superior to 2600, in both Megeve speed chess tournament 1995 and Aubervilliers 1996.

And even, the ICCA just invented a title for him, yes, after a not so good tournament in Jakarta in 1996, it was awarded the title of World Professional Computer Chess Program '96.

November '97, in Paris, Virtual Chess II, finished second of the World MicroComputer Chess Championship and still hold the title of World Professional Computer Chess Program '97. (We are still improving......)