Skip to content

jeromew21/Blobfish

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blobfish picture of a blobfish

Blobfish is a command-line only chess engine, but you can plug it into a GUI or lichess.

Intended features

  1. Human vs AI move discrimination: using statistical models classify moves as engine or human; using this to play more like a human
  2. Training a neural net with Monte-Carlo Tree Search
  3. Support for other chess variants, and Shogi

Running list of features

  1. UCI compatability (only partially implemented; tested with Lichess-Bot and Cutechess)
  2. Alpha-beta pruning and Principal Variation Search
  3. Bitboard move generation
  4. Outputs principal variation
  5. Static exchange evaluation
  6. Late move reduction
  7. Null move pruning
  8. Killer heuristic
  9. Countermove heuristic
  10. Threefold Repetition detection (though with the transposition table it gets very messy)
  11. Passes Perft test (this means that the move generator is 100% correct)

Contributing

Feel free to make a branch.

Todos (somewhat in order of priority)

  1. Improve evaluation (king safety, ML tuning)
  2. Improve hash table eviction policy
  3. Look into parallel search
  4. Optimize move generation (magic BB, partial movegen) and legality checking (xrays, pins, etc)
  5. Late move pruning and move ordering concerns
  6. Create testing/benchmark suite6. Resolve exit during search issues
  7. Resolve exit during search issues and time management
  8. Aspiration windows and/or fail-soft
  9. Improve quiescience search
  10. Test if different random seeds improve hash table performance
  11. Complete implementation of UCI interface (pondering, etc)
  12. Look at MCTS / alternative search algorithms

About

bitboard chess engine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published