Overview
Obsidian Chess Studio supports UCI (Universal Chess Interface) chess engines for position analysis and game evaluation. The engine integration system allows you to configure multiple engines simultaneously and customize their behavior through UCI options.Supported Engines
The application supports any UCI-compatible chess engine, including:- Stockfish - World’s strongest open-source engine
- Komodo Dragon - Commercial grandmaster-strength engine
- Leela Chess Zero (Lc0) - Neural network-based engine
- Other UCI engines - Any engine following the UCI protocol
Engine Configuration
Adding an Engine
Engines can be added through the package manager or by specifying a custom engine path:- Built-in engines - Pre-packaged with the application
- Custom engines - User-installed engine binaries
- Platform-specific paths - Automatic path resolution for Windows, macOS, and Linux
Engine Process Management
Each engine runs in its own background process managed by theEngineProcess struct:
UCI Options
Common UCI Options
Engines expose configurable options through the UCI protocol:Hash table size in MB. Larger values improve engine strength but use more memory.
Number of CPU threads to use for analysis. Set to match your CPU core count for best performance.
Number of principal variations to show. Set to 2+ to see alternative lines.
Enable engine to think during opponent’s time.
Configuring Options
Engine options are configured via theEngineOption struct:
Analysis Modes
Go Modes
The engine supports multiple analysis modes:Analyze to a specific depth (e.g., depth 20)
Analyze for a fixed time in milliseconds
Analyze until reaching a specific node count
Analyze indefinitely until stopped
Analyze with time controls matching a real game
Engine Output
Best Move Response
Engine analysis returns detailed information about the best moves:Progress Updates
Engine analysis emits progress events at 10 updates per second:Platform-Specific Considerations
Linux & macOS
Engine binaries must have execute permissions:Android
Engine binaries must be:- 64-bit ARM (aarch64) ELF executables
- Either ET_EXEC or ET_DYN format
- Properly signed for the target device
Windows
Engine processes run withCREATE_NO_WINDOW flag to prevent console windows from appearing.
Troubleshooting
Engine Not Starting
Permission Denied Error
Permission Denied Error
Linux/macOS: Ensure the engine binary has execute permissions:Android: Some devices block execution from certain filesystems (noexec mount). Try moving the engine to internal storage.
Engine Binary Not Found
Engine Binary Not Found
Verify the engine path in settings. The application looks for engines in:
- Package manager directory
- Custom engine paths specified in settings
- Platform-specific application data directories
Engine Crashes on Startup
Engine Crashes on Startup
Check engine logs in the application. Common causes:
- Wrong architecture (e.g., 32-bit engine on 64-bit system)
- Missing dependencies (especially for neural network engines)
- Corrupted engine binary
Best Practices
- Thread Configuration: Set threads to match your CPU cores (usually 4-8 for modern systems)
- Hash Size: Allocate 1-2 GB for desktop systems, less for mobile devices
- MultiPV: Use 1 for fastest analysis, 2-3 for seeing alternative lines
- Analysis Depth: Depth 20-25 is sufficient for most positions, 30+ for critical analysis
- Engine Selection: Use Stockfish for speed, Lc0 for positional understanding
