Repository navigation
Major Release Highlights
This first major release of the ArGO chess engine marks a significant milestone with substantial improvements in playing strength, stability, and performance. The engine now incorporates a fully-functional NNUE evaluation system and sophisticated search techniques that bring it to a competitive level.
New Features
- NNUE Evaluation System: Implemented an Efficiently Updated Neural Network for position evaluation, ported from Koivisto
- Advanced Time Management: Dynamic time allocation based on position complexity and search stability
- Improved Search Algorithms:
- Principal Variation Search (PVS) for more efficient alpha-beta pruning
- Enhanced Late Move Reduction with dynamic depth adjustments
- Null move pruning for quick detection of strong positions
- Transposition Table Enhancements:
- Age-based replacement strategy
- Improved hash entry utilization
- Magic Bitboards: Optimized move generation for sliding pieces with perfect hashing
- Check Extensions: Automatic search depth extension in check positions
- Mate Distance Pruning: Early termination for detected forced mates
Performance Improvements
- Assembly Optimizations: Critical NNUE calculations using hand-tuned assembly for AMD64
- Move Ordering Refinements:
- Fine-tuned MVV-LVA capture scoring
- Improved history heuristic scaling
- Better killer move selection
- Reduced Memory Footprint: More efficient data structures for core components
- Cache-Friendly Data Layouts: Restructured critical arrays for better cache utilization
UCI Compliance
- Full UCI Protocol Support: Compatible with standard chess GUIs
- Configurable Options: Hash size, threads, and other engine parameters
- Detailed Search Information: Proper reporting of depth, score, nodes, and principal variation
Technical Documentation
- Added comprehensive documentation for all major engine components
- Detailed explanations of core algorithms and data structures
- Architecture overview and design principles
Bug Fixes
- Fixed evaluation inconsistencies in endgame positions
- Corrected castling detection in certain edge cases
- Resolved issues with en passant capture generation
- Fixed time management in tournament time controls
- Eliminated memory leaks in long-running searches
Known Limitations
- NNUE assembly optimizations only available on Linux AMD64 platforms
- No multi-threaded search implementation yet
- No endgame tablebase support
Future Plans
- Three-fold repetition check
- Move Generation through iterators
- Aspiration windows
- Updated Transposition Table and Reduction Table
- Refactoring the board implementation for easier move making
- Multi-threaded search
- Syzygy tablebase integration
- NNUE training infrastructure
- More configurable search and evaluation parameters