The landscape of Computer Chess has changed drastically in the last 10 years due to stronger programs like Fruit by Fabian Letouzey, releasing their source code to the masses under the GPL License.
Normally one would think this act of generosity would be welcomed and greatly appreciated, but instead the kindness of one has enabled many with less gratuitous agendas to not only profit, but ruin the exchange of information within the realm that is computer chess programming.
Three years ago, a “new” program called Ippolit arrived via dubious means. The release of that code has changed not only the landscape of Computer Chess, but also the hierarchy that many of the rating systems are based on. Cloning of that code has become so frequent that it is not only accepted by the users downloading and using these programs, it is embraced as a new evolution within Computer Chess.
The Free Online Dictionary defines cloning as:
Clone (kl n)
n.
1. A cell, group of cells, or organism that is descended from and genetically identical to a single common ancestor, such as a bacterial colony whose members arose from a single original cell.
2. An organism descended asexually from a single ancestor, such as a plant produced by layering or a polyp produced by budding.
3. A DNA sequence, such as a gene, that is transferred from one organism to another and replicated by genetic engineering techniques.
4. One that copies or closely resembles another, as in appearance or function: “filled with business-school clones in gray and blue suits” (Michael M. Thomas).
v. cloned, clon•ing, clones
v.tr.
1. To make multiple identical copies of (a DNA sequence).
2. To create or propagate (an organism) from a clone cell: clone a sheep.
3. To reproduce or propagate asexually: clone a plant variety.
4. To produce a copy of; imitate closely: “The look has been cloned into cliché” (Cathleen McGuigan).
v.intr.
To grow as a clone.
For our purposes, we are interested in note #4 of each section: “One that copies or closely resembles another, as in appearance or function” and “To produce a copy or; imitate closely”
Every programmer has a distinct style of writing code; no two individuals will write identical code. If you were to ask a room of 50 programmers to write a program to emulate a calculator, you would get 50 different interpretations of that code base.
In Computer Chess, this scenario is amplified as each programmer will code how hash tables, King Safety, pawn mobility, or simply piece tables are represented in their programs. Find two exact pieces of code in two different programs not only suggests that one simply copied the other, it implies it.
Cloning of computer chess programs is hardly new.
Soon after the release of the Fruit program code, International Master Vasik Rajlich’s program Rybka, went from being rated 1800 elo and finishing second last in CCT6 (Computer Chess Tournament 6), to winning CCT8 (Computer Chess Championship 8) and improving its elo 1200 points in a span of 16 months. While there has been some proof to suggest that early versions of Rybka were indeed clones of Fruit, nothing has been definitively proven.
It is also believed that the source for Ippolit is actually reverse engineered code from Rybka 3. This is supported by claims from Vasik Rajlich that the Ippolit code is indeed his (yet offers no definitive proof), and the rating of Rybka in correlation to Ippolit is nearly identical.
Since then we have several program that have emerged under names like Robolitto, Fire, Houdini, Ivanhoe, and countless others based on the Ippolit source that correlate to the style of play and rating of Rybka.
Cloning also cuts to the very bone of what I think Computer Chess is founded on.
The exchange of ideas from programmers through open dialogue. 10 years ago, the flow of information could be seen at the Computer Chess Club on a daily basis from the likes of Robert Hyatt (Author of Crafty), Bruce Moreland (Author of Ferret), Ed Schroder (Author of Rebel), and countless other talented programmers.
New authors could ask questions and get almost instant feedback on how any one of the previously mentioned programmers did this or that within their programs. New algorithms and ideas were exchanged freely, and discussed openly.
Today, this is rarely done.
Since the new age of clones from the Ippolit source code that was released to the public, many try to enter legitimate Computer Chess Events under the premise their engines are new.
Most recently, Johandry Gonzalez Espin from Cuba tried to enter a program named Squaknll in to the ICGA World Computer Chess Championships in Japan. After due diligence, it was found to be a clone and its participation was removed.
Why do people with intent on ruining Computer Chess, try to enter the top level tournaments is beyond comprehension? Do they not realize they the clone detection methods use do in fact work, and other participants can challenge your authenticity? It is almost like cloners are begging to be caught.
Tournament Director’s have established a terrific set of ground rules for participant accusation of clones in tournaments, and our methods of proving that an engine is a clone of another is getting better by the second.
In the future, detection methods need to steadily improve, so we can defend ourselves from these rather unscrupulous individuals. Fellow participants need to challenge code bases more often, so we can get the results we require to remove these people from the current event and future ones.
Will cloning ever stop? Probably not, but together we can stop them from entering anything above a basement tournament.
Peter Skinner
Eric Hallsworth has been producing Selective Search – The Computer Chess Magazine for over 20 yrs. If you like this article, please consider subscribing to the magazine as he does an absolutely fantastic job.
You must be logged in to post a comment.