Proposing new virtual packages for engine/gui compatibility
Yann Dirson
ydirson at free.fr
Sun Feb 1 18:25:39 UTC 2015
We currently have a large (and growing) number of engines for Chess,
Shogi, XiangQi, Go and similar games, GUIs to communicate with them
using several protocols (at least xboard, eboard, scid, tagua), and
protocol adapters (polyglot, uci2wb).
Currently, all of those GUI packages only recommend a handful of the
available engines, and vice versa. It would be much better to use
virtual packages.
Thus a first proposal could be to use a set of $PROTOCOL-game-engine
and $PROTOCOL-game-ui, as follows.
$PROTOCOL will be one of:
* "uci" (Universal Chess Interface)
* "cecp" ("Chess Engine Communication Protocol", also known as "xboard
protocol", but that's the official name given by the XBoard team)
* "usi" (Universal Shogi Interface)
* "ucci" (Universal Chinese Chess Interface)
* "csa" (Computer Shogi Association protocol)
* "xshogi" (the CECP spinoff used by XShogi)
* "xshogi-minishogi" (XShogi protocol as used by gnuminishogi)
* "gtp2" (Go Text Protocol v2)
* "gtp2-reversi" (GTP for Reversi, as used by Quarry/GRhino)
... to be expanded as needed
Engines would declare eg:
Package: gpsshogi
Provides: csa-game-engine, usi-game-engine
Recommends: $PREFERED_UI | csa-game-ui | usi-game-ui
And GUIs would similarly declare eg:
Package: XBoard
Provides: cecp-game-ui
Recommends: $PREFERED_ENGINE | cecp-game-engine
And adaptors:
Package: uci2wb
Provides: cecp-game-engine, uci-game-ui, usi-game-ui, ucci-game-ui
Recommends: $PREFERED_UI | cecp-game-ui,
$PREFERED_ENGINE | uci-game-engine | usi-game-engine | ucci-game-engine
As shown with the "xshogi-minishogi" and "gtp2-*", the general form is
indeed $PROTOCOL[-$VARIANT]-game(engine|ui), as we may want to be more
precise on the protocol, since those are often used for several game
variants. Eg. gnuminishogi talks XShogi protocol, but XShogi itself
cannot play MiniShogi, whereas Tagua can; similarly, many GTP2 GUIs
only support Go, whereas Quarry also supports Reversi.
If there is no objection, I will submit a patch to debian-policy
adding the 2 sets (-ui and -engine) of virtual packages to the
official list, for the list of protocols listed above.
More information about the Pkg-games-devel
mailing list