Vantage is a high-performance, UCI-compatible chess engine written in Rust. It utilizes magic bitboards for move generation and advanced search techniques to play at a competitive level.
Note: Vantage is a command-line engine. To play against it, you need a chess GUI like Arena, Cute Chess, or Banksia.
Just want to play?
- Download the latest release for your OS
- Extract the archive
- Load
vantage(orvantage.exeon Windows) into your chess GUI - Start playing!
You do not need to install Rust. Just download the latest engine release:
- Go to the Releases Page.
- Download the zip file for your OS (
vantage-windows-x86_64.ziporvantage-linux-x86_64.tar.gz). - Extract the contents.
- Load
vantageinto your favorite Chess GUI.
Recommended GUIs:
- Cute Chess (Cross-platform, actively maintained)
- Arena (Windows)
- Banksia GUI (Cross-platform)
If you want to modify the code or run tests:
# Clone the repository
git clone https://github.com/vaishakkmenon/Vantage.git
cd Vantage/backend
# Run Unit Tests (300+ tests)
cargo test --release
# Build the Engine (Optimized)
cargo build --releaseThe executable will be located at target/release/vantage.
- Bitboards: Full 64-bit representation for all pieces.
- Magic Bitboards: Ultra-fast sliding piece attack lookups (Rook/Bishop) using precomputed tables.
- Zobrist Hashing: Efficient position identification for the Transposition Table.
- Alpha-Beta Pruning: With Principal Variation Search (PVS) for optimal tree traversal.
- Iterative Deepening: Progressive search depth for better time management.
- Transposition Table: 512MB hash table caches search results to avoid re-calculating known positions.
- Move Ordering: Prioritizes captures (MVV-LVA) and killer moves to maximize pruning.
- Opening Book: Supports Polyglot (
.bin) opening books for varied play. - PeSTO Evaluation: Piece-square tables with tapered evaluation for midgame/endgame.
| Metric | Status |
|---|---|
| Estimated ELO | TBD - Formal testing pending |
| Nodes Per Second | TBD - Benchmarking in progress |
| Search Depth | TBD - Performance testing underway |
| Test Suites | TBD - WAC/Bratko-Kopec results pending |
Benchmarking and rating tests are planned for future releases.
Vantage implements the Universal Chess Interface (UCI) protocol with the following capabilities:
Supported go Commands:
go depth <n>- Search to a fixed depthgo movetime <ms>- Search for a fixed time in millisecondsgo wtime <ms> btime <ms>- Time control for both sidesgo winc <ms> binc <ms>- Increment per movego movestogo <n>- Moves until next time controlgo infinite- Search until stopped
Current Limitations:
- No
setoptionsupport (hash size and other parameters are fixed) - Single-threaded only (no SMP/multi-threading)
- Fixed 512MB transposition table
Memory Usage:
- Transposition Table: 512MB (power-of-2 aligned)
- Additional overhead: ~50-100MB for move generation and search data structures
- Open Cute Chess
- Go to
Tools > Settings > Engines - Click
Addand browse to thevantageexecutable - Click
OKto save - Start a new game and select Vantage as one of the players
- Open Arena
- Go to
Engines > Install New Engine - Browse to and select the
vantage.exefile - Click
OKto install - Select Vantage from the engine list to play
You can also run Vantage directly in a terminal for debugging or scripting:
./vantage
uci
isready
position startpos moves e2e4 e7e5
go depth 6Example UCI Session:
> uci
id name Vantage
id author Vaishak Menon
uciok
> isready
readyok
> position startpos moves e2e4
> go depth 8
info depth 1 score cp 50 nodes 20 time 1 pv e7e5
info depth 2 score cp 35 nodes 85 time 2 pv e7e5 g1f3
...
bestmove e7e5
Planned Features:
- ELO rating through tournament testing
- Performance benchmarking suite
- Configurable hash table size via UCI options
- Multi-threading support (Lazy SMP)
- Endgame tablebase support (Syzygy)
- Neural network evaluation (NNUE)
Known Limitations:
- Single-threaded execution only
- No UCI
setoptioncommand support - Fixed 512MB transposition table (not user-configurable)
- No time management tuning options
Want to contribute? See the Contributing section below!
- Language: Rust 🦀
- Tests: 300+ unit tests with 100% pass rate (enforced by CI)
- Platform: Windows & Linux (cross-platform support via GitHub Actions)
- Architecture: Single-threaded bitboard-based engine
- Code Quality: Clippy-approved, formatted with rustfmt
Contributions are welcome! Whether you're fixing bugs, adding features, or improving documentation:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes and add tests
- Run
cargo test --releaseto ensure all tests pass - Run
cargo clippyto check for issues - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Areas where contributions are especially welcome:
- Performance optimizations
- Additional search techniques
- UCI option support
- Multi-threading implementation
- Documentation improvements
- Bug reports and testing
Vantage builds upon the work of the chess programming community:
- Chess Programming Wiki - Comprehensive reference for chess engine development
- PeSTO - Piece-square tables for evaluation
- Polyglot Book Format - Opening book implementation
- Magic Bitboards - Fast sliding piece move generation technique
Special thanks to the Rust chess programming community for their open-source contributions and discussions.
- Solution: Ensure you've downloaded the correct version for your OS (Windows vs Linux)
- Solution: Check that the file has execute permissions (Linux:
chmod +x vantage) - Solution: Try running from command line first to see error messages
- Check: Are you using the release build? Debug builds are significantly slower
- Check: Is your GUI set to very long time controls?
- Note: Vantage is currently single-threaded, so it won't use all CPU cores
- Cause: Vantage doesn't support all UCI commands yet
- Workaround: Avoid using
setoptioncommands in your GUI configuration
Still having issues? Open an issue on GitHub with:
- Your OS and version
- The GUI you're using
- Steps to reproduce the problem
- Any error messages
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
This means you're free to:
- ✅ Use Vantage for personal or commercial purposes
- ✅ Modify the source code
- ✅ Distribute copies
With the requirement that:
⚠️ Derivative works must also be open-source under GPL-3.0⚠️ You must include the original license and copyright notice
Developed by Vaishak Menon
- Portfolio: vaishakmenon.com
- GitHub: @vaishakkmenon
Star the repo to follow development and new releases!