Skip to content

Releases: znxftw/rudim

Rudim v1.2 - Killer Heuristic & Performance

24 Feb 20:54
Compare
Choose a tag to compare

Changelog

  • Killer heuristic implemented
  • Moved to .NET 6
  • Refactored some implementations for performance and extensibility
    • Used struct for Bitboard
    • Used records for MoveType

Ideally with these improvements, Rudim should flag a lot less in games (even though it's very likely it will still take a bit of time in closed positions without any good captures / killer moves.

Other contributors : @prashantchoudhary

Rudim v1.1 - Performance & Hotfixes

07 Feb 20:10
Compare
Choose a tag to compare

Performance improvements and hotfixes to Rudim

  • Rudim was failing at evaluating some promotion positions with UCI. This has been fixed, and perft has been extended to advanced positions to catch any problems with move generation at that level
  • Performance improvements
    • Moved from saving/restoring entire BoardState to restoring only the irreversible portions of BoardState (Copy-Make) and calculate the reversible portions using UnmakeMove()
    • Added PieceMappings for faster lookup of GetPieceOn() used by the Move Ordering functions.
  • Moved tests to run in release mode for realistic feedback

For a comparison, v1.0 took on average (in debug mode) ~11 seconds for perft(5,startpos) whereas v1.1 takes 4-5 seconds.
Most of the major improvements according to the profiler have been tackled - further performance improvements would require multiple smaller changes in implementations, which will be addressed later.

Rudim v1.0 - Minimum Viable Product

06 Feb 09:29
Compare
Choose a tag to compare

v1.0 can play chess above average.
Might flag with depths >7 in long games. For instantaneous moves, depth 5-6 works well.