Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Copying Crafty... Issues?

Author: Vincent Diepeveen

Date: 16:43:57 02/20/99

Go up one level in this thread


On February 18, 1999 at 04:19:50, Bruce Moreland wrote:

>
>On February 17, 1999 at 15:20:37, Fernando Villegas wrote:
>
>>Of course by definition, but this only changes the place of the problem. Instead
>>of wondering what a program should be to be considered a program by itself, now
>>the question would be what a guy should be to be considered an author. If Bionic
>>is different -yhe old discussion- his fathers are "authors". If not, the are
>>not. So we arrive at the same point. So we need even more rules whcih will carry
>>new boundaries to be defined at nauseaum. Perhaps some kind of torumament for
>>second generation authors should be invented :-)
>
>I think there are some bad traps here.
>
>We have the following things that can be done to a freeware program:
>
>A1) Minor evaluation changes.
>A2) Major evaluation and extension changes (plays very different).
>A3) Gut the entire thing and leave nothing but the UI, essentially.
>
>We have a few things that secondary authors can do:
>
>B1) Sell it.
>B2) Enter it in an ICCA tournament without original author's permission.
>B3) Claim sole authorship.
>
>There has been some contention about whether the Bionic or Voyager guys did A1
>or A2.  I don't think it matters much.  In either case, B1, B2, and B3 are all
>out of the question, in my opinion.
>
>If someone does A1, the original author is still the person most responsible for
>the program, and deserves sole authorship, and the secondary author deserves a
>minor credit if that.
>
>If they do A2, there is the potential for some major effort to have been done,
>and even legitimate research and no need at all for recriminations.  The
>secondary author assumes the status of co-author.  But in my opinion options B2
>and B3 are still out of the question.  There is a lot more to a program than
>eval and search extensions.  There is a lot of infrastructure, *especially* in
>Crafty, devoted to moving pieces around the board, hash table stuff, parallel
>search, and setting up data structures that can be use to efficiently generate
>evaluation terms.  And not only that, there is the opening book compiler, and
>the two forms of learning that Bob uses.
>
>Note that I am not necessarily ruling out A3 as a fine thing to do while still
>doing some of the B's, but you'd have to wonder what is left over in the program
>at that point, and I'd be very concerned that some of the strength-producing
>elements of Crafty might be left over.  You may as well just write your own
>thing from scratch and hook it up to Winboard.
>
>bruce

I agree in a big part with what bruce writes above.
There are however more reasons to call someone a cheater.

Let's take a different approach for that, and figure out what
might be a reason for someone to not start from scratch
with a chessprogram and start with craftyparts; what are the parts
one can start with:

a) move generation
b) parallellism
c) evaluation
d) main search
e) quiescencesearch
f) excellent way to read in PGN
g) endgame table bases
h) learning
i) interface.

Both gnuchess and crafty hardly have something we can call 'interface',
so we can forget about it.

Gnuchess we can forget anyway. Cheaters cheat because they want to have
quickly a strong program without doing much. So they all start with
crafty and not with gnuchess. Gnuchess misses simply too much to be
interesting for a cheater, although the ideas in gnuchess are generally
quite good to research in the future for a lot of commmercial programmers
(but that's an opinion).

If you use crafty code to have a), then i will not complain.

However, if you use b) you are as guilty as you can be, because b)
means you need c,d,e,g too.

e) is very unique in crafty. Whatever you change in c), it doesn't matter.
The q-search and static exchange evaluation is giving crafty such a
drastic impact, that a few changes to c) is not rewarding.

e) has to do with d). If you can change *anything* from d-g in a major
way, then you must know a lot from parallellism, and therefore modify b too.

If you can do that, then there is no ground to start with crafty anyway,
as you must already have written your own program.

So in my opinion is something that looks like crafty already not unique.
Just copying move generation i personally can live with. However,
this means that every other thing is initially 'bad'. A program starts
being bad simply. It can't be that someone produces something and claims it
to play better than crafty at once, by starting with crafty source
and changing some major things within a short period of time. Bob is fulltime
busy with crafty. No way that some easy changes by someone, who must first
understand how craftycode works, can improve that easily, without that
person having his own program already, or without a lot of help
from the main author.

It takes years to build a chessprogram. I think b) is a very fundamental
thing from crafty. The whole datastructure has been rewritten to fit
parallellism in. The whole program has been modified in order to allow
parallellism. If any program looking like crafty has parallellism in it,
which has been 'cut and pasted' out of crafty, then i *already* have enough
ground to call someone a cheater, because it's near to impossible that
he could have changed some things drastically in crafty.

Greetings,
Vincent






This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.