Conversion – Post Mortem
I wrote a game titled Conversion, after the condition known as Conversion Blindness. You cannot see, so you must complete the game using only your sense of hearing and sense of touch. It’s minimalist by reducing your senses and distilling the environment down to the remaining senses. The game is intentionally vague about what’s going on in an attempt to immerse you in the confusion of someone who just had a traumatic event trigger blindness.
That’s already a bit of a spoiler, so if you don’t want to be spoiled further, go rate Conversion and come back. We’ll wait.
Theme Selection
I did not like the selected theme one bit. At all. I hated it. Everyone is just going to do “minimal crappy graphics” I thought. It took me a couple hours of pouting before I decided to take the “minimal graphics” idea to it’s ultimate conclusion – no graphics. And since text adventures are a well defined genre that just left audio-only games. It still took me another hour or so to refine what I meant by audio-only – a game where you hear sounds and have to walk to them to get the next bit of the story.
Implementation
I knew I needed positional audio and I knew XNA (my chosen platform) could do positional audio, so I went to work creating a simple tile map and player actor to interact with. And then I heard it. And it was awful. XNA’s positional audio is so far from precise that you’d be bouncing around the map trying to locate the sound. You can’t tell front from back, and the zone where the sound was equal volume for both ears was so wide that the sound could have been coming from anywhere. And JSIL doesn’t support it. So I went about implementing my own positional audio using just volume and pan. I was able to narrow the area that’s considered “in front of you” and I made “behind you” quieter than in front. Both cues that’ll help you find your goal.
Problems
There were plenty. I was not prepared to build an audio centric game. Though I had the tools available, I didn’t remember how to use any of them. But when the muse strikes, you don’t say “sorry, no tools” you just plow through.
- Audio recording. I have a Belkin TuneTalk. They’re supposed to be good at recording good quality audio. Unfortunately they’re noisy as heck. I spent a lot of time cleaning up sounds and re-recording them. I need a new portable recording solution (or just a better mic for this thing).
- JSIL, the XNA to javascript compiler, doesn’t support audio panning. I’ve since taken a whack at trying to solve that, but my first attempt failed, possibly because I don’t understand the Web Audio API. I’ve got a bug filed against JSIL on this and I’m still continuing to look into it so I can provide a web build. The game plays completely fine in JSIL otherwise. But imagine being blind and deaf in one ear trying to track down that damn leaky faucet.
- Content. There was supposed to be a lot more content. This is largely a problem with my engine primarily being for arcade/action games, there just wasn’t any support in it for pre-determined events. With time running short, I only got the win/lose condition in literally just before the compo ended. The “intruder” you chase literally teleports between two locations because my event triggering system doesn’t allow for the spawning of actors with actual AI. I lost a lot of time because the feeble triggering solution I had kept breaking every time I needed to add another type of trigger.
Surprises
I completed. No, that really is a surprise. Literally 15 minutes before compo deadline Serilyn can attest to my giving up. I literally had no end condition. You couldn’t win or lose. Somehow, cobling together a lot of hacks, I managed to make the gun fire a bullet (instead of just making a sound) and have that bullet kill the intruder and have it trigger a player death if you use too many bullets (yeah, cheesy, but I needed a lose condition). Thank God (and the LD admins of course) for submission hour.
Conclusion
I love the concept that I proved. I hate that it’s so short and that the neat story I had envisioned was completely lost. I plan to do a post-compo version, though it’s going to have to compete with my other non-LD project for time. Luckily both projects make use of the same engine and use exactly the same mapping tech under the hood, so I can advance both titles simultaneously for a bit.
For those interested, I use Mercurial for revision control and did multiple commits over the course of the compo. The repos have been mirrored on Bitbucket. Compo source. Engine source. I tagged what was released for the compo so that I can continue committing post-compo code.
So now that you’ve read this, please rate Conversion. Tell me what you liked. Tell me what you’d like to see. Tell me what you didn’t like.
Thanks!
