Orion UCI chess engine

Download v0.6 (64-bit version)

June 1st, 2019

Orion v0.6 is here !

Almost one year of work... :-) Main changes are :

In my testing conditions (5000 games, 4000 played at 40/1 + 1000 played at 40/2), this version should be ~100 elo stronger than v0.5.

En route for v0.7 and a new long-term objective: reach one day 2800 elo ?!

May 16, 2019

Orion v0.6 is almost ready to be released !

I'm currently running last tournaments to ensure non-regression with the very last build. It has been almost one year since the last post on this "blog": I worked hard on the new version, continuously trying to improve the engine, test after test... Sometimes, I wonder how other programmers do to improve so quickly their own engine, especially for 2500+ elo engines !

As a rule, and from the very beginning, I always refuse to watch other engines' evalution code. I only took inspiration in code related to search, but only for the parts I can understand and implement on my own. For example, aspiration window at root node is a concept that still doesn't work in Orion. I think I understood the idea, but something is still wrong. As far as evaluation is concerned, Orion's code is 100% original : I only took inspiration from well-known sites like CPW, blogs from other authors (a thought for Mediocre which seems to reborn !) and, for sure, forums (TalkChess being the one I read the more).

Most of the Orion v0.6 progress will come from the evaluation function: I added some concepts and the magic of genetics did the rest :-) In the meanwhile, I'm really proud of the v0.5 strength. This version has been a solid ground to build another release ! After almost one year from its release, here are its current rating:

SiteTC (*)RankEloGames

(*) Time control (40/4 means 40 moves in 4 minutes)

June 21, 2018

Orion v0.5 is available !

After several weeks of hard work, and a huge number of games played to test, test, and test again, I'm pleased to release a new version of my little engine Orion !

So, what's new ? Not a long list of new features, but a lot of code changes and rewrite :

Yes ! It worked ! I finally managed to improve strength using PBIL method (a big thank to Thomas Petzke) ! v0.5 is the first genetically modified version of Orion :-)

Gain can appear low, but I use a simple and straightforward fitness evaluation method : only compare score difference between Orion and Stockfish (v8). My previous attempts failed because of a bad initialisation of weights. Tuning only applied on evaluation terms, from 25 millions of unique positions extracted from CCRL 40/40 games and took ~ 8-10 hours. For the next release, I'll try to include search parameters but this will need to change fitness evaluation and run games : it should really take a lot of time !

Lastly, I tried to improve my testing framework. In previous versions, I only ran gauntlets against my 3 prefered partners : iCE, Lozza, and Madchess. I now run 4000 games against 20 engines, at 40 moves / 60 seconds, using the Hert500.pgn opening book. To preserve my computer, CPU is underclocked at 2.24 GHz. A complete run takes ~ 36 hours (7 games are run in parallel).

I hope all this work will be reflected in an elo gain in real conditions !

May 14, 2018

Orion v0.5 is approaching !

Since the release of v0.4, I have been working a lot to try to improve Orion, testing dozens of code changes and playing thousands of games. I finally started to get promising results a few weeks ago. I'm currently trying to grab a few more elos before releasing a new version.

In the meanwhile, I'm really satisfied to see that current version performs relatively well in tournaments (it is 60-100 elo stronger than v0.3 !). Compared to previous versions, v0.4 is clearly a strong and sound basis to try new ideas. You'll find in the table below an idea of its current strength. I'm really excited with the current development version : stay tuned !

SiteTC (*)RankEloGames

(*) Time control (40/4 means 40 moves in 4 minutes)

October 15, 2017

Orion v0.4 is out !

I'm really happy to release this new version : I worked a lot on it, testing tens of versions, to finally get a version doing what it was intended to :-)

From the source code perspective, this version does not vary a lot from the previous : I only made small adjustements on search and fixed some pieces of code that didn't do what I expected to.

Evaluation was just modified to adjust rooks scoring. I gave a new chance to PBIL algorithm to improve it with no results. This time, I tried to minimize the difference between Orion and Stockfish v8 scores, but in real games, it didn't give better play.

So, what's new in this version ? Even if final code differences are small, there are some big changes:

In addition, a BMI2 version of the engine is now provided, giving a small speed bonus (+ 5%) on compatible systems.

Why releasing a new version now ? Because, even if evaluation has not been improved, my own tests show a clear progression against v0.3 : +/- 100 elo at 40/4 ! I hope this will be confirmed in real tournaments and longer time controls...

Have fun and do not hesitate to give me feedback !

March 4, 2017

It has been nearly a year since Orion was put online, and you will find in the table below a good idea of its level. I'm quite happy with these results (many thanks to all testers) ! In fact, the engine performed better than I expected. However, during last months, I tried to improve again the last version but faced difficulties... Developing a chess engine can really cause headaches !

I first tried to improve my evaluation function (using genetic algorithms) : it only allowed me to validate my PBIL framework as real strength was finally not increased...! After multiple attempts, I suspected pruning and reductions techniques had (bad) influence while trying to optimize evaluation.

I then started to inspect search tree implementation to decide what to deactivate, and found some bugs and pieces of code not doing what they ware intended to... Several hundreds games later, I also suspected problems in Transposition Table, notably on replacement strategies. I then tried multiple approaches... before being satisfied.

I'm here. And last results seem to go in the right direction, but it's too early to release a new version : a lot of work is still planned ! I want first to stabilize search tree implementation and then give a new chance to genetic algorithms to improve Orion's evaluation function. For the latter, I think I will disable pruning and reduction techniques to better converge to a good solution...

During all my efforts, I also found time to implement a BMI2 version of the engine, giving (on compatible systems) an incredible... +0% speed boost ! Another disappointment... and a new source of forthcoming debug sessions :-)

SiteTC (*)RankEloGames

(*) Time control (40/4 means 40 moves in 4 minutes)

April 3, 2016

Orion v0.3 is now available !

I'm very happy to release this new version after several weeks of hard work. It (almost) consists in a complete rewrite of the previous version, in order to have a more readable and robust code, which should be a better basis for further enhancements. And code is not throwing anymore tons of warnings when compiling ;-)

Aside from rewriting, some features have been added, changed or removed :

Evaluation is unchanged. The new pruning techniques allow smaller search trees while adding some search instability. It results in less reliable moves in shallow depths, but should increase strength for longer time controls. I'm very impatient to see how it will behave in tournaments !

Next version will focus on evaluation enhancement with a PBIL framework already implemented and ready to be played with !

July 19, 2014

New Orion v0.2 ratings :

SiteTC (*)RankEloGames

(*) Time control (40/4 means 40 moves in 4 minutes)

June 25, 2014

Orion v0.2 participated in its first tournament ("Special Stars", organized by CCRL team) and finished in 4th place !

As it was my goal to compete with other engines, I'm very proud of it ;-)

June 17, 2014

First feedback from testers with computers that don't support 'popcnt' instruction show that the engine may crash : this problem has been fixed and a patched version of Orion v0.2 has been repackaged in the zip file (see download section).

This shows that we never test enough ! Thanks to all testers for their patience...

Please report any new problem here.

June 15, 2014

I'm pleased to announce the release of Orion v0.2 !

This new version includes :

All these features should improve the engine speed :-)

Please enjoy !

June 7, 2014

The CEGT team tested intensively Orion v0.1... playing 1100 games ! Here is the rating obtained :

SiteTC (*)RankEloGames

(*) Time control (40/4 means 40 moves in 4 minutes)

May 31, 2014

After the last CCRL update (many thanks to all testers !), these are the ratings of Orion v0.1 :

SiteTC (*)RankEloGames

(*) Time control (40/4 means 40 moves in 4 minutes)

May 24, 2014

Orion v0.1 is now listed in CCRL (in the "complete list" only, because It played less than 200 games) !

After 30 games played, Orion has been evaluated at 2194 elo. The error margin is quite big (+/- 116), but totally normal since only a few games were played. I think its real level is closer to 2078 :-)

May 21, 2014

I'm very happy and proud to release the first version of my UCI chess engine : Orion v0.1 !

I started to work on it several years ago, as a hobby, but decided to rewrite it entirely (and more seriously) at the beginning of the year, switching from Java (easy for prototyping) to C (easiest to distribute).

It includes :

My long term goal is to reach 2500 elo (one day ?!), but for the moment, this version seems to have, let's say, some room for improvement :-)

It's an 100% original work (no fork/derivative), a lot inspired by chessprogramming.wikispaces.com, and ideas taken from the excellent blogs of Jonatan Pettersson (Mediocre) and Thomas Petzke (iCE).

In order to use Orion, you will need a GUI like Arena.

Last but not least, many thanks to Graham for accepting Orion to enter the CCRL competition !

Please enjoy !


Orion is free : you can download and use/test it without limitation. The zip contains a Windows executable and a personal logo (astronomy is another passion). You are allowed to redistribute it, on the absolute condition that you don't modify the executable and the logo. Sources are not included since development is in a too early stage.

Download v0.6 (64-bit version)

Previous versions : Download v0.1 to v0.5 (64-bit versions)