Zarkov Development History

Zarkov Versions 1.0-2.0

I began writing Zarkov in 1988 after finishing version 2.0 of Gnu Chess. The first version was similar to Gnu Chess in search and evaluation, but I changed the data structures to make move generation and attack table generation more efficient. I also spent a lot of time playing it against my Fidelity Excellence and trying to fix the search or evaluation function when I encountered strange behavior or got into tactical trouble. Playing lots of games by hand is a really valuable method for finding and fixing problems. I don't do much of that anymore, but I should. I considered the hardware I was using at the time to be pretty state-of-the-art: an 8 Mhz 286 PC with two 1.2M floppies and no hard drive. The A drive contained the most useful MSDOS commands, a simple editor that I wrote, and the Borland C compiler. The B drive contained the source and executables for Zarkov. I don't think compiles took any longer than they do now on a computer that's about 200 times faster! In between making changes to the chess engine I created a graphical interface for Zarkov. I had to learn sort of esoteric stuff like using mouse interrupts and writing to DOS video memory.

I think it was about 1989 when I figured I had most of the bugs out of the program and I changed from version 1.x to 2.0 and licensed Zarkov 2.0 to a company called Chess Laboratories who sold Zarkov via mail order.

Zarkov 2.5

In 1990 I discovered how to prune the tree with a reasonably effective selective search technique which relied on a combination of evaluation function heuristics and reduced depth search. This change alone improved the engine by about 100 rating points. I also added more evaluation function heuristics, improved the search extensions, and improved transposition table operation. I tuned the evaluation function by running hundreds of self-play blitz games where the weights for each heuristic were randomly assigned one of two weights (slightly lower or higher than my "normal" value for that heuristic). Based on the results, the "normal" values of the weights were modified and the process repeated. This technique seemed to work pretty well -- I should do it again one of these days with the latest version of Zarkov! The net result was a big improvement in playing strength. Zarkov 2.5 was released in 1991. I should have called this version 3.0 since it was so much better than previous versions.

Grandmaster Chess

In late 1991 and early 1992 I modified the engine to be more selective and created a more modern DOS interface with pull-down menus and sliding pieces. I also created a new interface and licensed this program to a company called IntraCorp who added 2D and 3D piece sets, marble boards, and sound and marketed the program under the name "Grandmaster Chess". Unfortunately they quit paying royalties to me after about a year and they eventually went bankrupt. Grandmaster continued to be sold both individually and bundled with other old software for several more years.

Zarkov 2.6

I made some slight improvments to the Grandmaster engine and added some features to create Zarkov 2.6. My own testing was usually at short time controls of 5-15 seconds per move and this engine seemed to be an improvement over Zarkov 2.5, however after it was released it appeared that it was no better than version 2.5 and possibly a little worse at longer time controls. This could have been due to the changes which made the search more selective, causing it to miss some stuff.

Zarkov 3.0

For this version, I completely rewrote the interface, using some of the code I developed for Grandmaster. Also, I went back to the selective search technique that I used for version 2.5, but with some improvements. I did a lot of work on search extensions, but it's not clear how much this improved the program. I set up the capability to play automatically at night against the Saitek Leonardo modules and against the Novag Forte C. Matches against these programs indicated a significant increase in program strength. This version was released in 1994. I was disappointed in the rating this version attained on the Swedish Rating List. My own results and those of Max Harrell after thousands of games against several opponents indicated that it should have been at least 100 points stronger than reported on the Swedish list.

Zarkov 4.X

After Zarkov3 was released I worked on an engine for Electronic Arts. As part of this project I worked with IM Marc Leski to improve the evaluation function for Zarkov. The process we used was that I would send him a hundred or so autotest games and he would spend several hours analyzing them, saving key positions along with his comments. Over the phone we would discuss these positions and try to figure out why Zarkov played the wrong move and possible ways to improve it's assessments. Having worked with Don Dailey and Larry Kaufman on the Socrates chess program Marc had a lot of experience with chess software and was able to make suggestions which were somewhat concrete rather than pie-in-the-sky stuff that couldn't be defined or implemented. I feel that his help increased Zarkov's rating by nearly 50 rating points and that further improvement would certainly have been possible. Unfortunately, Electronic Arts cancelled this project.

My plan was to create a Windows interface for this engine and release a Zarkov4 in about 1996. However I got kind of burned out and have spent much less time working on the program than I used to. Learning Windows programming took a lot longer than I expected -- I still only know the basic stuff and don't do enough Windows programming to feel very comfortable with it.

Anyway, I created a "DDE Server" chess engine that can communicate with an external interface via the Windows DDE protocol. Versions 4.0, 4.1, and 4.2 of this engine are used with the Bookup and Chess Assistant database programs and with the MasterChess98 program. This engine is sold by mail order through the Chess For Less company.

I have an unreleased Winboard engine called Zarkov 4.5X which I have given to Frank Quisinsky and Kai Skibbe for their Winboard engine tournaments. This version is doing pretty well.

Zarkov 5.0

Zarkov 5.0 is a DLL file which is sold as an add-on engine for the Millenium Genius 6 interface. The engine is nearly identical to version 4.5.

Tournament Results

Zarkov's best result is a second place finish to Deep Thought in the ACM '94 tournament. It also did quite well in the Aegon tournaments held from 1994-1997, finishing with four points in six games each time.

Zarkov usually maintains a blitz rating of about 2900 on the Internet Chess Club.