Skip to content

Renegade 0.11.0

Compare
Choose a tag to compare
@pkrisz99 pkrisz99 released this 29 May 10:49
· 275 commits to main since this release

Renegade 0.11.0 (May 29, 2023)

  • Improved search
    • Added aspiration windows
    • Added static exchange evaluation (and related pruning techniques)
    • More aggressive late-move reductions
    • Added mate distance pruning
    • Check extensions are done at any depth, instead of only at depth 0
    • Removed non-gaining pruning (razoring + delta pruning)
    • Small update to null-move pruning formula
  • Improved speed (roughly 30% nps uplift before other features got added)
    • Optimized hash calculations (no longer using 13% of the processing time!)
    • No longer relying on fully calculated internal attack maps
    • Reduced branching in move generation
  • Improved evaluation
    • Rewritten weight structure, using the S(x, y) notation
    • More nuanced threat calculation
    • Bonus for pawns supported by other pawns
    • Pawn phalanx evaluation
    • Squares attacked by pawns no longer count towards piece mobility
    • Further tuned existing weights
  • Move ordering improvements
    • Captures with a negative SEE moved after quiet moves
  • Made transposition table entries more compact (16 bytes instead of 24)
  • Updated tuner
    • Accommodates the new weight structure
    • Quality of life improvements
  • Internal changes
    • Templated move generation
    • Added method for determining whether a square is attacked
    • Generally trying to use more of the modern C++ features
    • Added functions needed for SEE
    • Lots of clean ups
  • Updated time management for repeating time controls
    • Now it should use more time in the beginning of the game
    • Hopefully I can stop complaining about this in tournaments
  • Pretty output (unless uci command is received)
  • Node counts are incremented on make move (similarly to most engines)
  • Fixed missing staticEval >= beta condition for null-move pruning
  • Fixed search aborting if mate found when not using time constraints
  • Made everything a little less bad

Regression testing: (time control: 10s+0.1)

Score of Renegade 0.11.0 vs Renegade 0.10.0: 2010 - 240 - 550  [0.816] 2800
...      Renegade 0.11.0 playing White: 1144 - 60 - 196  [0.887] 1400
...      Renegade 0.11.0 playing Black: 866 - 180 - 354  [0.745] 1400
...      White vs Black: 1324 - 926 - 550  [0.571] 2800
Elo difference: 258.8 +/- 13.6, LOS: 100.0 %, DrawRatio: 19.6 %

General notes:

  • With this release I consider most of the low-hanging fruit done
  • Still no stop implementation, sorry LTC Banksia testers :(
  • Strength: ~2700 (based on not-too-accurate gauntlets at 90s+1.5)