New chess software announce: Satana

Discussion of chess software programming and technical issues.

Moderators: hgm, Dann Corbit, Harvey Williamson

User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

New chess software announce: Satana

Post by stegemma »

It starts with a joke... but my new C++ chess software for the Apple Mac is now called "Satana".
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: New chess software announce: Satana

Post by stegemma »

I'd wrote this announce from the tournament hall of the IOCSC, now i provide some more information.

Since my first working program, Drago, i've programmed in assembly. Drago was full assembly code, even the interface (full sources are still available on www.linformatica.com). The next step has been Raffaela: C++ interface but full assembly coded engine. I plan to release the sources of Raffaela, sometime.

The further step has been Freccia, still full assembly code and no interface. Only the main function, that handle keyboard input and console output were in C. Do to various bug, the result were not so good as expected. Freccia engine were more stable and tested than those in Drago and Raffaela. The engine of Freccia never hangs and never loose on time, int he last corrected version (the one that have played the last two rounds in IOCSC). I think that Freccia engine is a good engine, from the technical point of view (not from the strength point of view).

Next step is the new engine, at start called Freccia again but written in C++. Because of this, the new language used, and because of the new paradigm used... i've renamed the new engine. In IOCS we talk about some interesting opportunities, i cannot give you the details, but, just for joke, i've suggested to write a new engine called Satana (devil, lucifer...). That name was free, nobody used it for chess engine... so the work in progress of the new Freccia engine becomes "Satana".

Wat's new about Satana? Not only the language, C++ instead of assembly, but finally i've started to implement the genetical algorithm, that i've only experimented in the past. Satana uses a genetical approach, made easy by the C++ language. The whole structure of the program is planned for this kind of algorithms.

The stage of development is very forward, now, but still a lot of works is required. The engine is stable as the Freccia one (but in C++). I've used a standard alfa-beta recursive searching, instead of mine "alfa-gemma" iterative searching function. The evaluation function is already done with the genetical approach goal: it is composed on various object, that i call "evaluators". The "DNA" of the engine will be a set of this "evaluators", mixed togheter with various strength. At the present, i change manually the weight of each evaluator but the next step is to make a genetical growing of a population of evaluators.

The project is more complex that this brief explanation. I post it because i want that anybody knows that something really new is coming.............
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: New chess software announce: Satana

Post by lucasart »

stegemma wrote:It starts with a joke... but my new C++ chess software for the Apple Mac is now called "Satana".
I like the name :)
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: New chess software announce: Satana

Post by lucasart »

stegemma wrote: Since my first working program, Drago, i've programmed in assembly. Drago was full assembly code, even the interface (full sources are still available on www.linformatica.com).
Woaw, you coded the whole thing in assembly ? That's pretty hardcode. Only I can't understand why someone who used to be an assembly gourou would switch to C++ instead of C ?
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: New chess software announce: Satana

Post by stegemma »

lucasart wrote:
stegemma wrote: Since my first working program, Drago, i've programmed in assembly. Drago was full assembly code, even the interface (full sources are still available on www.linformatica.com).
Woaw, you coded the whole thing in assembly ? That's pretty hardcode. Only I can't understand why someone who used to be an assembly gourou would switch to C++ instead of C ?
You can download the sources... and see the full work: video, mouse, sound... and, obviously, the chess engine were in assembly. Sorry but the comments are in italian.

I don't like C, i like C++ because i can work in an object oriented way. I think that if i want the best speed i should program in assembly... if i don't care as much about speed, it is more confortable to me to program in C++. When Satana and all of its algorithm will be stable, maybe i can translate some part to assembly, not to C.

Lets say, i can create a clsEvaluator class and from this class derive clsEvaluatorKingSafety, for sample. Then, by calling pEvaluator->Evaluate() i can get the value, despite from the evaluator that i'm calling.

I've done some progiling and i've found that the nodes per seconda are almost the same between Satana C++, with some simple evaluators active, and Freccia Assembly, with only material evaluation. Freccia runs on a XP VirtualBox on a Mac, while Satana runs in Mac console, for now (the nodes count is about 940.000 n/s). That may means that Freccia 32 bit assembly on XP Virtual Box have the same speed that Satana C++ on 64 bit Mac console. This is a great and unexptected result, for me.
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: New chess software announce: Satana

Post by stegemma »

PS: 940Knodes on a macBook pro Intel core i5 2.3 MHz and about 1100Knodes on iMac Intel i3 3.06 MHz
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: New chess software announce: Satana

Post by stegemma »

I'm back to chess programming... again. In the meantime, i've ported new Satana engine to wxWidgets, so that there will be both a Windows and a Mac OS X version.

The first tournament of Satana will be in Italy, probably this october, in Rome.
User avatar
mrlissandrello
Posts: 250
Joined: Sat Nov 26, 2011 6:33 pm
Location: Italy

Re: New chess software announce: Satana

Post by mrlissandrello »

Neurone Amorth version is waiting you in Rome :wink:

Ciao Stefano!

LL
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: New chess software announce: Satana

Post by stegemma »

mrlissandrello wrote:Neurone Amorth version is waiting you in Rome :wink:

Ciao Stefano!

LL
So i can't comes last never this year... grrrrrrrr!!! :twisted:

"Amorth" stands for "a'mortacci tua?" :D

(it's a tipical phrase from Rome peoples and have no translation, literally is an "invocation" to dead parents...)
User avatar
mrlissandrello
Posts: 250
Joined: Sat Nov 26, 2011 6:33 pm
Location: Italy

Re: New chess software announce: Satana

Post by mrlissandrello »

:D

For those who do not understand... http://en.wikipedia.org/wiki/Gabriele_Amorth

Bye!
LL