Thanks to Antonio Arias we now have Linux binaries included with the main distribution of Maverick. You can download them here.
I’m happy to announce the release of Maverick 1.5. This is close to the version which competed in the 2015 World Computer Chess Championship in Leiden. I’d estimate that it’s only about +50 ELO better than version 1.o (based on self play). I’m about to embark on a rewrite of the evaluation function so I thought it a worthwhile launch.
The main changes are:
- Tweaks to the piece square tables (especially pawns)
- Added endgame knowledge
- Less selectivity
- Fixed a quiescent search bug which unnecessarily research some moves
You can download it below or from the Download Page. I’ve only included a 32 bit and 64 bit version which should work on most systems. If anyone would like to create a Linux / Apple Mac compile then I’d be happy to include it in with this version. The source is available here
Today I’m releasing Maverick 0.60. The main changes are as follows:
- Added support for Chess960
- Added basic king safety (this makes the playing style much more attractive)
- Fixed a problem with using the opening book with Arena
- Fixed an obscure bug which could crash the engine after a stop command
- Transferred source code to Github (https://github.com/stevemaughan/maverick.git)
- Made a bazillion tweaks which may, or may not, help!
In self play matches against 0.51 it shows an improvement of about 50 ELO. I’m hoping this will translate to a real-world strength increase of at least 30 ELO.
I’m now about to start working on improving the selective search!
You can download it on the download page
Maverick 0.5 has been in the wild for about a month. I’m pleased to say it seems to be playing at 2300 ELO or above.
However, occasionally it would crash. This really niggled me.
I do quite a lot of turbo-testing using CuteChess-Cli at fast time controls. So I had convinced myself the occasional crash was probably an overload of the standard input and output pipes (I’m not even sure if this is possible). However, since I’ve tested Maverick quite thoroughly using perft positions, I was confident the basic chess engine routines were bug free. I was wrong.
This week I have been down in São Paulo Brazil on business. Graham Banks has been testing Maverick and broadcasting the games. Since I had nothing better to do I logged in and watched a few games. It’s amazing how nerve wracking it is to watch your engine play a game at 40 moves in 40 minutes. As I was watching, and to my surprise, Maverick suddenly crashed. I quickly copied the position and thankfully was able to reproduce the crash!
The bug was quite bizarre. Take a look at the position below:
After black has played pawn to g4, white is in check from the queen on h6. However, the code which finds the source of the check is shown below:
This was a “copy and paste” error. The code thinks the knight on c2 is actually a king attacking the white king. This was the bug. It was easy to fix. Hopefully this will result in no more crashed.
You can downloaded the fixed version (Maverick 0.51) on the Download Page. There are really no strength improvements for this bug-fix release. If you are testing Maverick you can keep the games already played.
You can download a new version of Maverick on the download page.
I’ve made quite a few changes since Maverick 0.5.
- Added more basic endgame knowledge
- Added passed pawn evaluation (I think this added a lot of strength)
- Beefed up the evaluation routine to include basic terms such as mobility
- Fixed a nasty hash bug to do with mating positions
- Added one-reply to check extensions in the first ply of the quiescent search (help with some tactics – little impact on playing strength)
- Enabled hash cutoffs at PV nodes
- Nodes per second have dropped considerably due to the slower evaluation (now between 3 million and 5 million on my 2.8 GHz i7 notebook)
- A bazillion tweaks
How Strong is Maverick 0.5?
This is the first version of Maverick which I regards as reasonably strong. In my tests it’s at least 200 ELO stronger than version 0.2. If I had to guess I would say it’s about 2350 ELO on the CCRL rating scale.
Here are some test results:
[table align=”center” width=”800″ colwidth=”350|50|50|50″ colalign=”left|right|right|right”]
Match, Maverick, Opponent, Percentage(%)
Maverick 0.5 – Fruit 1.0,50.5,49.5,50.50%
Maverick 0.5 – Dragon 4.6,62.5,37.5,62.50%
Maverick 0.5 – Phalanx XXIII,57.5,42.5,57.50%
Maverick 0.5 – Tao 5.6,38.0,62.0,38.00%
Maverick 0.5 – TJchess 1.1U-x64,57.0,43.0,57.00%
Maverick 0.5 – Maverick 0.2 x64,75.5,24.5,75.50%
All the games were played at 1 min per game on a 2.8 GHz Haswell i7 notebook.
Maverick only lost to Tao 5.6, a relatively old (2004) engine, but one I really like. Tao’s rating is about 2500 ELO so this results is expected. I was surprised Maverick did so well against Dragon and Phalanx. I suspect their CCRL ratings of over 2350 ELO may be inflated.
Mate in 21:
I’ve used this simple position for many years to test hash tables. I first came across it in an advert for the Fidelity Mach III back in (circa.) 1988. If a hash table is working as it should then an engine will have no problem finding c7, followed by an opposition king maneuver and the queening of the white pawn on b8.
FEN: 2k5/8/1pP1K3/1P6/8/8/8/8 w – – 0 1
The previous version of Maverick could find c7 but when I added the hash cutoffs at PV nodes Maverick was able to find the mate in 21 in less than 10 seconds – I was pleased.
I’m planning to release the next version when it can comfortably beat Tao 5.6, YACE and maybe Hermann 2.8. These engines are above 2500 ELO so it should take me a while. My aim was to have a Maverick playing at 2500 ELO by Christmas – I think that’s still possible. In the current version there is no king safety or selectivity apart from null move; so I think another 150 ELO by Christmas is possible.
Please met me know if you have any test results for Maverick or if you find a bug!
It’s only been a few days since I launched Maverick 0.11. However, yesterday was unusual. I spent most of the day at Sort Hills Mall in New Jersey (don’t ask!). I set myself the task of finding 10 bugs. In the end I found three. As it turns out these three severely impacted Maverick’s playing ability. So the latest version seems to play at around 2150 ELO on the CCRL scale i.e. about 100 ELO better than version 0.11).
It’s been just under two weeks since I released Maverick into the wild. Over that period there have been over 200 downloads – quite amazing.
I’ve also been busy. After setting up the testing framework I had some time to add some standard chess engine components:
- Checks in the first ply of the quiescent search
- Standard endgame knowledge (KQ vs. K, KR vs. K, KBB vs. K, KBN vs. K)
- Null move heuristic
- Hash tables
- Bug fixes (including a nasty time management bug)
To my surprise the null move heuristic didn’t add much value until I added the hash tables. Once the hash tables were added the increase in strength was noticeable. By my test this version of Maverick is now better than Monarch 1.7 and approximately +200 ELO better than the previous version. In a 300 game match it convincingly beat Monarch in a lighting chess match (60 moves in 20 secs) with 140 wins, 104 loses and 56 draws, which is 56% – yippee!! The win was replicated at slightly slower time controls of 60 moves in 5 mins when Maverick scored 38 wins, 30 loses and 32 draws (54%). If these results scale to other opponents it would give Maverick 0.1 a rating of about 2050 ELO on the CCRL rating list. You can download Maverick 0.11 here.
EDIT: Version 0.11 replaces Version 0.10 which had a time management bug
You can download the first release of Maverick on the Download page.
I decided to make this release as Maverick seems to be stable. But don’t expect anything special. I’d estimate the strength to be about 1700 ELO on the CCRL scale (which us about 300 ELO weaker than Monarch, my previous engine). I wouldn’t be surprised if it’s even weaker than 1700 ELO. If you’re interested in a fast but dumb engine, then Maverick will be perfect.
Here’s what it does:
- Magic bitboard structure which would seem to be quite fast (the 64 bit version runs at about 8 million nps in the middle game on my Core-i7 4900QM at 2.8 GHz)
- Fully UCI compatible (tested in Shredder and Fritz)
- Basic PVS search
- Move ordering – captures (mvv/lva ordered), killers and history move count
- Basic Quiescent – all SEE positive moves played
- Basic evaluation function which is little more than piece-square tables
- Draw by 50 move rule
- Draw by 3 times repetition (Maverick is quite “smart” and requires 3 time in appropriate positions – see here for discussion)
- Ponders in opponent’s time
- Polyglot compatible opening book (selectable from Maverick’s options menu!)
And that’s it! Maverick doesn’t even have null move pruning or hash tables (so room for improvement!).
At this point Maverick seems to be stable; having played a few hundred games against Monarch. Please let me know if you encounter any problems.
P.S. I started writing Maverick five months ago to the day!