TJchess as a Bughouse Engine

  • TJchess now plays bughouse as a team of two engines, with each engine (or “bot”) playing on one board.  The TJchess bots do some basic communication and coordination that now allows them to play at a fairly strong level.  TJchess is only designed to play as a computer team, and not for playing as a partner to human players.

Two TJchess engines will tell each other the following types of information, throughout the game:

  • clock times and whose turn is it on their board
  • pieces acquired (captured).  This isn’t really necessary, since the server also provides this information, but it can save some time to tell partner directly.
  • pieces needed to mate opponent (for mate-in-1 or mate-in-2 only)
  • pieces that would allow opponent to mate (so partner will try not to give up that type of piece)
  • piece anticipated to be captured by opponent.  For example, if the opponent is expected to capture a piece, TJchess considers that capture as already made, until finding out otherwise.
  • tell partner if this board is dead or sitting.

Communication Method

  • Standard communication:  Old versions of TJchess communicated through the chess server (FICS or ICC), using the “ptell” command.  Even with a fast internet connection, this method may have significant lag/latency.  (Fractions of a second can really make a difference in a fast bughouse game.)
  • Direct communication:  Current versions of TJchess communicate with each other directly over TCP/IP with negligible latency, instead of going through the server.

TJchess Bughouse Strategy

  • stay “up time” as much as possible, using speed advantage of computer vs human
  • do not allow opponents to sit for pieces
  • basic communication/coordination between bots (see communication section above)
  • basic tactics: king safety, king attack, try to mate, try to win material

Comparison to other Bughouse Engines

  • Sunsetter and Sjeng (unlike TJchess) are very good bughouse engines for partnering with human players.  If you want an engine to be your partner, use these engines, not TJchess.  Sunsetter+Sunsetter or Sjeng+Sjeng may also work as two-engine teams, but I don’t think they were designed for that purpose.

Problems / Weaknesses / Areas for Improvement

  • TJchess sits too much, at least in some situations.
  • There are also times when TJchess should sit, but doesn’t.
  • TJchess doesn’t keep its opponent in check in some cases when it should.
  • TJchess doesn’t play a human-like bughouse game and never will.
  • Like most computers, very materialistic (too often focuses on winning material).
  • When one board is dead, TJchess should adjust strategy accordingly.  This is done to some extent, but could be improved.
  • and more…

How to set up TJchess to play Bughouse on FICS or ICC

  • coming later

History / Improvements

  • The first bughouse-capable versions of TJchess played at about strength 1000 (FICS bughouse rating).  It was very weak, mostly because it didn’t communicate at all.  TJchess played with human partners most of the time, at this point.
  • With very limited communication capability added (e.g. sit/go commands), TJchess’s rating improved to about 1600, still playing with human partners.
  • Over time, some improvement was made to TJchess’s general crazyhouse playing strength, which helped to improve its bughouse strength.  Communication capability was revamped to assume partner is another TJchess engine.  Also made changes to avoid falling for the simple trap where a piece is sacrificed, followed by a mate with a pawn drop.  With these changes, its team strength (TJchess+TJchess) was rated in the 1900s on FICS.
  • Improved communication further (see communication details above), and improved general playing strength.  Bughouse computers are now only allowed to play unrated games on FICS, so TJchess’s current team strength is unknown, but can be roughly estimated based on its performance against a variety of opponents.