What is chess++?
Chess++ is a modern multi platform chess game implementation for (at least) GNU/Linux and Windows with user programmable rule sets, a client software application (chesspp) and a server application (cheppd) by which all the games are managed.
The project makes use of the Qt library by Trolltech and the client uses OpenGL for game visualisation.
Chess++ came to life in the course of a software lab at Universität Stuttgart and is being developed and maintained by Henning Mälzer, Antoine Jacob, Hendrik Hochstetter and Moritz Rathgeber (hence the name H.A.H.M.).
Chess++ client (chesspp)
The client is a fully skinnable (see download section for theme files) application which allows the user to chat with other players on the server he is logged into. The state of the running games on the server and the users that are logged in are displayed using a tree structure. The pieces are loaded from files in raw faces format and their related str (scale, translate, rotate) files which adjust the size and placement of the pieces on the board.
Because of the use of extern files one can create and use own sets of pieces.
Chess++ server (cheppd)
The server is where the games actually run. It distributes the game's stati to the clients and puts the desired moves into effect. The server enhances the game logic by the concept of user accounts and relates the colours in a game with their players.
The server cares itself about the deletion of unused games and user accounts, and will hopefully require no intervention from its operator.
Chess++ game logic
The game logic reads .rul files (rulesets) or .sav files (savegames, which are copies of rulesets containing the logged progress of the game) by a bison- and flex-generated parser. According to the read ruleset it emits the actually lineup as well as possible moves and recieves the made moves of each player.
Because of the use of extern files one can create and use own rulesets.
For a list of downloadable rule sets see the download section.
There's a documentation in pdf format in the download section and an online version of the
same documentation here.