gcboard (Generic Chess Board) is a programming library implementing a graphical playing board for Chess and Chesslike games. It's very flexible, and can be used to program many kinds of games (i.e. Draughts, Japanese Chess, Chinese Chess, Checkers). It implements most of the features that are usually found in chess interfaces (dragging, highlighting, animating, flashing, etc.) and handles them without additional effort for the programmer. Gcboard will support your game if it has the following properties:

  • The game is turn based (from 2 to 15 players).
  • Pieces are placed on one or more rectangular playing boards (usually one).
  • Moves are made by moving a piece from it's square to another (either empty or containing an enemy piece).

For example, games that wouldn't fall into this cathegory: go, othello, monopoly, backgammon.

GCBoard is platform independent. The core of the library has been written in C with portability in mind. Supporting new platforms and toolkits should be very easy: just create a wrapper around the platform independent code. Currently there is support for the Gtk2 toolkit. Any contributions to support other toolkits and platforms are certainly welkom! (e.g. MS Windows, Qt, Mac Os).

Since the base of the library is written in c, it is perfect for use with (slow) scripting interpreters, for example ruby, scheme, python and perl. In fact this is one of the reasons I wrote this library. Bindings exist for Ruby, and I contributions for other bindings are certainly welcome.

My hope is that this library will encourge other people to write beautiful games, without having to spend to much effort on writing the gui. Instead of having to write a full interface each time from scratch, GCBoard makes it possible to concentrate on the game-specific parts.

GCBoard is released under the General Public Licence. Basicly this means that you are free to use and modify this library as long as you also release the sources to your program. Note: this is not the LGPL license, it doesn't permit linking (either staticaly or dynamicaly) with closed source programs.

I'd like to hear your opinion about gcboard, or requests of new features. If you know a feature or enhancement that is generally usefull I will probably add it.

Gcboard is developed by Kristof Bastiaensen and hosted by sourceforge. You can find the project page here.