Magnus Chess is a modular chess engine project built with modern C++ and a Qt/QML user interface.
- docs/: architecture and project documentation.
- include/: shared public headers.
- scripts/: local automation scripts.
- src/: source code.
- src/board/: board-state domain module.
- src/movegen/: move generation module.
- src/search/: search algorithms.
- src/evaluation/: evaluation logic.
- src/engine/: engine orchestration.
- src/ui/qml/: Qt/QML user interface.
- tests/: test targets and future unit tests.
- C++20
- CMake 3.20+
- Qt 6 (Core, Qml, Quick)
- QML for UI layout and rendering
- Single responsibility per module.
- Loose coupling and clear interfaces.
- No hidden global state.
- Performance-aware implementation choices.
- Test-first or test-alongside development for core logic.
- Visual Studio Build Tools with C++ workload.
- Qt installed in C:/Qt with an MSVC kit, for example C:/Qt/6.11.0/msvc2022_64.
- CMake available in PATH.
Run this command from the project root:
powershell -ExecutionPolicy Bypass -File .\scripts\run-app.ps1
What this script does:
- Loads the Visual Studio developer shell.
- Configures the project with MAGNUSCHESS_BUILD_UI=ON.
- Builds the executable.
- Deploys required Qt runtime files.
- Launches the app.
- Configure:
cmake -S . -B build -DMAGNUSCHESS_BUILD_UI=ON -DCMAKE_PREFIX_PATH="C:/Qt/6.11.0/msvc2022_64"
- Build:
cmake --build build
- Run:
.\build\MagnusChess.exe
After launching the app:
- The board shell appears immediately.
- The 64-square board renders before piece placement.
- Initial pieces appear from the mock FEN state.
- Press New Game to repeat reset and initial load.
- If the app exits immediately, use the run script instead of launching the exe directly.
- If CMake cannot find Qt, verify CMAKE_PREFIX_PATH points to the correct Qt MSVC kit.
- If compilation fails with missing standard headers, ensure build commands run from Visual Studio developer environment.