Version 2.0 by Fabien Letouzey – 2017-11-10

After a few years in computer draughts, I am back to chess for a little while. I see too many draws at top level, and am afraid that it will be too late in a couple of years. Big hardware and large opening books are also not helping IMO.

So I’m here to announce Senpai 2.0. The code looks all different because I started from my draughts program, but it’s actually still Senpai inside. I prefer having a consistent codebase for multiple games (also Shogi and Othello).

As a rewrite it’s hard to list changes, but here is an attempt:

  • Chess960 is baked in, not an add-on; Senpai 2 plays chess only as a special case!
  • search: restricted singular extensions
  • search: additional reduction/pruning of “losing” moves (SEE < 0)
  • eval: tempo bonus (it seems I forgot in 1.0 …)
  • eval: “space” (glorified pawn-chain PST); this changes playing style a lot
  • eval: scoring by logistic regression; this gives me more freedom for eval features
  • board: copy/make (customary in games with fewer piece types than chess)
  • board: optional PEXT bitboards (BMI2)
  • As I recall, no single change brought more than 10 Elo. So it’s more a sum of small (IMO) things.

This release has been rushed a little, so it’s still lacking UCI options and multi-PV; sorry about that.


Version 1.0 by Fabien Letouzey – 2014-03-17

I have recently regained interest in computer chess. By a coincidence (or fate?), Joachim Rang and Ryan Benitez are also active once again.

I have been working on a new GPL engine: Senpai.

The highlights compared to Fruit are:

  • from-scratch engine (no Fruit code)
  • SMP search
  • plain bitboards (I will implement magic bitboards later)
  • more precise mobility (safety, centre weights)
  • evaluation of tactical moves: captures and checks
  • late-move pruning (last few plies)
  • more aggressive futility pruning

Have fun with Senpai!

Fabien Letouzey