Wasp Chess Engine
|Home         Downloads         Technical         About John         Links
Wasp is a chess engine written by John Stanback. It supports the Universal Chess Interface (UCI) protocol, polyglot opening books, and Syzygy endgame tablebases. Wasp can play standard chess and Chess 960 (Fischer Random Chess). Wasp is among the top 30 or so strongest chess engines in the world. Wasp started as a complete rewrite of the Zarkov chess engine in 2011 and development is ongoing. It is written in the "C" programming language. Starting with version 5.00 Wasp uses a Neural Network for position evaluation. Previous versions used a "hand-crafted" evaluation function. All functions in Wasp were written by myself, except for those in the Fathom or Pyrrhic libraries used to access the Syzygy endgame tablebases.
Wasp binaries are available for the Windows, Linux, and Raspberry Pi platforms. A UCI compliant user interface is required.
Wasp is free to use and distribute and is copyrighted per the MIT license. See Wasp license.
The latest release version of Wasp is 6.50. This and previous versions are available from the downloads page. The release notes can be viewed here.
I started writing my first chess engine in 1978 in the BASIC language. There was little to no information available on how to program a computer to play chess so mostly I was just "winging it" with my own ideas. I'm not a good chess player and just thought it would be fun to try to make something that played legal chess and maybe played about as well as I do. I had no idea that I would still be doing this more than forty years later! Once I got my first engine working, I rewrote it in FORTRAN and then again in the Pascal programming language. These engines all used something like an iteratively deepened alpha-beta minimax search where the first couple moves and captures were searched to the full depth and the remaining moves were searched with a reduced depth. A static exchange evaluator was used to adjust the evaluation to account for hung pieces. No quiescence search was done. These engines didn't play so well, but I had a lot of fun pitting them against dedicated electronic chess games.
Next, I did a rewrite in C and used a more conventional depth first alpha-beta search with a quiescence search at the leaves. In 1987 I posted the source code on the rec.games chess newsgroup. I got some feedback and ideas from various users, made some improvements, and in 1988 my engine (Stanback Chess Program) became the GnuChess 2.0 engine.In 1989 I did another complete rewrite and called the new program Zarkov. A modified version of Zarkov was used for a commercial program called "Grandmaster Chess". Zarkov competed in several of the ACM Chess Tournaments as well as the 1989 World Computer Chess Championships and I greatly enjoyed these events due to the friendly atmosphere and the presence of other programmers as nutty as myself. I made a lot of updates to Zarkov over the years.
In 2011 I started yet another complete rewrite and called the engine "Wasp". Initially Wasp used both a "mailbox" representation of the board with piece-lists as well as 64-bit integer "bitboards" to represent the chessboard and I experimented with different methods for generating attacks and moves until I eventually got comfortable with the bitboard approach and dropped the older mailbox code. I still work on Wasp pretty much every day as there are always interesting things to experiment with.
Many thanks to Frank Quisinsky for his enthusiastic support for many, many years. And to Max Harrell for testing Wasp.