Written in the Fall of 1996, shortly after the 14th World MicroComputer Chess Championship (Jakarta, Indonesia), this article was intended as a guide for present and aspiring participants in microcomputer chess events.


T.A. Marsland
ICCA President
Edmonton, Alberta, Canada


In the weeks leading up to the 14th WMCC, and during the event itself, a number of things interfered with the smooth running of operations. In retrospect, some of the problems could have been avoided had participants been reminded of our guidelines and expectations.

As organizers we have watched computer-chess events evolve over many years. Hence, we have an understanding and a sense of history that is no longer being communicated. Also, technology moves on--in particular the World Wide Web (WWW) has arrived--and expectations have risen correspondingly. The WWW brought us a new phenomenon, the on-line discussion (which can include uninformed rumour and hostile speculation) about ICCA decision-making and motives. An example is the issue of why in the annual microcomputer events is there a clear distinction between professional and amateur programs, when this distinction is less apparent in the World Championships held every three years?

This article is intended to do three things: (1) give our readers a little of the history of the ICCA tournaments, particularly in respect of the difficult question of amateur/professional status (Sections 2 and 3); (2) supply all potential applicants with information about the technical requirements for programs participating in future tournaments (Sections 4, 5 and 6); and (3) advertise the ICCA WWW page at http://www.cs.unimaas.nl/icca/, which we hope may be used to improve communications between the ICCA and the electronically-tuned public.

Clearly, the ICCA needs to be more sensitive to the world outside its special community, and provide regular and reliable news releases to public forums like Internet newsgroups. These newsgroups, following their point of view, have their own clientele and service providers who expect immediate access to the latest news about chess. For instance, they expect rapid distribution of games as they are played during an event. Of course, Internet viewers do not want to pay the ICCA for this service, but that is another matter! In principle we could provide the games quite quickly; it requires after all just personnel, money, telecommunication access and the cooperation of the participants to interface their programs to a local network! Before we can achieve that, however, we need to ensure that all programs participating in an event have a common set of minimal capabilities built into their program. The second point above, therefore, focusses on specifying those capabilities, and stating clearly for public record the ICCA's expectations for future participation in computer-chess events.


First, let us deal with the contentious issue of why a distinction is made between amateur and professional (commercial) programs, and what that distinction means. Prior to 1980 there were no serious commercial chess machines. The ICCA had been formed by chess programmers to stimulate interest in computer chess and to help further the research and development necessary to make a "World Champion" chess machine. At that time the best-established computer-chess event was held each year in America, under the wing of the Association for Computing Machinery (ACM). Beginning in 1974 an international computer-chess event was created with the expressed intention of bringing together chess programmers who could discuss their latest results and demonstrate the effectiveness of their methods. That event was held at an International Federation of Information Processing (IFIP) Conference in Stockholm, and has continued on a 3-year cycle. The ICCA established a triennial pattern for its premier event with the 1977 World Championship in Toronto. At that time there was negligible commercial interest in chess, and so all programs were classified as amateurs. This tradition continues today, with the absence of entrance fees for the Triennial World Championship, and with commercial programs entering an experimental version, not a marketed program. Naturally, this can cause some confusion, and even some inconsistency in the reporting of results from that event, but the concept of experimental programs, using any type of computing equipment (since it is an open event) competing for the title World Computer Chess Champion, is well accepted.

With the introduction of the Microcomputer Championships in 1980 things became less clear. By this time there was a budding (and even burgeoning) set of computer-chess-machine manufacturers, and several programmers trying to make a living from computer chess. The market dictated a single microprocessor-based system (but clearly such machines could not compete against mainframes--even though they could already wipe out average chess-players in speed games). For this reason David Levy conceived the concept of a "closed" event, restricted to single-processor, on-site computers or so-called chess machines. To fund this event manufacturers and professionals were charged an entry fee and were allowed to compete for two titles: one for dedicated chess machines (as sold to the public), and one for professional programs that were being developed for public sale. To these titles was added a category for amateurs whose programs were at an earlier stage of development and not yet being marketed. This format continued successfully for more than a decade, until there was a reduction of entries for the Manufacturers' Prize (the dedicated chess machines). More to the point, the ICCA saw a rapid reduction in the income that their fees provided. Fortunately, we have found other ways to recover our costs, usually with the aid of hosts or sponsors. For example, Sun MicroSystems covered the costs in 1995 (Paderborn) and Computer Schach und Spiele hosted the event in 1993 (Munich).

In the past, applicants specified their program's category, competing for the Manufacturer's Title, the Professional Title or the Amateur Title. Now with sponsorship money and the provision of travel grants to some participants, times are changing. Naturally, the professionals had not been eligible for support (although it was after all their fees that were partly providing the grants), nor could the ICCA give financial incentives to professionals, since this might be construed as an endorsement of their product!

These conditions have led to an increasing number of participants requesting entry into the competition as amateurs. But, the question of who is an amateur and who is a professional has no clear answer. For some participants there is unanimous agreement. Similarly, there is virtual unanimity that companies engaged in writing chess programs for sale should have their entries regarded as professional, even for a new program not yet marketed. However, there are many circumstances lying in a grey area between. For example: amateurs who offered a previous program for sale, but obtained little income from it. Or a programmer who works for a company making commercial chess software, but makes a living developing accounting packages. People are likely to have differing opinions about these cases. In the end, the decision lies with the group charged with assessing the qualifications of the applicants. As with similar situations elsewhere the decision of the reviewers must be final and must be accepted with good grace. Basically, the applicant makes the case and the reviewers give a judgement.

Interestingly, few people have questioned our categorization, and those who did were unable to come up with any definition when asked. Though some participants provided thoughtful comment, still no new more broadly acceptable definition emerged. Since I cherish constructive input on this topic, I again invite former participants in our computer-chess events to compose their thoughts and come forward with considered opinions on how to sort professionals from amateurs.


The issue of who gets financial support is equally tricky. It is never possible to provide grants to everyone, since always the potential demand exceeds the supply. Again, a decision must be made. If any reader of the ICCA Journal has a concrete proposal here, please mail it to the Editor's correspondence column so that the insight can be studied fully. As things stand the ICCA offers financial support only to amateurs, ranked according to the apparent strength and performance rating of the program. We always try to define the amateur category as widely as possible to encourage extended development of chess programs, and to include those who have received only token financial aid thus far. Our practice, however, is that employees of (or contractors for) established computer-chess vendors clearly have a professional interest in their program and so are not eligible for support. It follows that anyone who is employed as a programmer to make computer games would probably also fall under the professional umbrella. Thus, those assessing applicants to ICCA events must use their judgment based on the information provided and on their independent sources of knowledge.


For those who wish to participate in future ICCA-sanctioned events, let us now consider the capabilities that chess programs and their operators must demonstrate. The first thing that is clear is that all programmers should by now have E-mail addresses. There is a declining handful of potential participants who still communicate with us by mail, phone or fax, but they will surely fade away. These few represent higher costs and mere time-consuming processing by the organizers. Therefore, future participants must be able to communicate by E-mail (indirectly if necessary).

Secondly, the programs themselves must be able to produce the game listing in a machine readable form. Since March 1994 there has been a standard format for doing this, referred to as PGN form (Portable Game Notation), developed by Steven J. Edwards and finalized in 1994. You can read all about it at the web site http://caissa.onenet.net/chess/ where knowledge about chess (including computer chess) is kept. Alternatively, one can obtain a copy by the anonymous ftp (file transfer protocol) method, or through Uniform Resource Locator (URL) ftp://chess.onenet.net/pub/chess/PG N/, and take the file "Standard" (it describes the PGN standard and comes with a companion TOC file). For many people this document is overkill, but it is still worth reading for the details it provides about annotation marks, and the use of Standard Algebraic Notation (SAN). However, all that is necessary is that programs (and/or programmers) can, at the end of the game or at any time control, produce machine readable output that conforms to the following samples:

[Event "ICCA, 14th WMCC"] [Site "Gunadarma University, Jakarta, Indonesia"] [Date "1996.10.08"] [Round "1"] [White "Patzer"] [Black "Heureka"] [Result "1-0"] 1. c4 e5 2. Nc3 Nf6 3. Nf3 Nc6 4. g3 d5 5. cxd5 Nxd5 6. Bg2 Nxc3 7. dxc3 Qxd1+ 8. Kxd1 Be6 9. Ng5 Rd8+ 10. Kc2 Bf5+ 11. Ne4 Bc5 12. e3 Bb6 13. b3 f6 14. h3 Bc5 15. g4 Bg6 16. b4 Be7 17. Bf3 O-O 18. Rh2 f5 19. gxf5 Bxf5 20. Bd2 Bh4 21. Be1 Nxb4+ 22. cxb4 Bg6 23. Bh1 Bxe4+ 24. Bxe4 Bg3 25. fxg3 c6 26. Rd1 Rxd1 27. Kxd1 Rd8+ 28. Rd2 Rxd2+ 29. Bxd2 1-0

Another example, taken from the nonsense game used in our call for annotation programs, might be:

[Event "Annotation Test"] [Site "The Great White North"] [Date "1996.11.04"] [Round "?"] [White "hot shot"] [Black "beginner"] [Result "*"]

1. e4 d5 2. e5 d4 3. Nf3 Nc6 4. Bb5 Bg4 5. O-O Qd7 6. c4 dxc3 7. Re1 0-0-0 8. h3 f5 9. exf6 cxb2 10. fxg7 bxa1=Q 11. gxh8=B

Note how promotions are handled at moves 10 and 11, and how en passant is dealt with implicitly at Black's move 6 and White's move 9.

In Jakarta some programs could not produce PGN output and this caused a problem more often than one might imagine. It was not that their output contained German, French or Spanish notation for pieces (an editor will quickly fix that), nor was it that they could not provide automatically the titles and headers (again post editing will supply the necessary items), but rather that they could either not produce a copy on a file, or that the output was embedded with debugging data, or that no listing of any kind could be made.

Exactly how these people debug and develop their programs is a mystery to me. Almost everybody relies on their program's ability to read in an existing game up to a pre-determined position for post-mortem analysis. So, how is it that some modern programs cannot even do that?

The time has now been reached when one can insist on some uniformity and require that all programs participating in ICCA events be able to read and write PGN files. At the site ftp://ics.onenet.net/pub/chess/Unix/, there is a file called SAN.tar.gz which contains a useful set of programs. This software, dated February 1994, is pretty solid. It is written in the C language. Many people have made successful conversions to DOS and Windows systems from the original Unix version. One example of how to equip a chess program with an acceptable interface is in the Crafty programs' source code (also in C). It can be found at site ftp://ftp.cis.uab.edu/pub/hyatt/ under the name crafty.tar.Z. Within that code itself the file epd.c (Extended Position Description written by Steven Edwards) and its attendant header files deal with the PGN side of things.


Based on a poll I made of the participants in Jakarta, and on my personal experience and that of the Tournament Director, chess programs should have the following minimal set of capabilities, if speedy correction of operator errors is to become a reality. Naturally all these programs, but especially the erring and the innocent involved in a dispute, must:

0. Implement the rules of chess correctly. Incredibly some programs still cannot recognize draw by repetition or apply the 50-move rule.

1. Be able to set the rate of play: N moves in HH:MM:SS (or equivalent). In practice, a mode like Blitz, Speed, 3030, Tournament simply does not do the job.

2. Be able to start from an arbitrary position, and continue playing from there. This could be done by either entering the position in some user-specified way, or better by reading in moves from a file until the desired position is reached.

3. At any time be able to write the moves played so far to a standard output device (even to the screen might suffice). A PGN file makes most sense.

4. Be able to show the current position at any time and display the current values of all input parameters, including the current value of the internal chess clock.

5. Be able to retract moves from the current state to reach an earlier position in the game. This can be done 1 move at a time or N moves at once, but one should be able to go back even to the start of the game.

6. Be able to interrupt the current search and return to command mode. This is especially important when the program is thinking on the opponent's time, and yet the current position is now wrong through operator error. This might also save some programs from infinite loops!

7. Provide a skilled operator. Programs being run by locals (and generally the ICCA prefers that programs be operated someone intimately familiar with the program's internal workings, like a member of the design team) must come with a complete online help facility. The online instructions should be in simple terms so that anyone with an adequate grasp of the language can operate the pro gram. When an operator does not have suitable instruction, total chaos can ensue if an error occurs.

In future ICCA events, applicants will be asked to affirm that their programs have the above capabilities (or can convince us that equivalent features are provided). Clearly this should not be a problem for PC-based software systems, but some flexibility may be needed on our part to accommodate dedicated hardware chess machines. If during an event some program is found to be deficient in these regards, then the Tournament Director has the freedom to impose some appropriate sanction. This could range from loss of a game or some major time penalty, to a simple warning, depending on how quickly the mess that follows an operator error or program failure is repaired, even though the specified tools are lacking. Nevertheless, in all cases, the onus is on the operator to produce a complete machine-readable PGN copy of the game shortly after its completion.


For the Triennial World Championship event all participants are required to bring source code of their program. This code must be made available to the Tournament Director (or designate) for scrutiny in case of dispute. The purpose here is to ensure that each program is unique and is owned by the representing programmer. For the Microcomputer events a less stringent standard has been applied, but amateurs must identify the authors of the program they submit. As the number of freely distributed programs grow, or if people start putting their own front end on a commercial product, then it may be necessary to scrutinize the source code of all PC-based programs too, to ascertain that significant changes have been made. In the past the integrity of our participants has rarely been questioned, but the ICCA must always be ready for the day when a serious dispute arises. Scrutinizing the credentials of the designated operator may therefore be part of the application process for future events.

One reason why there have been so few problems to date has been because a member of the design team typically serves as the operator. This meets one of our original objectives, to facilitate the exchange of ideas about chess programming. The use of operators with little knowledge of either chess or programming is therefore discouraged.


My thanks to Don Beal, Yngvi Bjornsson, Steven Edwards, Bob Hyatt and David Levy, who provided advice or points of detail.

See also original article appearing in ICCA J, December 1996.