Search deeper
Iterative deepening, PVS-style search, aspiration windows, and quiescence search form the core. Transposition tables and history-based move ordering help focus the search.
OPEN SOURCE · C++20 · 4PC TEAMS
A different board demands a different engine. IronPhoenix brings team-aware search and native neural evaluation to four-player Teams chess.
Developed by Nick / KnightStackSys
14 × 14 cross board · 160 playable squares
01 / THE ENGINE
IronPhoenix is built around the chess.com-style cross board. Its search and evaluation account for teammates, four-player rules, and terminal king captures.
Iterative deepening, PVS-style search, aspiration windows, and quiescence search form the core. Transposition tables and history-based move ordering help focus the search.
Principal variation reporting exposes the engine’s line. Use MultiPV to compare several candidate moves, with time or depth limits to control the search.
Handcrafted evaluation provides a deterministic fallback. PhoenixNet adds a native neural evaluator with separate own-king and partner-king feature streams.
02 / A DIFFERENT KIND OF CHESS
Red and Yellow face Blue and Green. Players move in a fixed cycle, so the engine must read a position through the lens of both its own king and its partner’s.
IronPhoenix supports four-player castling, promotion, en passant, and FEN position setup. Positive evaluation scores favor the team whose player is currently moving.
Read the project overviewTHE TURN CYCLE
Four turns. Two teams. Shared stakes.
03 / PHOENIXNET
PhoenixNet is IronPhoenix’s native NNUE evaluator, designed specifically for four-player Teams chess.
The v1 architecture combines 65,280 sparse input features with 17 king buckets and a shared 128-wide feature transformer. Own-king and partner-king streams feed a 256 → 32 → 32 → 1 dense network.
Place ironphoenix.nnue beside the executable to load it automatically. Without a network file, the engine falls back to handcrafted evaluation.
FROM SELF-PLAY TO EVALUATION
Native self-play datasets with parallel workers and controlled MultiPV exploration.
Train on the sparse features consumed by the engine. Append or resume dataset generation.
Export the native NNUE format and load it alongside IronPhoenix.
04 / GET STARTED
Bring a C++20 compiler, CMake 3.24+, and Threads support.
MSVC, Clang, and GCC are supported.
git clone https://github.com/KnightStackSys/IronPhoenix.git
cd IronPhoenix
cmake -S . -B build -DIRONPHOENIX_BUILD_DATASET_GENERATOR=ON
cmake --build build --config ReleaseThe Release configuration is used by multi-configuration generators such as Visual Studio. For a single-configuration generator, add -DCMAKE_BUILD_TYPE=Release to the configure command.
uci
isready
setoption name Hash value 256
setoption name MultiPV value 4
position startpos
go depth 8Launch the built ironphoenix executable, then enter these UCI-style commands. Set MultiPV to 1 for the normal single-line search.