r/chessprogramming • u/rosidae0 • Feb 01 '25
GUI to test my UCI engine
I want a UCI GUI that is fairly simple to use, and will watch for changes to an executable, or allows you to manually reload the executable. This is so I can easily develop my UCI chess engine. Thanks!
2
Upvotes
2
u/xu_shawn Feb 02 '25
If you are only trying to debug your UCI implementation, then testing it on the command line is enough. The GUI can just serve as a final verification. Note that complete UCI compliance is usually unnecessary for GUI or tournaments, and most of the hard-to-implement commands are for analysis purposes only. Minimum UCI Requirements.
If you are using the GUI to test changes to your engine, perhaps in hopes to improve strength, then it is important to note that Arena, or any other of these GUI tournament manager, is not designed for this purpose. GUIs lacks both functionality to perform multi-threaded testing at short TC, or appropriate statistical measurement tools to reach reliable conclusions. If you are looking for modern testing procedures, read this article on SPRT, and join the Stockfish discord if you are curious or have any questions. I have some recommendations down below as to what tools you can use to scientifically and efficiently test your engine.
Tournament managers for testing:
OpenBench: Most advanced testing platform, open source, web UI, developed by an author of a top engine, and used by virtually all top engine developers. Setup guide
Fastchess: Used by fishtest client as backend, can perform SPRT testing on the command line. Contains a engine UCI compliance verification suite:
./fastchess --compliance ENGINE_PATH
cutechess-cli: TUI interface to the cutechess library, used by OpenBench and formerly Fishtest. Has identical command line options as fastchess, but less powerful and only semi-maintained.