Daydreamer

Home * Engines * Daydreamer



Daydreamer, (DayDreamer) an UCI compliant open source chess engine by Aaron Becker, written in C, and the 2.0 pre-release in Rust , also able to play Chess960. Developed since early 2009, the program was named Daydreamer after a bug in an early version caused it to occasionally follow up very strong play with bizarre blunders, as though it had lost its focus on the game and its mind was wandering aimlessly. First released in August 2009, it initially used Tomasz Michniewski's simplified evaluation function, while subsequent versions were rapidly improving since mid 2010. DayDreamer played the CCT12 and ACCA 2010 online tournaments.

=Description=

Board Representation
Daydreamer prior to 2.0 pre-release used piece-lists and a 16x16 vector attacks board around a 0x88 board inside its middle 16x8 slots. Move generation of pieces is unrolled over directions, capture generation of sliding pieces for quiescence uses the leading efficient blocker loop, i.e. for one vertical direction : for (to=from+16; pos->board[to]==EMPTY; to+=16) {} if (can_capture(piece, pos->board[to])) { moves = add_move(pos, create_move(from, to, piece, pos->board[to]), moves); } Daydreamer 2.0 is a not finished rewrite in Rust, with the significant change to bitboards and the introduction of [[Move Generation#Staged|staged move generation].

Search
The search is PVS alpha-beta with transposition table, IID, null move pruning combined with mate threat extensions, razoring, futility pruning and late move reductions inside an iterative deepening framework with aspiration windows and floating point fractional ply depth, the latter credited to Ivan Bonkin and his Bison program.

Opening Book
Daydreamer supports PolyGlot and ctg opening books, the huffman codes and ctg move decoding based on Stephan Vermeire's ctg code for Brutus.

Endgame Tablebases
Daydreamer is able to probe Gaviota Tablebases as well as Scorpio Bitbases.

Evaluation
Daydreamer's evaluation might be lazy with respect to bounds and margins based on cached material, considering imbalances, and piece-square table scores only. Otherwise, supported by a pawn hash table, it takes pawn structure, mobility, king safety and various other terms into account, speculatively aggregating middle- and endgame scores, which were finally tapered by a range of 24 game phases.

=Selected Games= ACCA 2010, round 6, DayDreamer - Gaviota [Event "ACCA 2010"] [Site "FICS, San Jose, California USA"] [Date "2010.11.07"] [Round "6"] [White "DayDreamer"] [Black "Gaviota"] [Result "1-0"]

1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Ne7 7.Qg4 O-O 8.Bd3 Nbc6 9.Nf3 f5 10.exf6 Rxf6 11.Qh5 h6 12.O-O c4 13.Be2 Qa5 14.Bd2 Bd7 15.Ne5 Be8 16.Qh4 Nxe5 17.dxe5 Nf5 18.Qh3 Rf8 19.a4 Bxa4 20.g4 Nd4 21.Bd1 b5 22.Kh1 Rf7 23.g5 Nf5 24.gxh6 Qc7 25.Bh5 Re7 26.Bg6 Bxc2 27.Rg1 Qxe5 28.Bh7+ Kf8 29.Rae1 Be4+ 30.f3 Ke8 31.fxe4 dxe4 32.hxg7 Kd7 33.g8=Q Rxg8 34.Rxg8 Kc7 35.Ra1 Kb7 36.Bxf5 Qxf5 37.Qh8 a5 38.Rg5 Qf3+ 39.Kg1 e5 40.Qd8 Qf6 41.Qxa5 Qb6+ 42.Qxb6+ Kxb6 43.Be3+ Kc6 44.Ra6+ Kd7 45.Bc5 e3 46.Bxe7 1-0

=See also=
 * Dreamer

=Forum Posts=

2009

 * Announcing Daydreamer 1.0 by Aaron Becker, CCC, August 16, 2009
 * Daydreamer 1.01 : 2037 by Patrick Buchmann, CCC, August 24, 2009
 * Announcing Daydreamer 1.5 by Aaron Becker, CCC, September 04, 2009
 * Daydreamer 1.51 : 2272 by Patrick Buchmann, CCC, November 14, 2009
 * Announcing Daydreamer 1.6 by Aaron Becker, CCC, December 22, 2009

2010 ...

 * Daydreamer 1.61: 2361 by Patrick Buchmann, CCC, January 02, 2010
 * Test tournament starts: Gaviota, Daydreamer, Greko, Atak by Harun Taner, CCC, January 10, 2010 » Gaviota, Daydreamer, GreKo, Atak
 * Daydreamer 1.7 by Aaron Becker, CCC, March 19, 2010
 * Daydreamer 1.7 : 2519 by Patrick Buchmann, CCC, March 22, 2010
 * Daydreamer 1.75 by Aaron Becker, CCC, April 02, 2010
 * Daydreamer 1.75 : 2569 by Patrick Buchmann, CCC, April 05, 2010
 * Compiling Daydreamer in Visual Studio by Gregory Strong, CCC, May 01, 2010
 * Developments of the last two years by Aaron Becker, CCC, March 02, 2013
 * Re: copy/make vs make/unmake by Aaron Becker, CCC, January 07, 2014 » Copy-Make, Make Move, Unmake Move

2015 ...

 * Daydreamer 2.0? by CMCanavessi, CCC, October 14, 2018
 * Re: Daydreamer 2.0? by Graham Banks, CCC, October 14, 2018

=External Links=

Chess Engine

 * GitHub - AaronBecker/daydreamer
 * Downloads · AaronBecker/daydreamer · GitHub


 * Index of /chess/engines/Jim Ablett/DAYDREAMER compiled by Jim Ablett, hosted by Kirill Kryukov
 * Index of /chess/engines/Jim Ablett/+++ LINUX ENGINES ++/32 BIT/daydreamer compiled by Jim Ablett, hosted by Kirill Kryukov


 * Daydreamer 1.75 64-bit in CCRL 40/40

Misc

 * Daydreamer (disambiguation) from Wikipedia
 * Daydream from Wikipedia
 * Broken Brass Ensemble - Daydream, October 2013, YouTube Video

=References= Up one level