Controllers for Pong, Part 7: Pre-Final

So I made it to 7 controllers. Which is close to 24! (Sort of.)

Each controller is fabricated with a top plate and bottom plate, offset with metal standoffs. While I typically like to protype the physical fabrication parts for each project, these are the first go-around. A number of things are not ideal including the fit of the buttons, the pointy corners, and the awkward height. Fortunately some controllers aren’t necessarily meant to be held directly, but the overall dimensioning needs to be refined.

I was able to add an additional shared controller for adjusting ball speed and advancing between practice and game play screens. The ball speed adjustment is particularly helpful once players have learned their unique controller and are looking for a challenge. It also factors in a level of collaboration versus playful sabotage as both players can adjust the ball speed yet it requires them to temporarily abandon their own controller, leaving them vulnerable.

During user testing, the majority of controllers didn’t work nor was switching between them easy so I hope tomorrow’s presentation can be “user testing 2.0” and continues to inform the development of more controllers (on my journery to 100!) There’s a lot left to develop in this project; it might be interesting to develop a set of controllers based on each class next semester. How could geospatial mapping inform a controller for pong? Or take existing objects and convert them into controllers? I have no doubt this will continue to be another side project…

Controllers for Pong: Part 5, The Interface

Even though my five functional controllers are barely interesting in operation, I’ve put the more adventureous ones aside temporarily. Rather, I’ve focused on the initial sequencing of game and ensuring that the physical switching between controllers happens smoothly for the user.

Below is a screen capture of the game initialization. Additionally, the console of the Processing sketch on the right shows when a new controller is identified (~ at 1:08 into the video).

Rather than use a keyboard to advance to different modes, I’d like to have a shared controller with a button for triggering game play and a knob to control ball speed.

The handshaking code to get the name of the controller and then set its behaviour is as follows: