Home * Engines * Wing

a WinBoard compliant chess engine by Stef Luijten written in C++, first released in October 2004 [1]. Initially influenced by Crafty [2], Wing was released as open source in December 2010 to demonstrate the basics of chess programming [3], shortly before Stef Luijten started his Winglet tutorial Writing a Chess Program in 99 Steps [4].
Forces acting on a wing [5]


Board Representation

Wing is a bitboard engine and determines sliding piece attacks using rotated bitboards. The inner six bits optimization yields to four lookup tables of 64x64x8 bytes, that is 32-KiB each or 1/8 MiB in total for ranks, files, diagonals and anti-diagonals. Interestingly, this attack table layout was preserved in Winglet, when line-wise occupied states were rotated on the fly by magic multiplication and shift right.


Wing performs a negamax alpha-beta search with conditional compiled (default on) PVS inside the iterative deepening framework without aspiration windows. The recent version has a always replace transposition table using Zobrist keys, while earlier versions used an additional depth-preferred replacement table [6]. As stated by its author in 2006, Wing has gained over 100 ELO points from adding history pruning [7], while the published sources lack LMR.


Move Ordering


See also

Forum Posts

External Links

Chess Engine




  1. ^ Wing from WBEC Ridderkerk
  2. ^ Chess Engine List from Ron Murawski's Computer-Chess Wiki
  3. ^ Index of /chess/engines/Jim Ablett/WING by Jim Ablett, hosted by Kirill Kryukov
  4. ^ Winglet, Writing a Chess Program in 99 Steps by Stef Luijten, hosted by the Wayback Machine
  5. ^ Forces acting on a wing, thrust, lift, drag, and weight, Image by Bartosz Kosiorek, Bird flight from Wikipedia, Wikimedia Commons
  6. ^ Hash table hit rate by Stef Luijten, Winboard Forum, November 16, 2005
  7. ^ Re: history pruning/ late move pruning by Stef Luijten, Winboard Forum, March 02, 2006

What links here?

Up one Level