It does minimax search with alpha-beta pruning together with some other optimizations such as magic-move generation, null-move optimization and quiescence search. The board representation is based on bitboards. The engine isn't that good yet, although it's not easy to defeat it (: It's ELO lies around 1800.
- Speed statistics
- More efficient bug-free transposition table
- Unit tests
- Self-play script
- New board move making and validity checking
- Testing new board representation
- Move generation
- Testing move generation
- Better Move ordering
- Many more things I forgot to write...
- ...
- New Search optimizations
- Getting Dratini's UCI protocol to work with xboard
- Detailed analysis with pseudocode of other engines' search functions (Rodent III, Ethereal and Halogen)
- Using cutechess to make Dratini vs. Dratini matches
- Creating dir with docs and parallelized cutechess tournaments
- Understand profiling and try to use it if it makes sense
- Programming bench
- Be able to play against Sungorus
- Clone Sungorus eval function for benchmarking
- Be able to benchmark in server
- Test move picker
- Speed up board class
- Implement simpler (copied) search function
- Implement move making and move validity checking benchmark
- Implement perft and compare old versus new board functions versus Sungorus
- Implement SEE Benchmark and improve SEE function speed
- Implement changes in search function and test against previous version
- Integrate NNUE code (only FEN probing) and test against previous version
- Finish AVX2 implementation and try to use AVX512
- Clean up unused code and macros