Stopped working on Naraku


The repeated insults received via email and the spam and junk comment that I’m receving in this days (most of them automatically deleted) take me to the decision to stop further developing Naraku. Sorry for all the people who liked an engine with a lot of different elo levels, but if I have to take insults for what I always treated like an hobby, it is not worth it. My goal was to create a free alternative to Chessmaster or Hiarcs (an engine with a lot of personality and levels of strenght).

About the origins of Naraku. It started as a hobbyst project in 2007, first as a stand alone C application (without UCI interface), and then rewriting in it a lot of ideas taken from other engines (this part started at the end of 2009). As I always written on the blog and other forums, these ideas included fruit, crafty, ippolit and a little part of Stockfish. Ah, I have to thanks the excellent TSCP (Tom Kerrigan’s simple chess program) code, that really help me a lot in learning chess programming.

I also learnead a lot when I worked for “La Sapienza” University last year, using the free subscriptions to a lot of scientific magazines of the university (sciencedirect and so on). In this period I was able to greatly improve the engine.

Then, after the coming of houdini, I started to think that rewriting the bitboard structure of the engine with an ippolit-like bitboard could help a lot, so I did it. It required me a lot of work. If this could be interpreted as cloning, deriving or some other similar words I do not care. But was not my intention to create troubles in the chess community: I never publicized my engine apart from my blog, never asked to anyone to test it, only offer for free from here. But when you take insults for a work that you think could be useful in the chess community, well, it simply not worth it. But it could be easily demostrated that Naraku share a lot with Ippo and at the same time have a lot of differences.

And now a few answer to some question that repeated full my email address:

Why Naraku use Multipv option if it don’t have it? Because I plan to include it in future version, then I switched to correct other bugs and removed to the things to do, at the point that actual version still dont have it.

Was Naraku based on Fruit 1.5 (or other version)? No. And BTW Fruit 1.5 is a lot weaker than Naraku.

Why you don’t create a multicore version as you stated almost a  year ago? Because I tried it, but I was unable to do. Crash, slowness, a lot of problems came out. Thinking that parallelization was an easier task to do, I was wrong.

And yes, older version of Naraku was planned to delete with the release of 1.4 version. This version can be used to learn to play chess; and I think that Naraku can play a good chess even if set at 1000 elo points, a task that most of the actual engine are unable to do.

So I stop developing the engine at this stage. Because is an hobby for me, I think I’ll make some other programs… maybe an adventure game, I really like the Adventure game studio tool, really simple and powerful.

Ah, Naraku means “Hell” in english, is the main antagonist in the InuYasha series, I opted for his name for the engine, because in the anime Naraku make a lot of deep strategical plans.

Naraku 1.4 released!


I’ve released a new version, much stronger than 1.31. This version is dedicated to my girlfriends Simona, and today is her birthday.

You can download Naraku HERE.


80-90 elo points better than Naraku 1.31 (estimated)
Tuned a lot of parameters
Better positional evaluation, more like a human game
Better endgame evaluation
Bitboard rewritten and much more efficient, similar to the engines of the ippolit series or gull
Some moves inserted into the engine as lookup tables, a sort of small book inside the engine. Currently it not give an advantage in terms of elo (it’s only a test), but I am convinced that in next versions there will be a considerable improvement
More efficient time management
Rewritten input / output interface
Deep razoring REMOVED. It gave a lot of problem in long time matches.
Difficulty levels: Currently you can set from 850 to about 2500 elo in a chess interface that support UCI_EloLimit command (like Arena). The difficulty levels have yet to to be tuned.

Upcoming releases:
64-bit? I am currently attending a postgraduate course at LyondellBasell, and on my laptop I can compile only 32-bit executables. When I get home, at the end of April, I will release a 64-bit version of Naraku, which should be at least 20 elo stronger.

Naraku 1.31


I’ve released Naraku 1.31. This version now works with Shredder and Acquarium GUI.

You can download HERE or HERE.

Naraku 1.3 bugged


Naraku 1.3 is bugged. It stop responding on Chessbase and Acquarium GUI. At this moment, it only work on Arena.

I want to thank Werner Schule, who discovered this bug (related to uci implementation) and help me finding a solution. I’ve identified 2 other bugs, in the evaluation and in the futility pruning algorithm, that also crash the engine in non-Arena GUI. I rewrote part of the functions that receive and send UCI commands, and now I’m working to correct the other bugs. In this week I release a new version.

Naraku 1.3


I’ve released a new version of my engine. This version adds many new features:

- More aggressive pruning and better move ordering

- Engine now dinamically select optimum futility parameters based on depth and turns of game, but it is still not perfect tuned

- Late move reduction

- Better PGO compile (engine slighty faster)

- Better evaluation function

- Bishop outpost

Naraku logo by Dusan Stamenkovic

Now I’m making internal tests based on H.Schnapp 220-suite, with 40/4 match against various engine (Fruit 2.1, Amyan 1.72, Rotor 0.5, Aristarch 4.50, Ufim 8.02, AnMon 5.7 and Naraku 1.2) as used by CEGT. After over 10000 games with various revisions of the engine, I estimate Naraku 1.3 with a rating of 2613 +- 14 elo points (using CEGT rating for the other engines).

Naraku is actually competing on Chesswar.

Due to work, that absorbs all my energies, I have to postpone personalities in the engine to the next version.

You can download HERE or HERE.

Naraku chess engine on CEGT!!!


Naraku 1.2 has been added to the prestigious CEGT:

It is in position 575, with a rating of 2574 elo points (all version rating list) and 158 in single version rating list! It seems that I have overestimated a bit his strength but it is a very good result  :)

Naraku 1.2


I’ve released a new version of my engine. This version adds many new features:

- Adaptive Deep Razoring
- Futility Pruning
- Code cleanup and optimization, about 1% faster when searching
- SSE1 compile (to support old CPU)
- Logo by Dusan Stamenkovic

By my internal tests, this new version is 20-25 elo points stronger than Naraku 1.12 on long time control. So Naraku could be rated approx 2745 elo.

I removed Inuyasha and Shippo, because in the next releases I’ll add some options to setup the engine strength by choosing some personalities.

You can download HERE or HERE.

Naraku 1.12


I’ve released a new version of Naraku Chess Engine. In this version I’ve corrected two nasty bugs, in my internal tests it is 25-30 elo stronger than 1.1.

You can download HERE or HERE.

Naraku 1.1


I’ve released a new Naraku version. Based on my internal tests, this version is about 40-45 elo point stronger than Naraku 1.01. So Naraku 1.1 have a elo rating of 2690-2695.

List of changes:

Null move pruning algorithm totally rewritten, now it is quicker and more efficient
Better evaluation function and material weights

You can download this and previous versions from the “Naraku Chess Engine” section of the blog.

Chess engine rating list – Classifica motori scacchistici 40/4


Ho completato anche una classifica dei migliori motori scacchistici per partite brevi (40/4 ripetuti, ovvero 40 mosse in 4 minuti ripetute). Le impostazioni sono: 40/4′ ripetuti, ponder off, opening book fino a 10 mosse. Ho tolto i risultati dei motori a 32 bit, concentrandomi solo su quelli a 64 bit, per risparmiare tempo e partite. La classifica finale è la seguente:

Program                          Elo    +   -   Games   Score   Av.Op.  Draws

1 Houdini 1.02 x64 4CPU          : 3280   11  11  1723    54.4 %   3249   57.3 %
2 IvanHoe 9.55b x64 4CPU         : 3266   16  16   771    51.8 %   3254   57.5 %
3 IvanHoe 57a4 x64 4CPU          : 3266   13  13   914    51.9 %   3253   66.7 %
4 Fire 1.2 x64 4CPU              : 3264   17  17   702    51.8 %   3252   54.8 %
5 Deep Rybka 4 x64 4CPU TM : 3262    9   9  2908    60.6 %   3187   44.9 %
6 Fire 1.31 x64 4CPU             : 3261   18  18   730    50.8 %   3255   50.7 %
7 Deep Rybka 3 x64 4CPU          : 3228   11  11  2548    63.8 %   3130   40.5 %
8 Robbolito 0.09 x64             : 3227   16  16   968    46.1 %   3255   49.8 %
9 Stockfish 1.8 x64 4CPU         : 3222   13  13  1581    53.4 %   3198   42.0 %
10 Stockfish 1.71JA x64 4CPU      : 3199   13  13  1592    56.8 %   3152   45.1 %
11 Naum 4.2 x64 4CPU              : 3154   13  13  1575    51.5 %   3144   43.1 %
12 Rybka 2.3.2a x64 4CPU          : 3100   18  18   712    48.5 %   3110   47.9 %
13 Deep Shredder 12 4CPU      : 3093   14  14  1464    43.8 %   3136   37.7 %
14 Critter 0.70 64bit 4CPU        : 3084   19  19   673    41.5 %   3144   47.8 %
15 Deep Fritz 12 4CPU             : 3080   22  22   607    36.4 %   3177   40.2 %
16 Spark 0.5 64bit 4CPU           : 3067   25  25   451    41.8 %   3125   38.4 %
17 Deep Fritz 11 4CPU             : 3050   18  18   825    31.9 %   3182   45.1 %
18 Zappa Mexico 2 x64 4CPU        : 3013   14  14  1727    28.0 %   3177   35.2 %
19 Thinker 5.4c Inert x64 4CPU    : 3005   26  27   529    26.8 %   3179   29.5 %

I pc usati sono dei quad core intel e amd: 2 quad core Q6600, 2 i7 920 2.66 ghz, 1 amd phenom 2 940. Ai miei risultati ho aggiunto altri risultati reperiti in rete alle stesse impostazioni (stesso tempo e capacità computazionali). In questo modo ho ottenuto una buona base statistica che consente di valutare con una buona approssimazione la forza di ciascun motore scacchistico. I dati sono stati calcolati con elostat tramite il programma Arena 2.01 in modo che Deep Rybka 4 abbia lo stesso punteggio del test 40/40′.

Rispetto a tempi più lunghi, dove aveva prevalso Rybka 4 (seppur di pochissimo, pochi punti elo), qui la situazione è capovolta. Tutti i motori più o meno derivati o successori di Ippolit (Ivanhoe, Houdini, Fire/Firebird), si dimostrano migliori, anche se tolto Houdini, avanti di 18 punti elo, tutti gli altri hanno praticamente lo stesso punteggio di Deep Rybka 4. Anche Robbolito, che sfrutta un solo core, guadagna qualcosa rispetto alla precedente classifica. Ciò lascia supporre che a tempi ancora più lunghi, o con più core (6-8 o veri e propri cluster), Deep Rybka 4 abbia ancora del margine, un aspetto da non sottovalutare nell’analisi delle partite. Il simbolo TM accanto a Deep Rybka 4 sta a significare che si sono adottati tempi diversi da quelli standard; più precisamente si sono adottati Normal move time=100 e Max move time=150, che sembra diano migliori risultati su partite brevi.

Torna all'inizio