Search code examples
cchess

Flexible library or server for board games (chess or others)?


I'm looking for a program or library that I could use for experimenting with board games (chess mostly, but not necessarily -- other similarly complex board games are OK too). I'll test different game-playing algorithms.

This is what I need:

  • I'd like, if possible, to make my program play against players like gnuchess and crafty, but also against itself and against a human player;

  • It's OK if my player-program can communicate with the "server" via TCP, but it would be even nicer if it had a C interface (not C++, because then I'd have to write a wrapper);

  • I may want to change the game rules (initial position of pieces, number of pieces, and even movement rules);

  • Flexible (it's OK if the library/server validates chess moves, for example, but I'd like such feature to be optional because I will want to turn it off for some experiments);

  • Free (I may want to get into the source code and maybe change a few bits).

I'd be grateful if anyone could point me to such a library/server...

Thanks a lot!

P.S.: I wanted to include a "board-games" tag, but it seems that I'd need more reputation for that...

P.S. 2: I'd like to accept two answers (they're complementary). It's a pity StackOverflow doesn't allow that.


Solution

  • VASSAL is a cross-platform engine for playing board and card games over the internet. It is designed for allowing humans to play each other, but it is extensible enough you could add an AI player.

    It is open-source and extremely customizable, people have created original games using it.