Moderator: Andres Valverde
I think that if a programmer or a programming group has not written from scratch at least 90% of the functional code (code that's not common small routines or data arrays) in the engine, then an engine is a clone. Otherwise it is not a clone.YvesLejeail wrote:What is your opinion ?
Pradu wrote:I think that if a programmer or a programming group has not written from scratch at least 90% of the functional code (code that's not common small routines or data arrays) in the engine, then an engine is a clone. Otherwise it is not a clone.YvesLejeail wrote:What is your opinion ?
Bryan Hofmann wrote:Pradu wrote:I think that if a programmer or a programming group has not written from scratch at least 90% of the functional code (code that's not common small routines or data arrays) in the engine, then an engine is a clone. Otherwise it is not a clone.YvesLejeail wrote:What is your opinion ?
This would mean that anyone using EGTB in their code would be a clone.
Bryan
Uri Blass wrote:Bryan Hofmann wrote:Pradu wrote:I think that if a programmer or a programming group has not written from scratch at least 90% of the functional code (code that's not common small routines or data arrays) in the engine, then an engine is a clone. Otherwise it is not a clone.YvesLejeail wrote:What is your opinion ?
This would mean that anyone using EGTB in their code would be a clone.
Bryan
No
This means that anyone using EGTB in their code is not a cloner only in case of writing a lot of code in the engine first and engines that are not very big engines are clones in case of using tablebases.
Uri
YvesLejeail wrote:Thanks for these wise answers !
I don't use EGTB. But, the important points seem to programme it by yourself, as for the other algorithmes. For example, you know that Alpha_Beta algorithm exists, you have seen some pseudo-C algorithms on the web, but you have to practically programme it by yourself. There are plenty of tips, tricks, traps, that are related to the programmation of the algorithm. It is the same for the Quiescence, the SEE, ... If you study the sources of an other programme, and just "copy" the code for example in changing the variable names, you should not think it is your creation, at the end.
From a practical point of view, we could imagine to have different categories in the computer chess competitions like :
- programmed from scratch
- programmes started from sources with elo <1800 (TSCP for instance)
- programmes started from sources with elo <2200 (there may be some)
- etc...
Thus, the merit of the programmer could be measured to the progress he has made to the original engine. But all that is pure dream, since it is not possible to verify the declarations of authors.
The cloning problem in chess programming looks like drugs problem in sport. But in sport they have installed drug controls. We have not the equivalent in chess competitions; we could have that especially for the big competitions (controls of sources). It is an other irrealistic dream.
Yves
Bryan Hofmann wrote:YvesLejeail wrote:Thanks for these wise answers !
I don't use EGTB. But, the important points seem to programme it by yourself, as for the other algorithmes. For example, you know that Alpha_Beta algorithm exists, you have seen some pseudo-C algorithms on the web, but you have to practically programme it by yourself. There are plenty of tips, tricks, traps, that are related to the programmation of the algorithm. It is the same for the Quiescence, the SEE, ... If you study the sources of an other programme, and just "copy" the code for example in changing the variable names, you should not think it is your creation, at the end.
From a practical point of view, we could imagine to have different categories in the computer chess competitions like :
- programmed from scratch
- programmes started from sources with elo <1800 (TSCP for instance)
It is a big mistake to start with TSCP. It is a fine program to get a quick understanding of how a chess program works. But it will be a lot harder to turn into a powerhouse than if you literally started from scratch.
I know a lot of people who have started with a simple program and tried to write a killer chess program from it. You can eventually get there, but it is a tough road.
The global variables in TSCP make it particularly onerous for going to multiple threads.- programmes started from sources with elo <2200 (there may be some)
- etc...
Thus, the merit of the programmer could be measured to the progress he has made to the original engine. But all that is pure dream, since it is not possible to verify the declarations of authors.
The cloning problem in chess programming looks like drugs problem in sport. But in sport they have installed drug controls. We have not the equivalent in chess competitions; we could have that especially for the big competitions (controls of sources). It is an other irrealistic dream.
Yves
My reply about the EGTB was a bit of tounge and cheek in that the EGTB code is so large it would almost always be more then 10% of the chess engine code. As for trying to define what a clone is, I believe it is mission impossible as everyone has their own ideas and they all differ.
Bryan
YvesLejeail wrote:- starting from TSCP is maybe not a good idea, but I have seen some programmers who have done that, and have improved their programme implementing hash tables, null move (I think TSCP does not have it but not sure nevertheless), LMR,...) and they have improved the strength of TSCP. Again nothing wrong with that if it is publicly known and written;
bob wrote:I am far less worried about "legal" vs "illegal" clones than I am about clones in general. I could care less whether a clone is from a completely open-source program, a GPL'ed program, or from source stolen from a commercial programmer. All clones are bad, and in general are not (and should not be) allowed to compete in computer chess events of any kind.
Ilari Pihlajisto wrote:YvesLejeail wrote:- starting from TSCP is maybe not a good idea, but I have seen some programmers who have done that, and have improved their programme implementing hash tables, null move (I think TSCP does not have it but not sure nevertheless), LMR,...) and they have improved the strength of TSCP. Again nothing wrong with that if it is publicly known and written;
Actually it's not okay to use TSCP's source code without the author's explicit permission. TSCP uses a pretty restrictive license. Crafty's license is similar.
bob wrote:I am far less worried about "legal" vs "illegal" clones than I am about clones in general. I could care less whether a clone is from a completely open-source program, a GPL'ed program, or from source stolen from a commercial programmer. All clones are bad, and in general are not (and should not be) allowed to compete in computer chess events of any kind.
Uri Blass wrote:bob wrote:I am far less worried about "legal" vs "illegal" clones than I am about clones in general. I could care less whether a clone is from a completely open-source program, a GPL'ed program, or from source stolen from a commercial programmer. All clones are bad, and in general are not (and should not be) allowed to compete in computer chess events of any kind.
I disagree.
It is dependent on the rules of the competition.
If the rules do not allow clones then they should not be allowed to compete.
If the rules allow clones then they should be allowed to compete.
If you do not like to compete in a competition that allows clones then it is your right but I see no reason to support preventing other to compete in competitions that allow clones.
Practically there are many competitions that allow clones
ssdf list ccrl list cegt list give rating to different versions of the same program.
If you call them computer chess event then it is clear that there are computer chess events that allow clones and if you do not call them computer chess events then the question is how do you define computer chess events.
Uri
Dann Corbit wrote:bob wrote:I am far less worried about "legal" vs "illegal" clones than I am about clones in general. I could care less whether a clone is from a completely open-source program, a GPL'ed program, or from source stolen from a commercial programmer. All clones are bad, and in general are not (and should not be) allowed to compete in computer chess events of any kind.
I see nothing wrong {for instance} with running Toga in CCRL or CEGT contests.
For that matter, I cannot recall any problem that has ever arisen from a legitmate clone. Each and every problem has been from a case where the cloner has hidden what actually has happened.
Suppose (further) that Fruit could not be entered into some contest. Suppose (additionally) that Fabien gave his blessing for Toga to compete in that contest.
Would you object to it? If so, why?
Return to Programming and Technical Discussions
Users browsing this forum: No registered users and 11 guests