Whac-a-Wall

SATURDAY 1PM

Whac-a-Wall is Whac-a-Mole on a wall.

In Whac-a-Mole, physical moles pop up in a play area, the size of a small desk, in front of you, and you whack them back down with a mallet under time pressure.

In Whac-a-Wall, the moles are virtual and projected onto a large wall surface. You whack them with your hand (or possibly feet and even head!).

I’ll use Processing to display the moles and for the game logic. I’ll use Kinect to for full body motion tracking.

Well, this project turned out to be more a 1-in-2 than 1-in-1! Here’s how it unfolded.

SATURDAY 3PM

Finally have Kinect working on a laptop. Took a lot longer than expected. Tried two Kinects. Turned out to be a laptop problem. Then couldn’t get Simple Open NI installed due to laptop security restrictions and out-of-date open source instructions, so I decided to use the Open Kinect library instead. Reminder: setup takes time!

SATURDAY 5.30PM

Ok, starting to make substantive progress. Have a filter working that hopefully will allow the Kinect, sitting on the floor near the wall lookup upwards at the wall, to tell me where someone is touching the wall.

Kinect physical set up for Whac-a-Wall

Click HERE for a video of the test program showing the filter for detecting touches to the wall, with the Kinect looking up from below.

SATURDAY 7.30PM

Hurray! The basic interaction mechanic of hitting an image projected on a wall is working, more or less.

Some low-tech props to help with calibration. The red lines are where the computer thinks the cups are.

Click HERE for a video of Andy testing the interaction. (The idea for putting the Kinect on the ground pointing up, rather than from behind the player, was his — thanks Andy! By doing this, I avoided the problem of the Kinect’s being blind to hands on the wall in front of the person. It also meant I had to solve a different computer vision problem. Originally I was going to use Kinect’s skeleton sensing to find the location of the player’s hands. Instead I worked with the depth image to find where the player is touching the wall.)

SUNDAY MORNING IN BED

Now that the basic interaction is workable enough, started working on the “Whac-a-Mole”-style gameplay logic.

Our cat Chase doing a code review

SUNDAY 3PM

Once the gameloop was working, with 10 rounds or waves of moles coming at you with increasing difficulty spiked by some randomness, I started adding animation of the arrival and departure of the moles. I also staggered their arrival time, and made the time they stayed on screen variable also, to give some surprise and hecticness to the game.

Finally, I grabbed some clip art and audio from the web to put a simple skin on the game, including sounds when you “splash” or whack a mole and when you have a near miss (to try to mask the loose calibration), and a randomly chosen “splash” image when you get the critters. Added a score with the 60-second count-down timer right under it.

Click HERE for a video of a Sunday afternoon playtest. The game seems a bit easy in this test. I have now tuned the parameters to make it faster and harder. (It would be interesting to have the program adjust difficulty dynamically — getting harder or easier depending on how well the player is doing.) And the precision of the touch interaction needs improvement.

Thanks to the several campers and counselors who helped with tips, equipment, and most of all playtesting. I learned a lot in one weekend!