Naraku: clone or not???
- noctiferus
- Posts: 122
- Joined: Thu Jun 10, 2010 7:57 am
- Location: Ivrea (To), Italy
Naraku: clone or not???
What do you think about Chris Conkie's claim that Naraku is a clone? I couldn't find any comment here (my fault?), and would like to know our experts' opinion.
http://74.220.23.57/forum/viewtopic.php ... =&start=20
Note that Naraku won Martin's F division...
http://74.220.23.57/forum/viewtopic.php ... =&start=20
Note that Naraku won Martin's F division...
- Matthias Gemuh
- Posts: 295
- Joined: Wed Jun 09, 2010 2:48 pm
- Contact:
Re: Naraku: clone or not???
It is a clone. The Naraku guy has no clue about chess programming.noctiferus wrote:What do you think about Chris Conkie's claim that Naraku is a clone? I couldn't find any comment here (my fault?), and would like to know our experts' opinion.
http://74.220.23.57/forum/viewtopic.php ... =&start=20
Note that Naraku won Martin's F division...
Matthias.
Aided by engines, GMs can be very strong.
http://www.hylogic.de
http://www.hylogic.de
-
- Posts: 386
- Joined: Thu Jun 10, 2010 5:27 am
Re: Naraku: clone or not???
Matthias,Matthias Gemuh wrote: It is a clone. The Naraku guy has no clue about chess programming.
Matthias.
These are rather bold statements. Before I take action I would like to see some more concrete proof.
With that said, I value you as one of the experts on matters like these.
Best,
Martin
TCEC - Thoresen Chess Engines Competition
http://tcec.chessdom.com
http://tcec.chessdom.com
- Matthias Gemuh
- Posts: 295
- Joined: Wed Jun 09, 2010 2:48 pm
- Contact:
Re: Naraku: clone or not???
When he read Bob's post that parallelization is normally not do-able in a few weeks, some text disappeared from his website: "In the next weeks i will add multi core support.".Martin Thoresen wrote:Matthias,Matthias Gemuh wrote: It is a clone. The Naraku guy has no clue about chess programming.
Matthias.
These are rather bold statements. Before I take action I would like to see some more concrete proof.
With that said, I value you as one of the experts on matters like these.
Best,
Martin
Why have the old Narakus linked with Fruit now disappeared from his website ?
He is now admitting that the Ippo family has shaped his search. I don't believe that he said so months ago in Italian. Why only in Italian ? Analyzing his binaries would be a waste of precious time.
There are more clues of the cloning, in several fora.
Matthias.
Aided by engines, GMs can be very strong.
http://www.hylogic.de
http://www.hylogic.de
- noctiferus
- Posts: 122
- Joined: Thu Jun 10, 2010 7:57 am
- Location: Ivrea (To), Italy
Re: Naraku: clone or not???
Matthias, with the respect you deserve for what you do for chess, I would give you here some informations I read in Naraku's forum
http://www.miroku79.info/blog/?page_id=88#comment-220
( I'm doing it, because as far as i see I'm the only italian speaking contributor, here, and some of the posts in there are in italian).
First of all I'm not trying to defend, neither to accuse, the author: IMHO, if there is a fault by him in taking parts of, he is not trying to hide it.
He plainly and clearly states, in a post:
" Io per imparare a sviluppare il motore di scacchi mi sono avvalso essenzialmente dello studio dei codici sorgenti di altri motori open source (in particolare la serie ippolit/ivanhoe, crafty, varie versioni di fruit, gull e in
piccola parte stockfish), di alcuni articoli universitari (lo scorso anno ho lavorato all’università la sapienza e ho avuto così la possibilità di accedere a parecchi articoli universitari), e di alcuni siti che trattano, seppure non in modo molto dettagliato, tutte le fasi della creazione di un motore scacchistico. All’inizio sembra molto complicato, ma analizzando i codici si notano parecchie analogie. Per esempio: gull usa una bitboard che è quasi
identica a quella della serie ippolit/ivanhoe, con alcune costanti proprio identiche (anche quella che uso per naraku è molto simile). Houdini ce l’ha proprio identica, fruit, toga e ora si è scoperto anche rybka, hanno praticamente il 90% delle funzioni di valutazioni identiche. Una volta “scomposto” un motore nelle sue parti principali (di solito acquisizione dei dati dall’interfaccia, valutazione dei dati, avvio della ricerca, , valutazione, controllo del tempo rimanente e visualizzazione della mossa migliore), risulta più semplice costruirsi un proprio motore. "
Google translation:
"I am learning to develop chess engine, I used essentially the study of the source code of other open source engines (in particular the series Ippolit / Ivanhoe, crafty, various versions of fruit, and gull
stockfish small part), some articles of university (last year I worked at La Sapienza University and I had the opportunity to have access to several academic articles), and some sites that deal, though not in great detail, all stages of creating a chess engine. At first it seems very complicated, but analyzing the code you see many similarities. For example, gull use a bitboard which is almost identical to that of the series Ippolit / Ivanhoe, with its few constants are identical (even the one I use for Naraku is very similar). Houdini's got just the same, fruit, toga and has now also discovered rybka, have almost 90% of the evaluation function the same. Once "broken down" an engine in its main parts (usually the data acquisition interface, data evaluation, launch the research, evaluation, control and display the remaining time of the best move), it is easier to build his own engine ."
This as a contribution. dunno if it is in his favour or not, no matter, as I said.
http://www.miroku79.info/blog/?page_id=88#comment-220
( I'm doing it, because as far as i see I'm the only italian speaking contributor, here, and some of the posts in there are in italian).
First of all I'm not trying to defend, neither to accuse, the author: IMHO, if there is a fault by him in taking parts of, he is not trying to hide it.
He plainly and clearly states, in a post:
" Io per imparare a sviluppare il motore di scacchi mi sono avvalso essenzialmente dello studio dei codici sorgenti di altri motori open source (in particolare la serie ippolit/ivanhoe, crafty, varie versioni di fruit, gull e in
piccola parte stockfish), di alcuni articoli universitari (lo scorso anno ho lavorato all’università la sapienza e ho avuto così la possibilità di accedere a parecchi articoli universitari), e di alcuni siti che trattano, seppure non in modo molto dettagliato, tutte le fasi della creazione di un motore scacchistico. All’inizio sembra molto complicato, ma analizzando i codici si notano parecchie analogie. Per esempio: gull usa una bitboard che è quasi
identica a quella della serie ippolit/ivanhoe, con alcune costanti proprio identiche (anche quella che uso per naraku è molto simile). Houdini ce l’ha proprio identica, fruit, toga e ora si è scoperto anche rybka, hanno praticamente il 90% delle funzioni di valutazioni identiche. Una volta “scomposto” un motore nelle sue parti principali (di solito acquisizione dei dati dall’interfaccia, valutazione dei dati, avvio della ricerca, , valutazione, controllo del tempo rimanente e visualizzazione della mossa migliore), risulta più semplice costruirsi un proprio motore. "
Google translation:
"I am learning to develop chess engine, I used essentially the study of the source code of other open source engines (in particular the series Ippolit / Ivanhoe, crafty, various versions of fruit, and gull
stockfish small part), some articles of university (last year I worked at La Sapienza University and I had the opportunity to have access to several academic articles), and some sites that deal, though not in great detail, all stages of creating a chess engine. At first it seems very complicated, but analyzing the code you see many similarities. For example, gull use a bitboard which is almost identical to that of the series Ippolit / Ivanhoe, with its few constants are identical (even the one I use for Naraku is very similar). Houdini's got just the same, fruit, toga and has now also discovered rybka, have almost 90% of the evaluation function the same. Once "broken down" an engine in its main parts (usually the data acquisition interface, data evaluation, launch the research, evaluation, control and display the remaining time of the best move), it is easier to build his own engine ."
This as a contribution. dunno if it is in his favour or not, no matter, as I said.
- Matthias Gemuh
- Posts: 295
- Joined: Wed Jun 09, 2010 2:48 pm
- Contact:
Re: Naraku: clone or not???
Hi noctiferus,noctiferus wrote:Matthias, with the respect you deserve for what you do for chess, I would give you here some informations I read in Naraku's forum
http://www.miroku79.info/blog/?page_id=88#comment-220
( I'm doing it, because as far as i see I'm the only italian speaking contributor, here, and some of the posts in there are in italian).
First of all I'm not trying to defend, neither to accuse, the author: IMHO, if there is a fault by him in taking parts of, he is not trying to hide it.
He plainly and clearly states, in a post:
" Io per imparare a sviluppare il motore di scacchi mi sono avvalso essenzialmente dello studio dei codici sorgenti di altri motori open source (in particolare la serie ippolit/ivanhoe, crafty, varie versioni di fruit, gull e in
piccola parte stockfish), di alcuni articoli universitari (lo scorso anno ho lavorato all’università la sapienza e ho avuto così la possibilità di accedere a parecchi articoli universitari), e di alcuni siti che trattano, seppure non in modo molto dettagliato, tutte le fasi della creazione di un motore scacchistico. All’inizio sembra molto complicato, ma analizzando i codici si notano parecchie analogie. Per esempio: gull usa una bitboard che è quasi
identica a quella della serie ippolit/ivanhoe, con alcune costanti proprio identiche (anche quella che uso per naraku è molto simile). Houdini ce l’ha proprio identica, fruit, toga e ora si è scoperto anche rybka, hanno praticamente il 90% delle funzioni di valutazioni identiche. Una volta “scomposto” un motore nelle sue parti principali (di solito acquisizione dei dati dall’interfaccia, valutazione dei dati, avvio della ricerca, , valutazione, controllo del tempo rimanente e visualizzazione della mossa migliore), risulta più semplice costruirsi un proprio motore. "
Google translation:
"I am learning to develop chess engine, I used essentially the study of the source code of other open source engines (in particular the series Ippolit / Ivanhoe, crafty, various versions of fruit, and gull
stockfish small part), some articles of university (last year I worked at La Sapienza University and I had the opportunity to have access to several academic articles), and some sites that deal, though not in great detail, all stages of creating a chess engine. At first it seems very complicated, but analyzing the code you see many similarities. For example, gull use a bitboard which is almost identical to that of the series Ippolit / Ivanhoe, with its few constants are identical (even the one I use for Naraku is very similar). Houdini's got just the same, fruit, toga and has now also discovered rybka, have almost 90% of the evaluation function the same. Once "broken down" an engine in its main parts (usually the data acquisition interface, data evaluation, launch the research, evaluation, control and display the remaining time of the best move), it is easier to build his own engine ."
This as a contribution. dunno if it is in his favour or not, no matter, as I said.
the question is whether he said this before the accusations.
If he is saying this after the accusations, it is merely to rationalize away cloning.
Clearly most (if not all) people who have been testing Naraku since first version, did not know about its Fruit/Ippo connections.
Matthias.
Aided by engines, GMs can be very strong.
http://www.hylogic.de
http://www.hylogic.de
- noctiferus
- Posts: 122
- Joined: Thu Jun 10, 2010 7:57 am
- Location: Ivrea (To), Italy
Re: Naraku: clone or not???
Hi, Matthias
the post in his forum is dated 5 march.
the post in his forum is dated 5 march.
- Matthias Gemuh
- Posts: 295
- Joined: Wed Jun 09, 2010 2:48 pm
- Contact:
Re: Naraku: clone or not???
Hi noctiferus,noctiferus wrote:Hi, Matthias
the post in his forum is dated 5 march.
the guy should have put the infos on the website of Naraku so that people can read about the Fruit/Ippo connection before they decide whether to test the engines, or reject them as derivatives.
Thanks for informing us here.
Matthias.
Aided by engines, GMs can be very strong.
http://www.hylogic.de
http://www.hylogic.de
Re: Naraku: clone or not???
I'm not going to look at this too thoroughly right now (32-bit code makes my head hurt also), but here is an IvanHoe (or R3) remnant in Naraku 1.4:
So it checks if the rook is on the 6th rank, then if the opponent has a pawn or king on the 6th-8th, and if so, gives a bonus of 5 in the opening and 15 in the endgame.
Right before this is the 7th rank code:So the (10,30) bonus stayed the same, but the one for doubled rooks changed (at least from the IvanHoe version I am looking at).
And lo and behold, right before this we have rooks on the 8th:
And right before that (1,2) is added for a rook outpost, with (3,4) if it is guarded. The RookHalfOpen bonus is (3,6) the RookOpenFile bonus is (10,20), the RookOpenMinor bonus is still (15,5), etc. There are some minor modifications.
I would thus but the engine in the "suspect" category until evidence to the contrary.
Code: Select all
0x004129e8: cmp $0x5,%eax
0x004129eb: jne 0x412a0a
0x004129ed: mov 0x8c(%ebx),%eax
0x004129f3: or 0x9c(%ebx),%eax
0x004129f9: xor %ecx,%ecx
0x004129fb: and $0xffffff00,%eax
0x00412a00: or %eax,%ecx
0x00412a02: je 0x412a0a
0x00412a04: add $0x5000f,%esi
Right before this is the 7th rank code:
Code: Select all
0x0041298e: cmp $0x6,%eax
0x00412991: jne 0x4129e8
0x00412993: mov 0x98(%ebx),%ecx
0x00412999: mov 0x9c(%ebx),%edx
0x0041299f: mov %ecx,0xe8(%esp)
0x004129a6: mov %edx,%ecx
0x004129a8: or 0x8c(%ebx),%ecx
0x004129ae: xor %edi,%edi
0x004129b0: and $0xffff0000,%ecx
0x004129b6: or %ecx,%edi
0x004129b8: je 0x4129e8
0x004129ba: and $0xff000000,%edx
0x004129c0: xor %ecx,%ecx
0x004129c2: add $0xa001e,%esi
0x004129c8: or %edx,%ecx
0x004129ca: je 0x4129e8
0x004129cc: mov 0x7c(%ebx),%ecx
0x004129cf: or 0x74(%ebx),%ecx
0x004129d2: xor %edx,%edx
0x004129d4: and 0x34(%esp),%ecx
0x004129d8: and $0xff0000,%ecx
0x004129de: or %ecx,%edx
0x004129e0: je 0x4129e8
0x004129e2: add $0x60008,%esi
And lo and behold, right before this we have rooks on the 8th:
Code: Select all
0x00412971: cmp $0x7,%eax
0x00412974: jne 0x41298e
0x00412976: mov 0x9c(%ebx),%edx
0x0041297c: and $0xff000000,%edx
0x00412982: xor %ecx,%ecx
0x00412984: or %edx,%ecx
0x00412986: je 0x41298e
0x00412988: add $0x5000a,%esi
I would thus but the engine in the "suspect" category until evidence to the contrary.
- noctiferus
- Posts: 122
- Joined: Thu Jun 10, 2010 7:57 am
- Location: Ivrea (To), Italy
Re: Naraku: clone or not???
http://www.miroku79.info/blog/?p=218
it looks like this is the last piece of information about Naraku I can post here...
it looks like this is the last piece of information about Naraku I can post here...