Winner of the UIST 2013 Student Innovation Contest People's Award! (Oct 10, 2013).
WaterPong is our entry for the UIST 2013 Student Innovation Contest. In honor of PONG, it's a two-player mashup of ping pong and air hockey - just with water pumps! You play at an interactive, rear-projected, computer-vision-enhanced, water-flooded table (of course!). Shoot water from 4 pumps by hitting humongous arcade buttons! Score goals by propelling the ball into your opponent's end zone! Pick up power-ups for special boosts! | Website
Hesham Omran - idea, coding, hardware
Ignacio Avellino - coding, hardware
Jan Zimmermann - hardware support
Special thanks to Dr. Thorsten Karrer, Prof. Jan Borchers and all beta testers in the lab for their feedback!
An Arduino microcontroller board detects button presses, tells the PumpSpark controller to shoot water from the pumps, and activates power-ups by lighting up buttons and changing pump behavior. This is a separate, autonomous system, which means that the basic game will continue to work even if the attached laptop, projector, or camera fail - important for robust behavior in the frenzy of a live non-stop demo night with hundreds of players and spectators! People just continued playing even when we decided to restart the software running on the laptop.
Runs on a MacBook Pro
Keeps track of each player's score and ammo
Informs the Arduino which player is holding which power-up
Maps the ball coordinates from the camera perspective to the game field projected on the table
Vision Ball Tracker
Color and contour tracking using OpenCV.
Each player uses four buttons to activate water pumps to push a ball away from their own end zone and towards their opponent's. Each player has an ammo bar and a score displayed on the table in front of him. Ammo decreases each time the player shoots water from a pump; pushing the ball beyond the other player's end zone line increases your score.
The game ends when one player scores ten goals, or when a player runs out of ammo.
From time to time, power-ups appear at random positions on the playing field. If the ball passes over a power-up, the player who was driving the ball over the power-up with his water jets (i.e., the player the ball was moving away from) gets it. Ball movement direction is determined using computer vision.
Currently there are 3 exciting power-ups:
Southern Californian Lazy Turtle: disables all pumps --- an offensive power-up that disables all of your opponent's buttons for a short period of time, leaving his end zone undefended. The perfect moment for scoring a goal!
Neptune's Force --- activates all four pumps: a defensive power-up that activates all of you four pumps simultaneously at full power. No ball is getting through a barrier this strong!
Dory the Confused Fish: an offensive power-up that shuffles your opponent's buttons. While he struggles to figure out which button now activates which pump, it's your time to score big!
Game Interaction Rules
Each player has four action buttons with a certain color, each one corresponding to a water pump in front of it, as well as a special red button for activating the power-ups he or she collects. Watch out, when you pick up a power-up it replaces the one you had before!
Player 1 "BadEnten"
Player 2 "Froschkönig"
You cannot activate more than 2 pumps at the same time. This keeps you from blocking the entire width of your end zone by firing all jets at once - unless you picked up Neptune's Force!
A pump will shoot water as long as you press its button, but no longer than 2 seconds. This keeps you from creating permanent water jets, and creates an interesting game dynamic - sometimes you have to stop a jet before the 2 seconds are over, and let the ball come back a bit, then fire again to have enough stamina to drive it back into the end zone!
When you pick up a power-up, your red button will light up.
When you press the red button, the last power-up you picked up is activated. The red button will blink until your power-up runs out.
When you activate an offensive power-up, your opponent's buttons will blink while the power-up is active to let him/her know.