Re-activation Programmer Code of Honor

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Madeleine Birchfield
Posts: 512
Joined: Tue Sep 29, 2020 4:29 pm
Location: Dublin, Ireland
Full name: Madeleine Birchfield

Re: Re-activation Programmer Code of Honor

Post by Madeleine Birchfield »

Tony P. wrote: Mon Sep 28, 2020 7:54 pm Therefore, the new lc0 repo falls into the category 'derived from SF but original at code level in the meantime'. Leela is an example of an honest derivative that has been playing a fully original style in all its releases. The fact that none other than one of the TCEC superfinalists started as the other's fork is another reason why I don't consider the 'derivative' status shameful a priori.
And Stockfish started as a derivative of Glaurung.
Madeleine Birchfield
Posts: 512
Joined: Tue Sep 29, 2020 4:29 pm
Location: Dublin, Ireland
Full name: Madeleine Birchfield

Re: Re-activation Programmer Code of Honor

Post by Madeleine Birchfield »

Rebel wrote: Tue Sep 29, 2020 7:58 pm The paradox we are in is that the community more or less has decided that coping code is the death penalty and that copying ideas is free while the truth is that the real elo is in the ideas, the novelty. Living in this paradox we try to find reasonable rules. The perfect does not exist.
Part of the issue is that TCEC has so much prestige in the computer chess community, and TCEC is the one tournament with engine uniqueness rules. The solution to this issue is to make TCEC invite only, instead of inventing arbitrary uniqueness rules.

The other part of the issue is that the computer chess community seems to be stuck in the 1990s where most engines are closed source, while most engines today are open source. Engine uniqueness questions is really only a problem with closed source, as most open source engines share a GPL license or similar and give credit where credit is due. Closed source engines should be held at a much higher standard of uniqueness than open source engines in my opinion, because of the terms of the GPL license.
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Re-activation Programmer Code of Honor

Post by mvanthoor »

Madeleine Birchfield wrote: Wed Sep 30, 2020 4:03 pm Part of the issue is that TCEC has so much prestige in the computer chess community, and TCEC is the one tournament with engine uniqueness rules. The solution to this issue is to make TCEC invite only, instead of inventing arbitrary uniqueness rules.

The other part of the issue is that the computer chess community seems to be stuck in the 1990s where most engines are closed source, while most engines today are open source. Engine uniqueness questions is really only a problem with closed source, as most open source engines share a GPL license or similar and give credit where credit is due. Closed source engines should be held at a much higher standard of uniqueness than open source engines in my opinion, because of the terms of the GPL license.
The problem is that there are no 'real' reasons anymore to write your own alpha/beta-engine. It has been done before, countless times. There's no money in chess engines anymore, except for very few people. The only reason to buy a chess program nowadays (such as Fritz 17) is because of the GUI, not because of the engine.

The only reason left is that you write one because you want to have your own engine. If that is the case, you should write it yourself, from scratch.

People who do this, take pleasure in improving their creation. They do it because they like to write code, and a chess engine is an ongoing project that can last for years, and be measurably improved. Often, they want to compete / play matches against other engines that are around the same level of development so they can see and measure their own improvement; they discuss things with the other authors, and then improve their engines by implementing new functions and concepts.

I'm not saying everyone has to invent the wheel for himself as if it's 1981 again. I don't. People who want to write their OWN engine, can still study concepts, but then write their OWN (*) code; I do so. I read about king saftey, about piece mobility, about search techniques... and then I'm going to try to build those things into my engine WITHOUT looking at code in other engines.

If you get it to work and the engine performs better now, against the same list of opponents, then that brings satisfaction; at least to me. The engine has improved, and it did so by newly written code.

If you are testing against / competing against an engine at the same level, and then suddenly your opponent tests 800 Elo stronger the next week, it's like competing in a sporting event where one or more of your opponents took performance enhancing drugs. That's not fun anymore.

(*) The only code I'm probably not going to write myself is endgame TB access. That's "just" database access, and I have no interest in writing code like that. I do that for work half of the time already. I'll happily wrap either Fanthom or Phyrric in my own class, and thank the developers of said code profusely so I don't have to write code I have completely no interest in. The only reason to actually implement it is because other engines have it as well; and in the hopes that I can someday start using my own engine to analyze games. (Chessbase has TB-access in the GUI as well, but it doesn't seem to work with all engines. I don't know why. Probably, engines that implement their own are exempted or something.)
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
smatovic
Posts: 2645
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

Re: Re-activation Programmer Code of Honor

Post by smatovic »

Hmm, so I realize that clause 2. is already a matter of the signers interpretation, so adding another clause like

"I obey to given civil and criminal law and won't steal private code or use stolen code for any analysis."

is pretty pointless, right? Ed, Andrew?

Code of Honor? Maybe start with some more fundamental basics?

Are binaries taboo? Is private code taboo?

Unless you respect that your code of whatever is just a piece of paper to ensure your clean sheet while you are free to do whatever you want.

--
Srdja

PS: I just got into some Houdini posts from the EO subforum, maybe I am bit upset?
User avatar
mclane
Posts: 18749
Joined: Thu Mar 09, 2006 6:40 pm
Location: US of Europe, germany
Full name: Thorsten Czub

Re: Re-activation Programmer Code of Honor

Post by mclane »

One reason I almost do no computerchess on PCs anymore is that computer chess engines are almost all similar.

They have a different name, the programmer is from a different country, but the engines do play very similar.

They come massively deep and reach 2500-3000 ELO but they play boring machine chess and have no artificial intelligence approach.

The only engine that makes fun to watch is LC0 games.

So I do have arround 6-10 pcs, but none of them runs chess anymore,
What seems like a fairy tale today may be reality tomorrow.
Here we have a fairy tale of the day after tomorrow....
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Re-activation Programmer Code of Honor

Post by Rebel »

smatovic wrote: Thu Oct 01, 2020 1:32 pm Hmm, so I realize that clause 2. is already a matter of the signers interpretation, so adding another clause like

"I obey to given civil and criminal law and won't steal private code or use stolen code for any analysis."

is pretty pointless, right? Ed, Andrew?

Code of Honor? Maybe start with some more fundamental basics?

Are binaries taboo? Is private code taboo?

Unless you respect that your code of whatever is just a piece of paper to ensure your clean sheet while you are free to do whatever you want.

--
Srdja

PS: I just got into some Houdini posts from the EO subforum, maybe I am bit upset?
Upset of what? That people paid for Stockfish 7?
90% of coding is debugging, the other 10% is writing bugs.
smatovic
Posts: 2645
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

Re: Re-activation Programmer Code of Honor

Post by smatovic »

Rebel wrote: Thu Oct 01, 2020 4:25 pm
smatovic wrote: Thu Oct 01, 2020 1:32 pm Hmm, so I realize that clause 2. is already a matter of the signers interpretation, so adding another clause like

"I obey to given civil and criminal law and won't steal private code or use stolen code for any analysis."

is pretty pointless, right? Ed, Andrew?

Code of Honor? Maybe start with some more fundamental basics?

Are binaries taboo? Is private code taboo?

Unless you respect that your code of whatever is just a piece of paper to ensure your clean sheet while you are free to do whatever you want.

--
Srdja

PS: I just got into some Houdini posts from the EO subforum, maybe I am bit upset?
Upset of what? That people paid for Stockfish 7?
Hehe, the methods of the Inquisition in the EO Houdini thread...

--
Srdja
smatovic
Posts: 2645
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

Re: Re-activation Programmer Code of Honor

Post by smatovic »

smatovic wrote: Thu Oct 01, 2020 6:24 pm
Rebel wrote: Thu Oct 01, 2020 4:25 pm
smatovic wrote: Thu Oct 01, 2020 1:32 pm Hmm, so I realize that clause 2. is already a matter of the signers interpretation, so adding another clause like

"I obey to given civil and criminal law and won't steal private code or use stolen code for any analysis."

is pretty pointless, right? Ed, Andrew?

Code of Honor? Maybe start with some more fundamental basics?

Are binaries taboo? Is private code taboo?

Unless you respect that your code of whatever is just a piece of paper to ensure your clean sheet while you are free to do whatever you want.

--
Srdja

PS: I just got into some Houdini posts from the EO subforum, maybe I am bit upset?
Upset of what? That people paid for Stockfish 7?
Hehe, the methods of the Inquisition in the EO Houdini thread...

--
Srdja
Just for the record, not interested to engage any further on this topic, those interested can judge by themselves while looking into the EO Houdini thread....

--
Srdja
JohnWoe
Posts: 491
Joined: Sat Mar 02, 2013 11:31 pm

Re: Re-activation Programmer Code of Honor

Post by JohnWoe »

I submitted Sapeli to the list too.

When I developed the move generator I generated my own magic numbers. I could have grabbed them from SF.

I use all the old stuff: Magic bitboards, AB-search, QSearch, IID, LMR, Evaluation ... All found in 1,000,000 other engines.
But there are still lots of innovations through evolution of the program.
Tony P.
Posts: 216
Joined: Sun Jan 22, 2017 8:30 pm
Location: Russia

Re: Re-activation Programmer Code of Honor

Post by Tony P. »

mvanthoor wrote: Wed Sep 30, 2020 4:19 pm The only code I'm probably not going to write myself is endgame TB access. That's "just" database access, and I have no interest in writing code like that. I do that for work half of the time already. I'll happily wrap either Fanthom or Phyrric in my own class, and thank the developers of said code profusely so I don't have to write code I have completely no interest in.
I think Syzygybases fall under the category 'widely recognized, standard, and present in the chess programming Wiki.' Attribution is obv required for Fathom/Pyrrhic as per the MIT license, but they hardly taint originality, esp because the TBs are shared by engines in competitions like TCEC and rating lists, and if every engine had its own TB, they'd clutter the disks and double the cache use.