Skip to content

An Rust-based engine (or "bot") to optimize downstacking -- a maximally defensive mode of playing Tetris competitively. Currently capable of surpassing top players.

License

Notifications You must be signed in to change notification settings

blockfish/blockfish

Repository files navigation

Blockfish

Blockfish is a bot dedicated to Cheese Race, a niche game mode where one must clear 100 lines of garbage with randomly placed gaps ("cheese"). The goal of cheese race is to clear all 100 lines using as few tetromino's as possible. Blockfish is meant to be a practice tool for evaluating placements during a cheese race, spotting mistakes, and helping the user get better at recognizing more efficient ways of utilizing every piece.

Currently, Blockfish tends to outperform even highly skilled players, and has already beaten the world record for least-pieces 100L cheese race. However, there are still improvements to be made to the underlying algorithms. We hope to see Blockfish reaching before-unheard piece counts as low as 160 or 150.

screenshot of the Blockfish client

Blockfish is under development by iitalics, with lots of help from cheese race legend mystery in designing and fine-tuning the algorithms that make it perform so well.

Getting Blockfish

Blockfish is still in early development, but latest builds of the Blockfish GUI can be downloaded from the public GitHub repository.

Controls and theme configuration

The Blockfish client looks in ./config/controls.json for your personal controls configuration, and ./config/themes.json for the theme. The default controls file can be found in support/default-controls.json; edit this file to specify your own controls.

There are example themes in support/themes that you may use to change the colors in the client. See support/themes/README.md for more information.

Compiling Blockfish

Blockfish is written primarily in Rust. You can build it with the cargo tool.

  • Requires: rust version 1.48

  • Requires SDL2 and SDL2_ttf dev libraries.

    On MacOS, the dev libraries can be installed with homebrew. Once homebrew has been installed, the following commands are used to installed the libraries

    brew install sdl2
    brew install sld2_ttf

The following command should be used to build the client:

cargo build --manifest-path blockfish-client/Cargo.toml --release --features msgbox

Note that on Windows you must have the .LIB files for SDL2 and SDL2_ttf placed in the same directory that you run this command in. Running Blockfish requires the associated .DLL files for these depencies.

About

An Rust-based engine (or "bot") to optimize downstacking -- a maximally defensive mode of playing Tetris competitively. Currently capable of surpassing top players.

Resources

License

Stars

Watchers

Forks

Packages

No packages published