Challenge yourself with this simple, yet addictive strategy game, where you need to flood-it as efficiently as you can!
Flood It is a game with the simple premise of flooding the entire board with one color in the least amount of moves possible. It's based on the original Flood-It! by Lab Pixies.
You can install Flood It in many ways, here are some listed:
1. Official Flatpak package:
2. Alternative package distributions:
Warning
Although some of the methods listed here may be maintained by the Flood It maintainers, these methods are not officially supported and issues related to packaging in them should be reported outside this project's bug tracker.
Get in from your distribution's package manager:
3. Install from source:
If you don't find any other options appealing to you, then you can always compile code on your machine from source and install it that way. For more information, check out How to build section.
- Read GNOME Code of Conduct
- Fork this repository: https://github.com/tfuxu/floodit/fork
- Clone your fork:
git clone https://github.com/👁️you👁️/floodit.git - Create a local branch with your changes:
git checkout -b new-thingies - When changing stuff in Go, use
go fmtto format your code - Commit your changes:
git commit - Push the changes to fork:
git push origin new-thingies - Create a new pull request
This is the easiest way of building Flood It if you want to build it as a Flatpak package. Highly recommended, but probably not for everyone, as GNOME Builder and Flatpak can be quite resource hungry.
- Download GNOME Builder.
- In Builder, click the Clone Repository button at the bottom, using
https://github.com/tfuxu/floodit.gitas the URL. - Click the Build button at the top once the project is loaded.
This is a little bit more advanced way of building Flatpak packages, but if you don't want or can't have GNOME Builder, then this method would be your best bet.
- Flatpak Builder
flatpak-builder - GNOME SDK runtime
org.gnome.Sdk//50 - GNOME Platform runtime
org.gnome.Platform//50
Install required runtimes:
flatpak install org.gnome.Sdk//50 org.gnome.Platform//50git clone https://github.com/tfuxu/floodit.git
cd floodit
flatpak-builder --install --user --force-clean repo/ build-aux/flatpak/io.github.tfuxu.floodit.jsongit clone https://github.com/tfuxu/floodit.git
cd floodit
flatpak-builder --install --system --force-clean repo/ build-aux/flatpak/io.github.tfuxu.floodit.jsonIf you don't want to install Flood It as a Flatpak package, you can build it using Meson build system. Meson is used in majority of GTK apps and enforced on GNOME core apps, so learning how to use it would be pretty handy if you plan to contribute to other GTK projects.
The following packages are required to build this project:
- Golang >= 1.26
go - Blueprint
blueprint-compiler - Gtk4 >= 4.18
gtk4 - Libadwaita >= 1.8
libadwaita - Meson
meson - Ninja
ninja-build
git clone https://github.com/tfuxu/floodit.git
cd floodit
meson setup builddir
meson configure builddir -Dprefix=/usr/local
ninja -C builddir installgit clone https://github.com/tfuxu/floodit.git
cd floodit
meson setup builddir
meson configure builddir -Dprefix="$(pwd)/builddir" -Dbuildtype=debug
ninja -C builddir install
meson devenv -C builddir ./bin/flooditNote
During testing and development, as a convenience, you can use the local.sh script to quickly rebuild local builds.

I've got an idea to create Flood It after playing Flood on SerenityOS.
Some parts of the backend code used to generate and flood board are based on code from Open Flood and The FloodIt! game example made by Otfried Cheong.
I also read explanations of Flood fill algorithm implementations to better understand the process of board filling in game.
The general structure of this project is based on my Gotk4 Go + Meson project template.
