The story of WHISTLE COMMAND’s conception is an interesting one — my original idea for the theme “An Unconventional Weapon” had absolutely nothing to do with what I ended up making. I originally wanted to do something with the idea of a robot with infinite lives, whose body sticks around after he dies. The player would then end up using their own corpses as a weapon. I came up with a few animations:
I built a game engine around a couple JS physics engines – at first PhysicsJS, but when I realized I was working around the way it worked to make it like matterJS, I switched to matterJS which I was more familiar with. Unfortunately, I ran into a showstopper bug with matterJS that I couldn’t figure out — I think it was my fault, but I never found out what the origin of it was. Essentially, if the user went to the right third of the screen, all physics simulation stopped forever. Very frustrating.
Anyway, with an entire day blown and no real gameplay present, I decided it was time to scrap everything and do something else. I went to sleep and when I woke up, I was thinking about unconventional input and remembered the new getUserMedia API, and how it was very recently available in combination with the Audio API across all the major browsers (except mobile Safari – damn you iOS).
At first I wanted to do some ridiculous audio nonsense with voice commands or singing or something. I decided however that limiting scope as much as possible made input accuracy a lot more feasible. I threw together a prototype where it just mapped whistled notes to a point on the screen and I immediately fell in love with the idea. There’s something just incredibly fun about controlling something on the screen with the sounds you’re making.
I decided on a shmup-style creation where you controlled a ship and shot projectiles by altering your pitch. I quickly ran into a balance issue – most shmups are more like bullet hells, but control isn’t nearly accurate enough to require the player to dodge. I settled on a shooting-gallery style thing, but then ran into issues with it being too easy. My solution was to create a charging system, where you have to hold a pitch steady to charge a shot. This is hard and interesting, but I’m not satisfied – I don’t think it’s actually fun.
I also wanted to make it so that you had to whistle a recognizable tune to beat the “levels”. In fact, the levels as they stand right now were created by me whistling a tune and noting down the positions of the pitches. Unfortunately, that doesn’t translate at all to a tune when someone else whistles it.
Still, I’m very happy with what I came up with – it’s weird and interesting and definitely unconventional.
Did anyone else end up scrapping their original idea? How did it go?