This blog has now moved to http://www.mediocre.se
1) The main inspiration for the game was the intro sequence to the “Naked Gun” movies with Leslie Nielsen.
2) The working title of the game was “Rollo”, named after a Swedish candy. The folder in our main game repository is still called rollo.
3) The game objective of collecting three apples before the thief was unknowingly invented by Jon Jordan at PocketGamer. We showed the game to PocketGamer at the Nordic Game Conference, and based on a misunderstanding, Jon wrote an article about how he thought the game worked. When we read his article we first went – doh, he got it all wrong! Then we went – hmm, his idea is actually more fun than ours, let’s change it! We still haven’t told Jon about this.
4) The voice actor for Granny is also a talented illustrator.
5) The main character was first an old man called Mr Rollins.
6) The soda machine in some of the city levels has a sticker that says “More molecules” as a tribute to the movie Idiocracy.
7) Even though the game only has two buttons, we spent a whole month trying out different control schemes before we settled on the current one. Some of them included the tilt sensor and a button for rotating backwards.
8) The Panda at the Zoo level is a tribute to Henrik’s girlfriend Hanna, based on a nickname he has for her.
9) The building textures in the city levels are mostly made out of photos from San Francisco, where Dennis lived for some time before Mediocre existed.
10) The Stanley character is based on a man called Sten, well-known in the Swedish games industry for organizing great parties at game development conferences.
For the Granny Smith release party, I wanted to make an old school arcade machine, and since the game is controlled with virtual buttons it should make a nice experience to play it with physical buttons. My initial idea was to build it from an old discarded radio or tv, but it was hard to find to find an appropriate cabinet.
After putting up some shelves in the kitchen I had this masonite board and some small pieces of wood laying around, and it turned out to be exactly what I needed. I sketched out the pieces directly with a pen and then used a regular jigsaw to cut it. I should maybe have used proper screws to assemble it, but I was lazy and did it with nails instead. It actually turned out more sturdy than I thought it would.
The idea was to suspend a tablet on inside to act as screen and for running the game. It took some tweaking to get the height of it right and find a way to easily remove the tablet if needed without disassembling the whole device. Below is the final setup, which also leaves room for connecting the charger at the bottom of the tablet. The tablet is an Asus Transformer TF300T.
The controls was my biggest headache for the project and I was researching different ways of mechanically translating a button press into touch directly on the screen. Apparently, anti-static socks use silver thread, and they can double as the tip of a touch stylus. I never got further than that fortunately, because I came to think of a little toy from the goodie bag of this year’s Game Developers Conference – a Zeemote wireless joystick. Connecting that to an Android tablet and hook up the buttons to the joystick should do the trick.
I ordered real arcade buttons from DealExtreme. They feel and look exactly as cheap as they are ($7 for four buttons, including shipping), but only two of the four I ordered actually worked. I wanted four buttons to also allow throwing baseballs and bananas, so I complemented the arcade buttons with more sturdy metal buttons bought locally. They don’t feel like arcade buttons, but are way more reliable. Perhaps the trickiest part of the whole project was to solder wires from the buttons onto the Zeemote. Anyone who have seen a Zeemote know it is extremely tiny. Now imagine opening this device and soldering cables directly onto the circuit board. I didn’t get it right the first time, and I was more than once convinced I would ruin it, but eventually I got all the wires in place, and it has worked ever since.
Controlling the tablet with a Zeemote is done using the Zeemote SDK, available to developers for free. Now I would say I’m a fairly experienced game developer and I have never in my career seen a more complicated API for something as simple as reading input from a joystick. Seriously, it should be three or four functions at most, but the Zeemote SDK somehow manages to present this in an API with tons of classes and methods, even suggesting that you base your whole game around their sample framework! I refused to use something that silly and started looking for alternatives. Fortunately there is a little Android app called USB/BT Joystick Center 6 that is totally awesome. It lets you hook up any USB or bluetooth joystick and map the input to key strokes, button pressed or even touch input. I hooked it up and it worked instantly!
Now all the pieces were in place, so I painted the cabinet black and printed stickers for the front and sides. Viola, the Granny Smith arcade machine. /Dennis