Nullmover

Author: Michel Langeveld

Co-author: Jos Timmer

Date: 21-01-2004

I always wanted to write a chessprogram and i n november 2001 I started to give it a try during winter. After one month I had something playing and experienced how much fun it is to play against your own child. A few weeks later my child beated me and felt me really stupid.

One year later I made it again stronger. Nullmover started to play in WBEC and CCT.

Begin 2003 Jos Timmer started to help me with implementing tablebases, attacktables and pondering.

Nullmover is written in C/C++, written from scratch, winboard compatible and is sometimes online in ICC The source is not public available. 

Playing strength

The playing strength of Nullmover depends on hardware and used timecontrol. But on ICC I play 2200 elo standard games (FM Strength) and 2400 elo in Blitz games (IM/GM Strength). There are strong human players that have big difficulties to play against Nullmover and there are weak humans who knows exactly how to deal with a computer that score more as 50%.

The anti-GM trick is mainly: close the game, trade queens as fast as you can, make a strategic games, castle opposide of the computer, don't fight in tactically but make a strategic games. Try to come into an endgame. Nullmover is quiet weak in the endgame, except if only 5 pieces are in board then it plays equal as GOD.

Techniques

impemented
- PVS
- Order quiet moves with PSQ (Piece Square Tables)
- Order captures with MVC/LVV
- Iterative deepening on root level
- Aspiration Windows on root level
- One big hashtables WITH age and a smaller hashtable one for pawns 
- Seperate evaluation for opening, middlegame, endgame

- Nullmove pruning technique
- Openingsbook

What does nullmover not have?

- Mobility
- Bitboards
- SEE (Static Exchange Evaluation)
- History heuristic
- Permanent Brain (it does not work correctly)
- Pawn evalation with backwards and weak pawns
- Learning (openingbook and positional)
- GM Strength evaluation
- Piecelists
- Store moves as an int.

Games

First won game

Although this game is an ugly game.It's  the first game Nullmover won against a human.
It's a game played on ICC and I'm was at that moment very happy I could
survive 34 moves against a human player.

[Event "ICC 1 0 u"]
[Site "Internet Chess Club"]
[Date "2001.11.16"]
[White "guest999"]
[Black "Nullmover"]
[Result "0-1"]

1. e4 f5 2. exf5 e6 3. Qh5+ Ke7 4. d4 exf5 5. Qxf5 Kd6 6. Qe5+ Kc6 7. c4 Qe7
8. Qxe7 Nxe7 9. Nc3 Ng6 10. g3 d5 11. Bg2 Nd7 12. Bxd5+ Kb6 13. Na4+ Ka5 14. Bd2+ Bb4 15. a3 Bxd2+ 16. Kxd2 Ndf8 17. Kc3 h5 18. b4+ Ka6 19. b5+ Ka5 20. Kb3 Bd7 21. Ne2 Be6 22. Nec3 a6 23. Bxe6 axb5 24. cxb5 Nxe6 25. Nc5 Nxc5+ 26. dxc5 Raf8 27. a4 Rf4 28. b6 cxb6 29. cxb6 Rf5 30. Nb5 Nf8 31. Nc7 Rb5+ 32. axb5+ Kxb6 33. Kb4 Nd7 34. Na8+ Rxa8 {White forfeits on time} 0-1
 

Game against highest rated human,

Turzo (2695) - Nullmover (1653)
ICS unrated blitz match chessclub.com, 25.11.2001

1.d4 d5 2.c4 dxc4 3.e3 b5 4.a4 c6 5.b3 cxb3 6.axb5 Be6 7.bxc6 Nxc6 8.Bb5 Qd5 9.Nc3 Qxg2 10.d5 0-0-0 11.Bxc6 Qxh1 12.Qxb3 Qxg1+ 13.Ke2 Bg4+ 14.Kd3 Qf1+ 15.Kc2 Qxf2+ 16.Bd2 Rd6 17.Rxa7 Bf5+ 18.Kc1 Qg1+ 19.Kb2 Rxc6 20.dxc6 Qxh2 21.Qb7+ Kd8 22.Ra8+ Qb8 23.Rxb8+ Bc8 24.Qxc8# Nullmover checkmated 1-0

Won game agains the highest rated human

nullmover (2392) - rservat (2405)
ICS rated blitz match chessclub.com, 16.12.2001

1.e4 d6 2.d4 Nf6 3.Nc3 g6 4.Nf3 Bg7 5.Bb5+ c6 6.Bd3 0-0 7.0-0 Nbd7 8.Re1 e5 9.a4 Qe7 10.d5 cxd5 11.exd5 Nc5 12.b4 Nxd3 13.Qxd3 Bf5 14.Qe2 Rac8 15.Ra3 Qc7 16.Bg5 a6 17.h3 Qc4 18.Rb3 b5 19.axb5 axb5 20.Bxf6 Bxf6 21.Qd1 Rfe8 22.g4 Bd7 23.Nd2 Qd4 24.Nde4 Bh4 25.Qe2 Qb6 26.g5 Bxh3 27.Nxb5 Bf5 28.Nbxd6 Bxe4 29.Nxe4 Kg7 30.Rh3 Qxb4 31.c3 Rc4 32.cxb4 rservat resigns 1-0

Nullmover can beat currently against all known chess engines. Type in ICC 'search nullmover' to see what games it played.

Speed of Nullmover

From the intial position I get the following:

Ply     : 10
Score   : +0.11
Time    : 12.16 sec
Node    : 2067056
Nps     : 170knps
Line    : 1.e4 e5 2.Bc4 Nf6 3.d3 Nc6 4.Nf3 d5 5.exd5 Nxd5

Crafty needs 9 seconds for this on the same hardware but has a nps of almost twice as this, a much more evaluation terms and more extensions.