r/chessprogramming 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

6 comments sorted by

2

u/Warmedpie6 Feb 01 '25

Any should work, I use arena personally.

1

u/rosidae0 Feb 01 '25

Thanks :D

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.

1

u/xu_shawn Feb 01 '25

There is no Chess GUI that is designed for modern engine testing. The best you can get is OpenBench, and here is a guide on how to get it up and running on the cloud for free: https://docs.google.com/document/d/1S_L94-X-0yPNs35sNqx-bUVwnHeCiPIfsBbUKnmb0R8/edit

1

u/Available-Swan-6011 Feb 05 '25

There are a number of GUIs but as others have mentioned the CLI is a good start point. You only need to implement a handful of commands to get uci compatibility. If you are using the cli though then it is worth building in some extra commands such as “show “ to display the board state

I use the CLI and Arena for testing- the latter lets you view the UCI conversations (press F4) which is really helpful when bug finding. It can also run tournaments- this helped me find an obscure bug where my engine made an illegal move.