Tux-Kart with Real-Life Powerups


First, there was the infamous PoolnudelschlagapparatPool Noodle Hitting Aparatus (PNHA). At Fusion Festival 2023, we had some pool noodles, some windshield wiper motors, and a wood construct to put a simple game into, so we did the only sensible thing to combine those things: You play Flappy Bird, and if you are too bad, you get hit with a pool noodle.

poolnoodle_hitting.gif

Afterwards, somebody mentioned that this would be great as an item in Mario Kart. As I knew there is an open-source clone of that - SuperTuxKart, an idea was born.

What it is

Two players, each in their own cart, play a local race of SuperTuxKart. When you collect an in-game item, instead of a koopa hitting the opponent on-screen, they get one of several physical effects at their seat: A fog burst hiding their vision, a water squirt making them flinch, or a harmless Poolnudelschlagapparat-thwack. Fixed installation, festival-proof, meant to be funny and immediate. Low latency, high chaos.

This installation relies on some customizations to the open-source codebase of SuperTuxKart such as adding custom items that notify when they are being used, as well as some custom physical hardware such as the water-squirter, an ethernet-connected scale to allow for Drinking-Tuxkart, and the ethernet-connected relay-boxes that are at the heart of actually triggering the items.

As I have brought this installation so far to Zugvögel Festival and Fusion Festival, two different sets of actual karts have been built, which stay at their respective sites, such that I only have to bring the guts to each of them.

How it works

So far, the added custom items are

  • The Poolnudelschlagapperat, which consists of a Pool Noodle connected to a windshield wiper motor, connected to a 12V supply
  • A water squirter connected to a 5L-canister, pointing at the opponent’s face
  • A fog machine connected to a pipe under the screen, such that it actually blocks the opponent’s screen
  • A physical button a few steps away that has to be pressed by the opponent before they can continue driving
  • Two car horns that honk when you overtake the opponent or use the in-game nitro
  • Two digital ethernet-connected scales that can hold a bottle for Drinking-Tuxkart that block the throttle when there’s no bottle ontop of them and only allow finishing the final lap if they register an empty bottle

The game itself runs on two Raspberry Pi 5s connected in a local network. Additionally, the relay-boxes as well as the scales are in that network. The custom items are additions to the C++ Code of the game. When one of them is used or the player drives into a Banana, an OSC-Message is sent to one of the boxes to trigger the respective item in the real world at the opponent (or yourself, in case of a Banana). There are several other Game events that can trigger actions, such as karts getting close or the players using Nitro making them honk at each other, or that the opponent gets the full dose of items when they lose the game. To make the game more suspenseful, the button-press-item only comes when one player is far behind the other, allowing for them to close up to the opponent why they scramble to get out of the car to hit the button.

So far, the game is played with store-bought USB-Steeringwheels. As these however are made of cheap plastic and generally not too happy with constantly receiving a healthy dose of water, I am currently working on custom steering wheels that can handle these things better.

If you have a great idea for another real-life item that can be used for the game, please don’t hesitate to hit me up or put it into the comments below!