|Home » Chess » Stobor |
|Stobor is the chess program I've been working on since 1993. It's named after the bogeyman character in Robert Heinlein's book, Tunnel in the Sky. Stobor is also "Robots" spelled backwards but I didn't realize that until long after I had named it.|
Stobor's design is typical for a strong chess program (PVS, null move R=2, Thompson-style transposition tables, etc.) with the following relatively unique characteristics:
0x88 board representation
This allows me to have good generate/make/unmake performance without using any precomputed or incrementally updated tables. It's very simple and works well in low-memory, non-superscalar (i.e., embedded) applications, especially when compared with bitboards. The downside is that I don't have bitboard attack information, but I do have attack tables...
Attack tables generated during piece evaluation
I use two 32-bit integers per square to store attack information: which pieces are attacking the square and how many of each type. This includes x-ray attacks. I can simply OR the data together to find which pieces are attacking a set of squares. This level of detail is expensive or impossible to get from bitboards.
Parallel search (Young Brothers Wait)
I found a way to implement YBW with only a few hundred lines of code. It's almost completely separate from the rest of Stobor. It yields a ~3x speedup on a 4-core system.
I've licensed Stobor to five different companies for commercial projects. I can give examples upon request. The code has proven to be very portable and easy to integrate.
If you're interested in licensing Stobor, send me an e-mail at email@example.com.
For a few weeks in 1996, Stobor was the top-rated bullet chess player on the Internet Chess Club server and in the top 10 for blitz chess.
- 15th World Microcomputer Championship - Paris, France - October 1997
Result: 24th (out of 34)
- 6th International Paderborn Championship - Paderborn, Germany - February 1997
Result: 8th (out of 16)
- 13th World Microcomputer Championship - Paderborn, Germany - October 1995
Result: 25th (out of 34)
Due to other demands on my time, I haven't been active in tournaments, ICC, or CCC since ~1998.
The first version of Stobor was mainly influenced by a paper on CHESS 4.0. It used attack bitboards. It was slow and never very stable and I rewrote it at the beginning of 1995 to use precomputed move tables, like Ferret and GNU Chess 3. I rewrote most of it again in 1999 to use 0x88 and implemented parallel search in 2003. Stobor and I owe a lot to Bruce Moreland.