Royal Blocks

Royal Blocks is a multiplayer reinterpretation of the classic Tetris game, featuring both a graphical and a terminal-based client interface, along with a server that handles matches and communication between players.

Install the Game

For Windows

Download the latest Windows installer here:
👉 RoyalBlocks_Installer.exe

This setup installs:

You can choose which components to launch after setup.

Requires Windows 10 or higher


For Linux/macOS

Download the latest source code here:
👉 Source Code (.zip)

Then follow the instructions below to build and run the project manually.

For Arch Linux/Manjaro, you can install the program with yay or paru:

yay -S royal-blocks

or

paru -S royal-blocks

Build the project

Dependencies

The project requires the installation of the following programs and libraries (the commands are for Debian-based systems):


Installing Dependencies on Windows

To easily install all required dependencies on Windows, we recommend using MinGW to have access to the g++ compiler. Don't forget to install make, cmake, Git and Qt5 with MinGW in order to build the project:

pacman -S mingw-w64-x86_64-make mingw-w64-x86_64-cmake mingw-w64-x86_64-git mingw-w64-x86_64-qt5

Other libraries, such as ftxui and nlohmann, are also required for compilation, but they are automatically included via CMake using the FetchContent feature.

The project also requires:

Compilation

The project can be compiled in Release or Debug :

make release

make debug

Running the Game

Launching the Program

To launch Royal Blocks, you can choose between two interfaces:

To start the server, run:

./royal-blocks-server

Choosing the IP and Port

To establish communication between the client and the server:

Server

You can specify a custom port as an argument when launching the server:

./royal-blocks-server <port>

If no argument is provided, the server will read the SERVER_PORT environment variable. If the variable is not set, the default port 1234 will be used.

Client

In both the graphical and terminal interfaces, you can modify the server's IP and port directly. These settings will be saved in the configuration file:

If no configuration file exists, a default one will be automatically created using:

Important Information About Terminal Display

If you can't see all game information on the screen, you may need to zoom out in your terminal window.

Royal Blocks Controls

Here is a list of the different keys used to move and rotate the pieces in the game:

License

This project is licensed under the GNU GPL v3.

License and Third-Party Software

This project uses several open source components.
Please see LICENSESTHIRDPARTY.md for details.