Skip to content
ppigazzini edited this page May 1, 2017 · 46 revisions

Welcome to the Multi Variant Stockfish Wiki!

Multi Variant Stockfish is a Stockfish fork specialized to play chess and some chess variants:

Multi Variant Stockfish is currently used in these lichess.org projects:

If you are interested to play only Chess and/or Chess960, or to play Chess and/or Chess960 at maximum strength level possible, simply use Official Stockfish. Multi Variant Stockfish, though using the same code base for Chess and Chess960, is a bit slower.

Multi Variant Stockfish: goal and workflow

The project has the goal to develop and to improve the playing strength of some chess variants not already played natively by Stockfish.

Each patch, with a new idea or an improvement for a variant, is tested with Multi Variant Fishtest, in order to merge only code statistically proved to improve the variant playing strength.

Once at month the maintainers will merge the Official Stockfish new patches to keep up to date also the playing strength for Chess and Chess960, and will start, for each variant, a regression test:

  • to measure the improvement of the playing strength of the variant: usually the improvement is due to the patches tested with Multi Variant Fishtest, though also the upstream patches could give some improvement from time to time.
  • to spot up some upstream patches that could be a big regression for the variant.

How Multi Variant Fishtest works

Multi Variant Fishtest, a fork of Fishtest, is a distributed tasks queue for testing new ideas and improvements for multi variant chess engine through self playing. The main instance for Multi Variant Stockfish is:

http://35.161.250.236:6543/tests

Developers submit patches with new ideas and improvements, CPU contributors install a fishtest worker on their computers to play some chess games in the background to help the developers testing the patches.

The fishtest worker:

  • automatically connects to the server to download: a chess opening book, the cutechess-cli chess game manager and the chess engine sources (for the actual master and for the patch with the new idea) that will be compiled according to the type of worker platform.
  • starts a batch of games using cutechess-cli.
  • uploads the games results on the server.

The fishtest server:

  • provides several test templates to generate tests for the patches.
  • manages the queue of the tests according customizable priorities.
  • computes several probabilistic values from the game results sent by the workers.
  • updates and publishes the results of ongoing tests.
  • stops tests according some bounds and publishes the final tests results.

How to contribute

If you are a developer, fork Multi Variant Stockfish and contribute some patches for some variants, following the instructions in Creating my first test to submit tests. You can also contribute to improve Multi Variant Fishtest, to test a patch locally on your computer simply follow Installing a development multi variant fishtest server on Ubuntu.

Even if you don't know programming yet, you can help the Multi Variant Stockfish developers to improve the chess engine by connecting your computer to the Multi Variant Fishtest following these instructions: