Skip to content

Repository files navigation

WinChess

Build and test Release License: MIT Platform

Project status: Early public release. The native regression suite, Windows build, UCI smoke tests, release packaging, and SHA-256 validation are automated. Broader gameplay, compatibility, and strength testing by external users is still needed.

WinChess is an open-source chess application for Windows. It combines a native C++ chess engine, a WPF desktop interface, and a UCI command-line host that can be loaded by compatible chess GUIs.

Main features

  • legal move generation with castling, en passant, promotion, check, checkmate, and draw detection;
  • 64-bit bitboard representation with precomputed leaper attacks and magic-bitboard sliding attacks;
  • iterative-deepening Negamax/alpha-beta search;
  • quiescence search, transposition table, PVS, LMR, aspiration windows, killer moves, and history ordering;
  • FEN import/export, PGN history, undo, perft, board flipping, and themes;
  • live analysis showing depth, evaluation, nodes, elapsed time, best move, and principal variation;
  • conservative opening variety: disabled by default and restricted to near-equal evaluated moves when enabled;
  • import of an external UCI engine and equal-time engine-vs-engine benchmarking;
  • standalone UCI executable for use in third-party chess GUIs.

Repository layout

ChessDLL/    Native C++ engine exported through a C ABI
ChessGUI/    .NET 10 WPF desktop application
ChessUCI/    UCI console host that loads ChessDLL.dll
ChessTests/  Native correctness tests and search benchmarks
docs/        Architecture, build, protocol, roadmap, and historical notes
scripts/     Test and release-packaging scripts

Requirements

For the complete Windows application:

  • Windows 10 or later, x64;
  • Visual Studio 2026 with Desktop development with C++ and .NET desktop development;
  • .NET 10 SDK;
  • Windows 10/11 SDK.

The native regression tests also build on Linux, WSL, and macOS with a C++20 compiler, CMake, and pthread support.

Download

The latest Windows x64 release is available from the GitHub Releases page.

Download the following two files:

  • WinChess-0.1.0-win-x64.zip
  • WinChess-0.1.0-win-x64.zip.sha256

The ZIP contains the WPF application, the UCI host, the native chess-engine library, license information, and SHA-256 checksums.

Build on Windows

Open ChessProject.slnx, select Release | x64, and build the solution. The main outputs are:

ChessGUI/bin/Release/net10.0-windows/WinChess.exe
bin/x64/Release/WinChessUCI.exe
bin/x64/Release/ChessDLL.dll

Detailed instructions are in docs/BUILDING.md.

Run the native tests

CMake

cmake -S . -B build -DWINCHESS_BUILD_BENCHMARKS=ON
cmake --build build --config Release
ctest --test-dir build --output-on-failure

Convenience scripts

./scripts/Test-Core.ps1
./scripts/test-core.sh

The current source package was checked with GCC on Linux and the core regression suite completed successfully.

Create a release package

From a Visual Studio Developer PowerShell:

./scripts/Publish-Release.ps1 -Version 0.1.0

The script builds and tests the x64 Release configuration, publishes the WPF application, places the UCI host beside the native DLL, creates checksums, and writes a ZIP file under artifacts/.

UCI usage

WinChessUCI.exe supports the standard commands needed by most GUIs, including uci, isready, ucinewgame, position, go, stop, setoption, and quit. Supported options include Hash, Move Overhead, PVS, LMR, aspiration windows, and Clear Hash.

go nodes and go searchmoves are currently acknowledged but not implemented as constraints. See docs/UCI.md.

Safety note for imported engines

The desktop application can launch a user-selected UCI executable. Only import engines from sources you trust: an imported engine runs as a normal process with the same user permissions as WinChess.

Contributing

Bug reports, reproducible test positions, performance measurements, documentation improvements, and focused pull requests are welcome. Read CONTRIBUTING.md before submitting changes.

Authors

  • Touil Ghassen — Project lead, software architecture, and chess-engine development
  • BAZIZ Chafia — Developer
  • BOUAKAZ Ahlem — Developer

See AUTHORS.md for detailed authorship and contribution information.

License

The WinChess source code is licensed under the MIT License.

The bundled Cburnett chess-piece SVG files are separately licensed under CC BY-SA 3.0. SharpVectors is a BSD-3-Clause dependency. See THIRD_PARTY_NOTICES.md and ChessGUI/Pieces/README.md.

Credits

WinChess is developed and maintained by the contributors listed in AUTHORS.md. Community contributions are welcome.

About

Open-source Windows chess application with a native C++ engine, WPF interface, UCI support, bitboards, alpha-beta search, tests, benchmarking, and reproducible releases.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages