Releases: archishou/MidnightChessEngine
Midnight v9
Notes
Hi! This release adds SMP and AVX Intrinsics. It is significantly stronger than its predecessor and is likely the final release for Midnight.
SMP
1Thread v 2Thread
ELO | 58.89 +- 16.59 (95%)
SPRT | 8.0+0.08s Threads=2 Hash=32MB
LLR | 2.95 (-2.25, 2.89) [0.00, 5.00]
GAMES | N: 816 W: 264 L: 127 D: 425
https://chess.swehosting.se/test/5381/
1Thread v 4Thread
ELO | 102.00 +- 23.13 (95%)
SPRT | 8.0+0.08s Threads=4 Hash=32MB
LLR | 2.95 (-2.25, 2.89) [0.00, 5.00]
GAMES | N: 480 W: 196 L: 59 D: 225
https://chess.swehosting.se/test/5382/
Prog Test
LTC
ELO | 111.37 +- 13.54 (95%)
CONF | 40.0+0.40s Threads=1 Hash=128MB
GAMES | N: 1000 W: 361 L: 51 D: 588
https://chess.swehosting.se/test/5212/
STC
ELO | 113.36 +- 8.56 (95%)
CONF | 8.0+0.08s Threads=1 Hash=32MB
GAMES | N: 3008 W: 1196 L: 248 D: 1564
https://chess.swehosting.se/test/5211/
What's Changed
- NetM004 by @archishou in #72
- NetM005 by @archishou in #74
- NetM006 by @archishou in #75
- AVX2 Handrolled SIMD by @archishou in #77
- AVX 512 Handrolled SIMD by @archishou in #78
- SMP by @archishou in #79
Full Changelog: v8...v9
Midnight v8
Hi, long time no see! This is the eighth version of Midnight, after finally breaking the 3100 ELO barrier, Midnight has moved on to an NNUE evaluation. This result is the initial version of that! Hope you enjoy :))
LTC
ELO | 317.52 +- 23.18 (95%)
CONF | 40.0+0.40s Threads=1 Hash=128MB
GAMES | N: 1000 W: 743 L: 20 D: 237
https://chess.swehosting.se/test/3988/
STC
ELO | 352.19 +- 15.22 (95%)
CONF | 8.0+0.08s Threads=1 Hash=32MB
GAMES | N: 3008 W: 2398 L: 90 D: 520
Midnight v7
This marks the 7th version of the Midnight Chess Engine. Development has slowed significantly as Midnight has gotten stronger and as I've gotten busier with other projects. This version of Midnight includes a major bug fix to Moves To Go time controls that should allow Midnight to perform with comparable strength to its shorter time control results. I expect Midnight v7 to be around ~3150 CCRL ELO.
LTC Progression Test
ELO | 100.33 +- 14.30 (95%)
CONF | 40.0+0.40s Threads=1 Hash=128MB
GAMES | N: 1000 W: 363 L: 82 D: 555
https://chess.swehosting.se/test/2435/
Summarized Changelog
Detailed Changelog
- Refactor Move-Gen by @archishou in #38
- Move evaluation into cpp files by @archishou in #39
- Internal Iterative Reductions by @archishou in #40
- Fix some missing includes by @archishou in #42
- Refactor LMR by @archishou in #43
- Quiet Late Move Reduction by @archishou in #44
- New LMR Constants by @archishou in #45
- Razoring by @archishou in #46
- King Line Evaluation by @archishou in #47
- Fix undefined behavior for key enumerations by @archishou in #48
- Use more time by @archishou in #49
- Bug fix MTG time allocation by @archishou in #51
- Smaller divisor for hard limit by @archishou in #52
- Use nodes spent to scale soft time bounds by @archishou in #53
- Improving by @archishou in #54
- Improving for LMR by @archishou in #55
- Fix node counting by @archishou in #56
- Forward Mobility Evaluation by @archishou in #57
- Refactor more safely by @archishou in #58
- Refactor some more by @archishou in #59
- Better Texel Tuning QOL by @archishou in #60
- Refactor Texel for generic parameter coeff and printing by @archishou in #62
- Retune by @archishou in #64
- Refactor by @archishou in #61
- King Ring eval based upon enemy king openess by @archishou in #65
- Scale eval based on remaining material by @archishou in #66
Full Changelog: v6...v7
Midnight v6
Short Time Control: 10+0.1
Rank Name Elo +/- Games Wins Losses Draws Points Score Draw White Black
0 midnight-6 17 20 808 303 263 242 424.0 52.5% 30.0% 54.1% 50.9%
1 stash-27.0-windo. 56 37 202 75 43 84 117.0 57.9% 41.6% 56.9% 58.9%
2 amoeba-3.4-x64 -10 42 202 74 80 48 98.0 48.5% 23.8% 49.5% 47.5%
3 Nalwald-16-modern -48 41 202 58 86 58 87.0 43.1% 28.7% 45.0% 41.1%
4 Topple_0.8.1_modern -66 42 202 56 94 52 82.0 40.6% 25.7% 45.0% 36.1%
811 of 200000 games finished.
Long Time Control: 60+0.6
Rank Name Elo +/- Games Wins Losses Draws Points Score Draw White Black
0 midnight-6 -4 25 457 141 146 170 226.0 49.5% 37.2% 47.8% 51.1%
1 stash-27.0 24 47 114 35 27 52 61.0 53.5% 45.6% 50.9% 56.1%
2 amoeba-3.4-x64 3 53 114 40 39 35 57.5 50.4% 30.7% 47.4% 53.5%
3 Nalwald-16-modern -3 50 115 35 36 44 57.0 49.6% 38.3% 49.1% 50.0%
4 Topple_0.8.1_modern -9 52 114 36 39 39 55.5 48.7% 34.2% 48.2% 49.1%
457 of 20000 games finished.
~3000 ELO
Thank you to @Alex2262 for helping me with so many of the ideas in my engine.
Thank you to @Ciekce for helping me become a better c++ dev and helping me catch some tough bugs in my code. Also largely responsible for the makefile in this project.
Thank you to @cosmobobak for helping me with SEE and helping me figure out singular extensions.
Thank you to everyone involved with the engine programming ob instance who contributed compute and made testing midnight as it got stronger much quicker.
Check out the relevant changes and tests for midnight here
Changelog for V6
- New LMR Constants
- New LMR Constants
- Tempo Bonus
- Aspiration Windows
- Threat Eval
- Refactor Movegen
- Generate Promotions in Q Search
- Static Exchange Evaluation in Move Ordering
- Static Exchange Pruning in Q Search
- Static Exchange Pruning in PVS
- Move RFP to before NMP
- Only do NMP if our Evaluation is greater than their best value
- Prefetch TT Entry
- Bonus for controlling board center
- Pawn Phalanx Evaluation
- Evaluate Candidate Passed Pawns
- Add LMP for Quiet Moves
- Update History when Alpha is Raised
- Add Futility Pruning
- Add History Pruning
- Add Continuation History
- Add Capture History
- More Aggressive LMR
- Singular Extensions
- Multi-cut and negative extensions
Midnight v5
Rank Name Elo +/- Games Wins Losses Draws Points Score Draw White Black
0 midnight. 6 14 1659 611 584 464 843.0 50.8% 28.0% 50.7% 50.9%
1 glaurung-w64 63 30 415 198 123 94 245.0 59.0% 22.7% 59.4% 58.7%
2 Leorik-2.4 13 27 414 143 128 143 214.5 51.8% 34.5% 51.9% 51.7%
3 inanis -34 29 416 132 172 112 188.0 45.2% 26.9% 44.0% 46.4%
4 4ku-2.0 -65 29 414 111 188 115 168.5 40.7% 27.8% 41.1% 40.3%
1663 of 200000 games finished.
~2800 ELO
Search Changes
- Adds TT in Q
- Adds soft/hard time limits
- Adds History Gravity
- Adds incremental sel sort and checks time every 1024 nodes
- Adds late move pruning
Move Ordering Changes
- Updates def of quiet to include castling and double pushes
Evaluation Changes
- Updates LMR with tuning
- King Ring Danger Eval
- Pawn Eval Attack
- New Score Style
- Mobility includes Xray Squares
- Passed Pawn / Blocked Pawn PSTS
Midnight v4
Addresses some tech-debt and gets a drafted Makefile probably not going to work on every system but it's definitely a start. No functional changes to previous version.
Midnight v3
Estimated 2670 ELO
Score of midnight-latest vs xbjazz-840-osx: 1092 - 566 - 342 [0.631]
... midnight-latest playing White: 556 - 270 - 174 [0.643] 1000
... midnight-latest playing Black: 536 - 296 - 168 [0.620] 1000
... White vs Black: 852 - 806 - 342 [0.511] 2000
Elo difference: 93.6 +/- 14.2, LOS: 100.0 %, DrawRatio: 17.1 %
2000 of 2000 games finished.
JAZZ840 ELO: 2555 CCRL
MIDNIGHT ELO: 2648 ELO + 22 ELO
Search Changes
- Adds a first draft of Reverse Futility Pruning
- Adds a first draft of Late Move Reductions
- Adds Null Move Pruning Reductions based on Static Evaluation
- Adds use of the Transposition Table in QSearch
Move Ordering Changes
- Fixes History Heuristic [Previously not a global variable]
Evaluation Changes
- Adds tuned PSQT for all pieces based on Texel tuning
- Removes Mop Up Evaluation
- Bonus for Passed Pawns
- Isolated Pawn Penalty
- Paired Bishop Bonus
- Mobility Bonus for all pieces
- Rook/Queen/King Bonuses and Penalties for Open/Semi Open file
- Pieces protected by pawns (including pawns) receive a bonus
- King Shield Pawn bonus
Midnight v2
Adds NM, History Heuristic, Killer Moves, and PVS
Score of midnight-dev vs snowy0.2: 321 - 506 - 173 [0.407]
... midnight-dev playing White: 170 - 227 - 103 [0.443] 500
... midnight-dev playing Black: 151 - 279 - 70 [0.372] 500
... White vs Black: 449 - 378 - 173 [0.535] 1000
Elo difference: -65.0 +/- 19.8, LOS: 0.0 %, DrawRatio: 17.3 %
1000 of 1000 games finished.
Midnight ELO 1940
Midnight v1
Some Bug Fixes.
Score of midnight-dev vs Lynx: 322 - 490 - 188 [0.416]
... midnight-dev playing White: 169 - 220 - 111 [0.449] 500
... midnight-dev playing Black: 153 - 270 - 77 [0.383] 500
... White vs Black: 439 - 373 - 188 [0.533] 1000
Elo difference: -58.9 +/- 19.6, LOS: 0.0 %, DrawRatio: 18.8 %
1000 of 1000 games finished.
ELO 1500
Midnight v0.2
Adds a transposition table.
Score of midnight-dev vs Lynx: 165 - 229 - 106 [0.436]
... midnight-dev playing White: 70 - 111 - 69 [0.418] 250
... midnight-dev playing Black: 95 - 118 - 37 [0.454] 250
... White vs Black: 188 - 206 - 106 [0.482] 500
Elo difference: -44.7 +/- 27.2, LOS: 0.1 %, DrawRatio: 21.2 %
500 of 500 games finished.
Lynx ELO: 1558
Midnight ELO: 1513