New chess software announce: Satana
Moderators: hgm, Dann Corbit, Harvey Williamson
-
stegemma
- Posts: 859
- Joined: Mon Aug 10, 2009 10:05 pm
- Location: Italy
- Full name: Stefano Gemma
New chess software announce: Satana
It starts with a joke... but my new C++ chess software for the Apple Mac is now called "Satana".
-
stegemma
- Posts: 859
- Joined: Mon Aug 10, 2009 10:05 pm
- Location: Italy
- Full name: Stefano Gemma
Re: New chess software announce: Satana
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.............
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.............
-
lucasart
- Posts: 3232
- Joined: Mon May 31, 2010 1:29 pm
- Full name: lucasart
Re: New chess software announce: Satana
I like the namestegemma wrote:It starts with a joke... but my new C++ chess software for the Apple Mac is now called "Satana".
-
lucasart
- Posts: 3232
- Joined: Mon May 31, 2010 1:29 pm
- Full name: lucasart
Re: New chess software announce: Satana
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 ?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).
-
stegemma
- Posts: 859
- Joined: Mon Aug 10, 2009 10:05 pm
- Location: Italy
- Full name: Stefano Gemma
Re: New chess software announce: Satana
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.lucasart wrote: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 ?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).
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.
-
stegemma
- Posts: 859
- Joined: Mon Aug 10, 2009 10:05 pm
- Location: Italy
- Full name: Stefano Gemma
Re: New chess software announce: Satana
PS: 940Knodes on a macBook pro Intel core i5 2.3 MHz and about 1100Knodes on iMac Intel i3 3.06 MHz
-
stegemma
- Posts: 859
- Joined: Mon Aug 10, 2009 10:05 pm
- Location: Italy
- Full name: Stefano Gemma
Re: New chess software announce: Satana
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.
The first tournament of Satana will be in Italy, probably this october, in Rome.
-
mrlissandrello
- Posts: 250
- Joined: Sat Nov 26, 2011 6:33 pm
- Location: Italy
Re: New chess software announce: Satana
Neurone Amorth version is waiting you in Rome
Ciao Stefano!
LL
Ciao Stefano!
LL
-
stegemma
- Posts: 859
- Joined: Mon Aug 10, 2009 10:05 pm
- Location: Italy
- Full name: Stefano Gemma
Re: New chess software announce: Satana
So i can't comes last never this year... grrrrrrrr!!!mrlissandrello wrote:Neurone Amorth version is waiting you in Rome![]()
Ciao Stefano!
LL
"Amorth" stands for "a'mortacci tua?"
(it's a tipical phrase from Rome peoples and have no translation, literally is an "invocation" to dead parents...)
-
mrlissandrello
- Posts: 250
- Joined: Sat Nov 26, 2011 6:33 pm
- Location: Italy