I just received an email from IM David Levy, President of the International Computer Games Association (ICGA), about an article he just wrote about chess computer cloning problem. Here is what he wrote extensively:
Cloning Chess Engines
By David Levy
Introduction
The cloning of chess engines appears to have been steadily on the rise in recent years and is a practice strongly disapproved of by the International Computer Games Association (ICGA). In the world of computer chess cloning not only damages the commercial opportunities for the original programmers, it also steals the kudos of tournament successes. Genuinely achieving a great result in a top level chess tournament requires years of painstaking effort by a highly skilled and highly motivated programmer or team of programmers, yet the creation of a clone steals the glory and public acclaim from its rightful owner. The ICGA would like to see this disgusting practice stopped and those who perpetrate the cloning publicly exposed for what they are. This article is the ICGA’s opening shot in that struggle.
We start by considering two aspects of cloning, and presenting links to various Internet postings (by others) on specific allegations, as well as some additional quotations.
The Langer Case
First we consider cases where an entire chess engine has been ripped off, without any attempt being made to change its code. The first such case to come to the attention of the ICGA (which was then called the ICCA), was at the 1989 World Microcomputer Chess Championship in Portoroz, where play took place in the very same hall where, 31 years earlier, the 15-year-old Bobby Fischer qualified for the first time for the Candidates stage of the World Chess Championship. I well remember how, during the first round of the 1989 event, I was impressed with the play of the program Quickstep, entered by a German programmer, Herr Langer. I became less impressed shortly afterwards when Richard Lang, then the programmer of the Mephisto range of chess computers, revealed that the user interface of Quickstep was identical to that of his own program. The matter was investigated on the spot by interrogating Herr Langer who at first denied that he had copied the Mephisto Almeria code. But when Richard Lang demonstrated a bug in his own program, and it was found that exactly the same bug existed in Quickstep, Mr. Langer confessed and was immediately disqualified. Mr Langer’s embarrassment was compounded by the fact that he and his wife were on their honeymoon in Portoroz, and his wife witnessed his unmasking and disqualification.
The Espin Case
Much more recently the ICGA experienced a 21st century attempt at something similar, when the FIDE Master Johnadry Gonzalez Espin of Habana, Cuba, applied to enter the 2010 World Computer Chess Championship in Kanazawa, Japan. After making great efforts, successfully, to help Espin obtain a visa to participate in Japan, the ICGA was informed that “his” program SquarknII is a clone of the program Robbolito 0.85g3 with only 3 values changed in the entire code. Espin was duly barred from entering the tournament and will not be permitted to take part in ICGA events in the future. For more information about the Espin case visit this ICGA news item or this post at Susan Polgar’s blog.
The Rybka-Fruit Case
In cases such as the antics of Langer and Espin very little proof is needed to establish the cloning. But in some cases there is a more sophisticated cloning effort, when the clone programmer(s) attempt to hide their actions by making changes to the code of “their” program, presumably hoping to obscure the original source of the algorithms, ideas and the original code itself. The most serious allegations we have come across of this type relate to Rybka, currently the world’s top rated chess program and the winner of the World Computer Chess Championship in 2007, 2008, 2009, 2010. Rybka’s programmer is Vasik Rajlich, an International Master. For more than three years we have been hearing rumours in the computer chess world that Rybka’s engine was derived from the program Fruit, programmed by Fabien Letouzey, which placed second in the 13th World Computer Chess Championship in Reykjavik in 2005. Soon after his success in Reykjavik Fabien Letouzey made his program open source, under a Gnu Public License (GPL), so its copyright is now controlled by the Free Software Foundation.
In order to consider how the published Fruit source code might have influenced the development of Rybka, it is perhaps useful to examine some of the history of both programs. First let us go back a few years, to a time before the Fruit source code was made public. The Hiarcs forum contains the results of the CCCT6 tournament, played on January 31st and February 1st 2004, in which Rybka finished in 53rd place out of 54 contestants. On the Fruit Web site we find the following details of the open source versions of Fruit.
“It made its first appearance to the public in March 2004. Fruit was then just a basic program with a very simple evaluation and basic search. However since then it made skirmish progress adding about 100 Elo to each new release (1.5, 2.0, 2.1 and Fruit 2.2). The latest version from Fabien is “Fruit Beta 05/11/07″ compiled on November, the 3rd 2005. Since then no new versions where released.
Until Version 2.1, Fruit was open source. But with Fruit becoming the strongest engine, the author decided to close the source code to avoid clones which might participate in official tournaments.”
And furthermore, Fruit 2.1 was released with source code on June 17th 2005 under the GNU GPL license.Let us now consider the point in time when it became clear that Rybka had become enormously strong. From Wikipedia we learn that:
“Vasik Rajlich started working on his chess program at the beginning of 2003. The first Rybka beta was released on December 2, 2005 . . . In December 2005, Rybka participated in the 15th International Paderborn Computer Chess Championship. Rybka won the tournament with a score of 5½ points out of 7, ahead of other engines such as Gandalf, Zappa, Spike, Shredder and Fruit.”
So Rybka’s first outstanding tournament success would seem to have been in December 2005, six months after the date of the release of the open source version of Fruit 2.1. One can understand from this coincidence of timing how many computer chess experts might have been led to think that Rybka’s development owed a considerable dept to the Fruit source code.
But as I have mentioned, at first the Rybka-Fruit case was mere rumour. More recently, however, these rumours have become firm allegations, made by expert chess programmers and supported by evidence which appears on the surface to be rather compelling, both in its nature and in its volume. At this point in time I do not intend to make any definitive statement of my own on these allegations, but will allow the reader to form their own opinion after reading the following.
First, here is a posting by Zach Wegner, who currently develops (with the full permission of Anthony Cozzie, the original Zappa programmer) an upgraded version of Zappa, the World Computer Chess Champion in 2005. Wegner participated in the 2010 World Computer Chess Championship with their program which is called Rondo.
Evaluation
Rybka’s evaluation has been the subject of much speculation ever since its appearance. Various theories have been put forth about the inner workings of the evaluation, but with the publication of Strelka, it was shown just how wrong everyone was. It is perhaps ironic that Rybka’s evaluation is its most similar part to Fruit; it contains, in my opinion, the most damning evidence of all.
General Differences
Simply put, Rybka’s evaluation is virtually identical to Fruit’s. There are a few important changes though, that should be kept in mind when viewing this analysis.
Full article here on Chessvibes.
Someone should sue.
I think chess players are bat-shit crazy about lawsuits.
This isn’t very surprising as it applies to computer programs across all disciplines, not just chess programs. For example, all popular modern operating systems today trace back to the ideas from the original Multics operating system. If the chess program, Fruit, was open source (especially if it was open source in accordance to the Free Software Foundation), then the original programmer was fine to other programmers taking the code and refining it to produce improved versions for the purpose of bettering future chess computing. That is the entire point of his decision to make the code open source.
If Rybka did indeed derive its core algorithms from Fruit, then the author should have been given credit. Nevertheless, in my opinion, the further development of Rybka and similar strong chess programs is more important than nitpicking the details of ownership, especially to the eyes of the average chess fan.
After all, the algorithms “stolen” were public domain, and from the article, it is obvious the author of Rybka added additional functionality. Whether you prefer to call this additional functionality “changing it to hide the similarities to Fruit” or “changing it to improve upon the original chess program” is just a play of words – Rybka has to have improved at least a little or else it won’t be so successful.
The bottom line is: Rybka is a good chess playing program. I never had a copy of it, so I don’t know if it is free or not. If it isn’t, then I can see the author’s argument of why this may be perceived as “unfair”. However, we don’t see ourselves forming an angry mob outside Microsoft headquarters asking them to pay their respects to the original authors of Multics. No, from a pure academic perspective, everything man has and will develop is done standing on the shoulders of previous successful ideas. If, in a computer super-tournament (and I admit I don’t follow these closely), Rybka is performing equally well with Fruit, then yes, we are justified to complain that Rybka costs money. Yet, reasoning states that this could not could be the case or else no one would have noticed Rybka in the first place.
As chess players, we should drop the politics, complaining, lawsuits and enjoy the fact that we have such strong computer programs. The only argument I can see the author making (as he isn’t the original author of Fruit) is that such behavior hampers future development/sharing of ideas for developing strong chess programs.
If that is the case, I think the author’s article accomplished more of that than Rybka ever did. For those defensive about their ideas, there’s always closed source. Rybka, I believe, is closed source and is letting the free market determine its success. Fruit, and any other top chess program can do likewise.