/Lux

UCI-Compatible Chess Engine Built in C++

Primary LanguageC++MIT LicenseMIT



UCI-Compatible Chess Engine Built in C++

Surely never been done before

Downloads License

Release Commits

Rating

Version Estimated CCRL 40/15 CCRL Blitz (2'+1") MCERL 1' + 0.6"
1.0 1700 - - 2026
2.0 1850 - - 2139
2.1 2000 - - 2256
2.2 2050 - - -
2.3 2100 2017 2039 -
3.0 2200 - - 2498
3.1 2300 - - -
3.2 2350 - - -
3.3 2375 - - 2564
3.4 2400 - 2349 -
3.5 2450 - - -
4.0 2550 2519 - 2670
4.1 2600 2601 2578 2733
4.2 2670 2764 2689 -

Current Version Upgrades

Basic Requirements

  • UCI Protocol
  • Time Management
  • Negamax
  • Iterative Deepening

Search Upgrades

  • AlphaBeta Negamax
  • Quiescence Search
  • Transposition Table
  • Aspiration Window
  • Principal Variation Search
  • Improving Heuristic
  • Check Extensions
  • Reverse Futility Pruning
  • Null Move Pruning
  • History Pruning
  • Late Move Reduction

Eval Upgrades

  • Material Score
  • Piece-Square Tables
  • Pawn Eval
    • Passed
    • Phalanx
    • Isolated
    • Supported
  • Piece Eval
    • Mobility
    • Attacked by Pawn
    • Open / Semi-Open File
    • Bishop Pair
    • Minor Piece Behind Pawn
    • Minor Piece Outpost
  • King Eval
    • King Openness
    • Attacking Pawn
    • Pawn In Front

Move Ordering Upgrades

  • TT-Move
  • Promotions
  • MVV-LVA
  • History Heuristic [Piece][To]
  • Killer Moves

Useful Tools

Cutechess - Use the Cutechess CLI to run SPRT on your engine

Texel Tuner - Tune your handcrafted eval function

Libraries

Chess package for C++: https://github.com/Disservin/chess-library

Resources

Chessprogramming wiki has a lot of information but can be outdated and lacks pseudocode.

Other Engine Insiprations

Altair Bit-Genie Blunder Rice Weiss

And of course, Stockfish