SuperTuxKart is a fun free kart racing game with online and LAN multiplayer modes as well as single-player story-mode, time trials, a soccer mode and Easter Egg hunt. It's quite fun.
It begun as a fork of TuxKart in 2006 and it has been gradually improving since that time. Version 1.0 released in April, 2019 was the first version with online multiplayer features.
Graphics and gameplay
The game uses modern OpenGL features and looks really good at the higher graphics settings. The higher settings do require a powerful modern graphics card while the lower settings are kind enough to let you play on older laptops with a integrated graphics card.
The gameplay is similar to most other racing games like it. You can pick up cans of Nitro for a boost and there's packages with items you can use to attack other players or defend yourself from them.
The karts themselves have a free software theme. You can be Tux, Pidgin, BSD and many other mascots from free software projects.
The story mode
The story mode lets you choose between a series of tracks where you are against AI carts. There's three difficulties, bronze, silver or gold. The racing speed is slow on bronze and fast on silver. There's also a SuperTux difficulty which isn't used in Story Mode but you do need to gain a lot of points in Story Mode to unlock it so you can play races and other game-modes at that difficulty. Winning the various challenges in story mode unlocks more karts and new challenges. Doing so is kind of optional, there is always the option of editing
.config/supertuxkart/config-0.10/players.xml if you'd like to unlock everything without playing Story Mode more than once (which you need to do to create that file).
Getting the game
Some version of SuperTuxKart is available in all GNU/Linux distributions repositories and there's also versions for Windows, MacOS and Android. You can click here to install it on Ubuntu. Binaries and source can be downloaded from supertuxkart.net/Download.
Compiling SuperTuxKart for better performance (yes, really)
While compiling yourself with fancy CFLAGS tends to give placebo performance increases there's actually good reason to compile SuperTuxKart yourself: CMAKE defaults to the legacy libGL.so library when both the legacy library and the newer OpenGL and GLX libraries are present. The package you get on Ubuntu is compiled to use libGL.so.
Requirements for compiling on Ubuntu are:
sudo apt-get install build-essential cmake libbluetooth-dev \ libcurl4-openssl-dev libenet-dev libfreetype6-dev libfribidi-dev \ libgl1-mesa-dev libglew-dev libjpeg-dev libogg-dev libopenal-dev libpng-dev \ libssl-dev libvorbis-dev libxrandr-dev libx11-dev nettle-dev pkg-config zlib1g-dev
And on Fedora they are:
sudo dnf install @development-tools cmake bluez-libs-devel \ openssl-devel libcurl-devel freetype-devel fribidi-devel mesa-libGL-devel \ libjpeg-turbo-devel libogg-devel openal-soft-devel libpng-devel \ libvorbis-devel libXrandr-devel libGLEW nettle-devel pkgconf zlib-devel
Now you can grab the source and graphics assets. this will take some time.
mkdir supertuxkart-src ; cd supertuxkart-src git clone https://github.com/supertuxkart/stk-code stk-code svn co https://svn.code.sf.net/p/supertuxkart/code/stk-assets stk-assets
Now it's time to configure it.
cd stk-code mkdir cmake_build cd cmake_build cmake -DBUILD_RECORDER=off -DOpenGL_GL_PREFERENCE=GLVND ..
-DOpenGL_GL_PREFERENCE=GLVND option to ensure you're not using the legacy OpenGl library. Now it is time to compile by running
and once that's done
sudo make install