DayDreamer

an UCI compliant open source chess engine by Aaron Becker, written in C ([|C99]) with Windows, Linux, and Mac OS binaries available, 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. || toc =Description=
 * Home * Engines * Daydreamer**
 * [[image:Daydreaming_Gentleman.jpg link="http://en.wikipedia.org/wiki/File:Daydreaming_Gentleman.jpg"]] ||~ || **Daydreamer**, (DayDreamer)
 * A daydreaming gentleman ||~ ||^ ||

Board Representation
Daydreamer uses 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 : code format="cpp" 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); } code

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 code [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 code

=See also=
 * Dreamer
 * Thought

=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

=External Links=

Chess Engine
> [|Downloads · AaronBecker/daydreamer · GitHub] > [|Index of /chess/engines/Jim Ablett/+++ LINUX ENGINES ++/32 BIT/daydreamer] compiled by Jim Ablett, hosted by Kirill Kryukov
 * [|AaronBecker/daydreamer · GitHub]
 * [|Index of /chess/engines/Jim Ablett/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]

=References= =What links here?= include page="Daydreamer" component="backlinks" limit="40"
 * Up one level**