|Tom Kerrigan's Home Page|
Stobor is a chess engine I've been working on (off and on) since 1993.
The name "Stobor" comes from a science fiction novel by Robert Heinlein called Tunnel in the Sky. Before the main characters teleport to an unknown planet, they are told to "watch out for stobor."
Stobor is also "robots" spelled backwards. I didn't realize that until somebody pointed it out to me two years after I chose the name.
Here are Stobor's basic design characteristics:
Board representation: 0x88
Move ordering: hash table, MVV/LVA, killer (one), history
Forward pruning: null move (R=2)
Quiescence search: captures
Hash table: Thompson, not used in quiescence search
Parallel search: ABDADA
Speed: ~5.8M nodes per second (single thread, Apple M1)
One unique thing about Stobor is that it computes attack information at the beginning of its evaluation function. The information is encoded in such a way that it's trivial to determine how many pieces are attacking (or defending) a particular square or set of squares, which pieces they are, what types of pieces they are, and how many there are of each type. (This includes x-ray attacks.) To my knowledge, Stobor is the only chess engine with this amount of attack information readily available for positional evaluation.
Tournament: 15th World Microcomputer Championship
Location: Paris, France
Date: October 1997
Result: 24th place (out of 34)
Tournament: 6th International Paderborn Championship
Location: Paderborn, Germany
Date: February 1997
Result: 8th place (out of 16)
Tournament: 13th World Microcomputer Championship
Location: Paderborn, Germany
Date: October 1995
Result: 25th place (out of 34)
Stobor was the highest-rated bullet chess player on ICC (Internet Chess Club) for a few weeks in 1996.
If you're interested in licensing Stobor for a commercial project, please send me an e-mail:
I started Stobor (and chess programming) in 1993.
The first information I found on the subject was a series of articles published in BYTE magazine in 1978: Creating a Chess Player, by Peter Frey and Larry Atkin. The articles contained the source code for a chess engine called "Chess 0.5," which was presumably related to the famous CHESS engine from Northwestern University. Thus, the first version of Stobor was inspired by these engines. It used bitboards, which was common for supercomputers but unusual for personal computers at the time.
Shortly thereafter, I found out about ICS (the Internet Chess Server, since renamed to the Internet Chess Club). I spent a lot of time on ICS talking with other chess programmers, primarily Bruce Moreland. Bruce is awesome and he taught me a lot about chess programming. I rewrote Stobor to use precomputed attack tables for move generation, like GNU Chess 3 and Bruce's engine Ferret.
In 1999, I rewrote Stobor to use 0x88 for move generation.
In 2002, I bought a used dual-CPU computer with two Pentium II CPUs for $100 and developed the first version of my parallel search, based on the Young Brothers Wait Concept.
In 2004, I rewrote Stobor's evaluation function to generate and use the attack data described in the "Design" section above.
In 2016, I bought a used Dell Precision T5610 workstation, installed two used Intel Xeon E5-2670 CPUs, and rewrote my parallel search code. It's now based on ABDADA, and runs ~9 times faster on 16 cores.