Hi, and welcome to Bubble's webpage, my chess engine. I'm just going to use this as a place to release new versions of Bubble and update the changelog, so it's probably going to remain bland...
- Make the code compilable under VC++ and correct all bugs that show up:
- Black pawns now capture white pieces on quiescence.
- Kings are special-cased in move generation (but not on capture move generation!)
- Clean up to avoid black/white specific code.
- Support 'edit' mode in xboard, per request on CCC. (Sorry not to bump the version number.)
- New evaluation: add pawn structure, rudimentary endgame knowledge (king to the center).
- Speed up of 50% by not sorting the move lists.
- Move generation sped up by a factor of three.
- Fixed bug relating to pawn promotions in Winboard/UCI.
- Fixed serious hash bug, especially noticeable on endgames.
- Don't print anything within the first second on UCI.
- Send output when root move changes.
I'm doing the next ones from memory, so bear with me:
- Added transposition tables
Bubble 1.0 (was ffao chess 2.0)
- ffao chess 1.0 used vectors and such dynamic features extensively, which brought the speed way down. It's not impossible to write fast code in C++, but I decided not to give myself the chance and rewrite ffao chess 1.0 in C, which sped up the program by 4x.
ffao chess 1.0
- A complete chess program in C++.
Unnamed (backnamed to ffao chess 0.0)
Plans for the future:
- Basically, a perft in Python, with a primitive search framework. Could evaluate material only and alpha-beta only searched 2 plies maximum (you can guess what this leads to... Na3 Nb1 Na3 Nb1, in a firstchess sort of way).
- Quite old, but I took a long break after finishing it...
So, Bubble has played its first tournament. And, while it was severely beaten up, I did fulfill my goals by releasing it. If before I had no idea what to put in my evaluation function (http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=50173), now I at least have something pretty concrete to look at:
Bubble x ZCT -> ZCT attacks with one queen, two rooks and one pawn. Clearly, any decent king safety evaluation should have evaded such a position like the plague.
Bubble x Firefly, Bubble x Bison -> a passed pawn advances too far.
So, I believe taking those two factors into account should improve Bubble's play. We'll see...