So Blind Pong is actually a proof of concept that we could be doing arcade games for blind. When you’re blind you exercise your other senses more, your tact, your taste, your smell, your earing. And it’s perfectly possible to do videogames focusing on those. OK, so maybe smell and taste is abit harder to do with electronics, and haptic interfaces are still under heavy research, but the point is you just need extra/smarter sensory input and most videogames could very well be adapted for the blind to enjoy aswell. This is nothing new if you got a blind relative. But most coder / hacker geeks don’t really realize it, used as they are to all the swish swash light and flash that overwhelms most videogames.
The mechanics of the game are simple:
- The ball has an intermitent sound, panning left and right as it crosses the screen. It’s frequency is calculated based on how high on the screen it currently is.
- Your paddle has a constant sound, panned far left. It’s frequency also matches the y position in the screen.
- When the ball bounces on top or bottom it makes a bouncing sound, letting you know it’s changing trajectory.
- When the ball hits your paddle it has a positive sound, letting you know you scored a hit!
- When the ball passes your paddle it has a negative sound letting you know you lost a point.
Simple enough i though to myself as Mauricio explain. And then added that he couldn’t code any software whatsoever. So what the hell, i thought to myself, let’s do this. Then i considered how many times i already coded pong and what a waste of my time it would be to do it yet again. So i headed over to openprocessing / sketchpad and looked for something working. I found this little hack, which had a few bugs and some very dirty spaghetti code, but it had a swing effect implemented – that’s fancy. i like fancy. So i picked that one and tried it out for size to measure how bugged was it really bugged. Well, it was tolerably bugged, nothing that could really jeopardize our dirty proof of concept.
I read up on some minim examples (thats a soundlib that has been absorbed intoprocessing core in case you dont know) and made the ball and paddle go ‘piiiiiiiii’. Tried different wave types to diferentiate each other, and i think it was working ok, but we ended up settling for intemitent sound for the ball instead. Little tuning of ball speed, paddle size and register range and i passed the hot potato to Pedro Angelo.
Pedro’s mission was to connect the paddle to an 10k potenciometer connected to anarduino. I really have no clue what he used and how long it took him but next morning it was working and we cheered. Now all we needed was a controller box.
Luckily the guys in charge of the 3D printing machinery had also spent their whole night fixing one of the broken ones, so Mauricio designed a potenciometer handle and box to put the arduino inside. I was busy with other stuff so i have no idea how long it took him, but he was done in the morning of the project submission.
Quickly did a few extra polish up and Mauricio headed out to talk with the pre-selection juries. Aparently they were abit skeptical but decided to let us present our work all the same. Mauricio insisted that i helped him present so i started conjuring an evil plan for world domination. Mauricio had mysteriously gone blind and we couldn’t figure out why, perhaps it was from the nightpatch from the conference sleeping pack, but we will never know since we didn’t have time to visit the doctor, we were too busy hacking. He had asked us for one final favor, to be able to play street fighter 2 again despite his blindness, i had told him no and instead coded him Pong. Important to point out that the recently announced live online gaming platform requiring fiber connection did not have any games for the blind. Don’t abuse dark humour too much, blind people could be
watching hearing us, and that would be rude of us to mock them, not our idea with the proof of concept at all.
So we had our 90 seconds of fame, didn’t win anything from the compo, but we had fun and we now have a blindpong proof of concept prototype to show our friends. Source code available. Let us know if you improve it somehow. Would be cool to see a more polished up version of it. With different gameplay modes and such.