Jump like a chicken – lessons learnt building jumping pad controllers
In February I published an early version of the game Chicken Jump on Game Jolt. The prototype was built in 8 hours at the Berlin Mini Jam in Unity. For those who don’t know about the game I’d like to quote from a review to explain the game:
In Chicken Jump things are very simple and complicated at the same time. Each player that joins in the fun is given only one key that makes his or her character jump. The goal is simple, jump at the right time to avoid being smashed to pieces by oncoming traffic and be the last one to make it out alive. And also survive the biggest number of waves, duh! Alexandru Chirila
Having set the game free out in the wild I was very eager for feedback from the players. When one guy told me he had played the game with colleagues using dance pads and “we had a blast” I got very interested in doing something alike.
The first thing to do was to implement an invert controls switch. In the game you press to make your character jump but if you physically jump you probably want your avatar to jump when you jump and not when you land. The guy on Game Jolt had hacked the input using GlovePie and some scripting but I just added a switch in the settings. Done.
Trying to get away with the least amount of work for the setup I started to experiment with a Wiimote as the input device. I taped the Wiimote around my kids feet, hip and chest and visually tracked the accelerometer output. The results were disheartening. Every kid had a totally different curve which mainly had to do with the windup part of the jump. Jumping has 4 parts: windup, jump, descent & landing. The windup is the first part ,the going down/bending knees to flex up for the actual jump. I couldn’t distinguish between windup and jump and sometimes, depending on the location of the Wiimote on the body, not even between the jump and the descent because one of my kids would wiggle his leg at his highest point in air. Even if there would have been a way to implement a better filtering for the movement this wouldn’t have worked for the game.
The jumping game mechanic
In Chicken Jump the player jump action sets a fixed upwards velocity on the player physics object to make the character jump. If the player keeps the jump button pressed, the gravity reduces the speed until the rigidbody starts to fall back to the ground. If the player releases within a certain time, the upwards movement is stopped (actually reduced & inverted) so you can control jump length for later faster waves when have to be able to reduce your air time. Another benefit of this is that you actually have to jump higher / stay in air longer in order to make the character jump higher turning the game into a very sweaty experience.
So if a controller transmitted only one frame of false input, the whole experience would suffer really badly. The player would jump too early or wouldn’t jump high enough. Super frustrating.
But I didn’t want to use dance pads either. It requires some feedback when jumping/landing and on dance pads you don’t really know exactly where you are standing.
And I couldn’t come up with a more mechanical solution with springs because this seemed too complicated and not suited for different weights and heavy use.
As I looked around in the attic I found an aluminum covered insulation sheet which seemed like a good base for a circuit/switch based setup. I also bought some thin bendable metal sheet for the upper part of the switch where the player will be standing on. The two metal plates/contacts were kept apart with plastic foam slices on the sides and some spots in the middle. The spots in the middle prevent the circuit/ contacts from being closed when without pressure.
Connecting the pad to the computer was a different thing. My hopes to be able to use a makey makey were crushed quickly. The Makey Makey data was very random. It seemed that the big metal surfaces were messing up the sensors. I think that someone other than me could have modified the firmware sketch for the Makey Makey Arduino board. I didn’t feel like going that route though.
I went to a store and bought the cheapest game controller I could find. It was a SNES like USB controller which I disassembled. Unfortunately the circuitry was super compact and I had a hard time soldering some cables to the very small areas available. The soldered cables would already break when little force was applied so I used a hot glue gun and enclosed everything in a big blob of glue. I only needed four buttons for the first 4 player prototype and that’s all I could get out of the first controller. It is hard to tell if a controller is usable before you disassemble it. To make the setup more versatile and to have week points if somebody stumbled into my stuff I soldered cables with crocodile connectors to the joypad so there were no fixed connections.
But finally I could test the setup with my 7 year old and the result was encouraging.
Preparing for Talk & Play, a bimonthly game event in Berlin, I wanted to “mass” produce 4 pads. Using the metal sheets was too expensive and the result too heavy. Medium-density fibreboard (MDF) coated with some “metal coated foam” material from a roll seemed the better solution.
The Good: These first production pads were perfect when used for the first time. Top part was elastic enough to take all kinds of weights without braking (only high heels hurt the pads very much) and did respond to press and release quickly enough. The pads lasted several days of showcase at A MAZE and Talk & Play.
The Bad: Foam was only fixed to the metal with double sided duct tape and started to fall off on some places but that wasn’t anything major since loads of duct tape around the pads held them together.
The Ugly: The cheaper foam rolls metal coating was disintegrating from the jumping pressure since it was super thin. I needed to replace these for the next events.
For Join, the local multiplayer summit in August I decided to provide 8 player jumping support. The DIY controller adapter only allowed for 4 players and so I looked for some alternatives. Buying other standard controllers was risky because I couldn’t know for sure if they would provide a spacier layout for easy soldering.
A Canadian tinkerer was selling a 12 buttons 4 directions USB board identifying itself as a HID device on Windows. It was especially made with noob soldering in mind and so I ordered some of these.
Fixing the brittling metal coating required to disassemble the old pads, remove the unsuited material and replace it with something new. I choose to use the same material as I used for the base plus the MDF wood on top.
I also didn’t want to use double sided tape anymore to glue the stuff together because it was tedious to use and not very reliable. I first tried some super industrial glue which stank and was supposed to be very poisonous. But when that ran out I bought Pattex glue which was supposed to be dissolving the plastic foam but actually was much better at the job than the professional plaster.
I wanted to test the new pads before Join and was asked to bring the game to the Game Creators Summer Party which I happily did. I takes a nice amount of space to setup 8 pads with enough surrounding for the players to jump and wiggle their arms and you also need a projector so everyone can distinguish themselves. But the venue was perfect for that and I could set up everything just fine.
Having reinforced the top part and increased the plastic foam in between posed some problems though. Before, the top was thinner and more elastic allowing kids and adults to play. Now the more sturdy setup made it harder for kids to register the contact due to their smaller weight. Also when a person jumped the going down/windup part of the movement would sometimes register as a release because the stiffer material does reset quicker to its original flat pose and the added foam would even help with that.
The solution to that is fairly easy. Remove as much foam in the middle so that the surfaces can never touch without some pressure.
A little girl was even hanging around the game the whole evening although there were many other games to play.
I very much enjoyed tinkering with these different materials and especially liked improvising with things I can just find at my place. Interestingly the very first prototype was probably the best solution and more planned approaches seemed to need more adjustment.
Building custom controllers for the game was a lot of fun and seemed to resonate well with the players. I’ll keep tinkering with that some more.
3 days of kids punishing the controllers when showcasing the game at Gamecity in Nottingham required a new approach. A metal mesh replaces the aluminum sheeting giving the pads a Mad Max vibe. Ready for post apocalypse jumping now.