From Chessprogramming wiki
Jump to: navigation, search

Home * Engines * Onno

Onno logo [1]

was a commercial chess engine developed by Onno Garms, written in C++ and released in May 2009. After announcing the end of Onno's development in March 2011 [2], Onno Garms revealed several ideas that made Onno stronger. The 32/64-bit Windows or 64-bit Linux executables communicate with a chess GUI via UCI.



Onno uses a fixed shift variation of Magic bitboards [3] to determine sliding piece attacks. Its static exchange evaluation considers alpha and beta [4]. Evaluation features were tuned automaticly performing a Genetic algorithm [5].


Onno applies an iterative search along with PVS, null move pruning and verification search. Onno further uses a technique dubbed bad pruning similar to razoring. The idea is to apply a reduced search with a reduced window - if the search at depth d-3 says that one loses more then a pawn, it does not search the move with the current depth d [6].

Parallel Search

The MP version of Onno searches in parallel utilizing YBWC by following Rainer Feldmann's 1993 Ph.D. thesis Game Tree Search on Massively Parallel Systems [7] using virtual messaging.

Node Types

Onno determines expected Node Types to perform IID not only at PV-nodes but also at expected Cut-nodes. Onno Garms gave following rules [8]

  • The root node is a PV-node.
  • The first child of a PV-node is a PV-node
  • The further children are searched by a scout search as CUT-nodes
  • PVS re-search is done as PV-node
  • The first node of bad pruning is a CUT-node
  • The node after a null move is a CUT-node
  • The first node of null move verification is a CUT-node
  • Internal iterative deepening does not change the node type
  • The first child of a CUT-node is an ALL-node
  • Further children of a CUT-node are CUT-nodes
  • Children of ALL-nodes are CUT-nodes

See also

Forum Posts



2011 ...

External Links

Chess Engine



  1. Onno Chess Software
  2. Development of Onno ends by Onno Garms, CCC, March 13, 2011
  3. Magic with fixed shift by Onno Garms, Winboard Forum, March 18, 2009
  4. SEE with alpha beta by Onno Garms, CCC, August 14, 2011
  5. Parameter tuning by Onno Garms, CCC, March 13, 2011
  6. Bad Pruning by Onno Garms, CCC, March 13, 2011
  7. Rainer Feldmann (1993). Game Tree Search on Massively Parallel Systems. Ph.D. thesis
  8. Re: On internal iterative deeping by Onno Garms, CCC, March 17, 2011

Up one level