{"author_name":"Spiridios","cat":"LD #26","comments":[],"epoch":1367347920,"likes":3,"metadata":{"p_key":"42943","p_author":"Spiridios","p_authorkey":"506801","p_urlkey":"78578","p_title":"Conversion \u2013 Post Mortem","p_cat":"LD #26","p_event":"LD26","p_time":"1367347920","p_likes":"3","p_comments":"0","p_status":"UPD5","us_key":"506801","us_name":"Spiridios","us_username":"Spiridios","event_start":"1366934400","event_key":"16","event_name":"LD26"},"text":"<p><a href=\"http:\/\/www.ludumdare.com\/compo\/2013\/04\/30\/conversion-post-mortem\/1158-shot2\/\" rel=\"attachment wp-att-252980\"><img class=\"alignnone size-large wp-image-252980\" alt=\"Conversion-WallMessage\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/04\/1158-shot2-550x434.jpg\" width=\"550\" height=\"434\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2013\/04\/1158-shot2-550x434.jpg 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2013\/04\/1158-shot2.jpg 656w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n <p>I wrote a game titled <em>Conversion,<\/em> 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&#8217;s minimalist by reducing your senses and distilling the environment down to the remaining senses. The game is intentionally vague about what&#8217;s going on in an attempt to immerse you in the confusion of someone who just had a traumatic event trigger blindness.<\/p>\n <p>That&#8217;s already a bit of a spoiler, so if you don&#8217;t want to be spoiled further, go rate <a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-26\/?action=preview&amp;uid=1158\">Conversion<\/a> and come back. We&#8217;ll wait.<\/p>\n <p><span id=\"more-252918\"><\/span><\/p>\n <p><strong>Theme Selection<\/strong><\/p>\n <p>I did <strong><em>not<\/em><\/strong> like the selected theme one bit. At all. I hated it. Everyone is just going to do &#8220;minimal crappy graphics&#8221; I thought. It took me a couple hours of pouting before I decided to take the &#8220;minimal graphics&#8221; idea to it&#8217;s ultimate conclusion &#8211; 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 &#8211; a game where you hear sounds and have to walk to them to get the next bit of the story.<\/p>\n <p><strong>Implementation<\/strong><\/p>\n <p>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&#8217;s positional audio is so far from precise that you&#8217;d be bouncing around the map trying to locate the sound. You can&#8217;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 <a href=\"http:\/\/jsil.org\/\">JSIL<\/a> doesn&#8217;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&#8217;s considered &#8220;in front of you&#8221; and I made &#8220;behind you&#8221; quieter than in front. Both cues that&#8217;ll help you find your goal.<\/p>\n <p><strong>Problems<\/strong><\/p>\n <p>There were plenty. I was <em>not<\/em> prepared to build an audio centric game. Though I had the tools available, I didn&#8217;t remember how to use any of them. But when the muse strikes, you don&#8217;t say &#8220;sorry, no tools&#8221; you just plow through.<\/p>\n <ul>\n <li>Audio recording. I have a Belkin\u00a0 <a href=\"http:\/\/www.belkin.com\/us\/p\/P-F8Z082\">TuneTalk<\/a>. They&#8217;re supposed to be good at recording good quality audio. Unfortunately they&#8217;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).<\/li>\n <li><a href=\"http:\/\/jsil.org\/\">JSIL<\/a>, the XNA to javascript compiler, doesn&#8217;t support audio panning. I&#8217;ve since taken a whack at trying to solve that, but my first attempt failed, possibly because I don&#8217;t understand the Web Audio API. I&#8217;ve got a <a href=\"https:\/\/github.com\/kevingadd\/JSIL\/issues\/186\">bug filed<\/a> against JSIL on this and I&#8217;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 <em>and<\/em> deaf in one ear trying to track down that damn leaky faucet.<\/li>\n <li>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&#8217;t any support in it for pre-determined events. With time running short, I only got the win\/lose condition in\u00a0 literally just before the compo ended. The &#8220;intruder&#8221; you chase literally teleports between two locations because my event triggering system doesn&#8217;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.<\/li>\n <\/ul>\n <p><strong>Surprises<\/strong><\/p>\n <p>I completed. No, that really is a surprise. Literally 15 minutes before compo deadline <a href=\"http:\/\/www.ludumdare.com\/compo\/author\/serilyn\/\">Serilyn<\/a> can attest to my giving up. I literally had no end condition. You couldn&#8217;t win <em>or<\/em> lose. Somehow, cobling together a lot of hacks, I managed to make the gun fire a bullet (instead of just making a sound) <strong><\/strong><em>and<\/em> have that bullet kill the intruder <em>and<\/em> 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 <a href=\"http:\/\/www.ludumdare.com\/compo\/about-ludum-dare\/\">admins<\/a> of course) for submission hour.<\/p>\n <p><strong>Conclusion<\/strong><\/p>\n <p>I love the concept that I proved. I hate that it&#8217;s so short and that the neat story I had envisioned was completely lost. I plan to do a post-compo version, though it&#8217;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.<\/p>\n <p>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. <a href=\"https:\/\/bitbucket.org\/Spiridios\/ld26\">Compo source<\/a>. <a href=\"https:\/\/bitbucket.org\/Spiridios\/spiridiengine\">Engine source<\/a>. I tagged what was released for the compo so that I can continue committing post-compo code.<\/p>\n <p>So now that you&#8217;ve read this, please rate <a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-26\/?action=preview&amp;uid=1158\">Conversion<\/a>. Tell me what you liked. Tell me what you&#8217;d like to see. Tell me what you didn&#8217;t like.<\/p>\n <p>Thanks!<\/p>","time":"April 30th, 2013 1:52 pm","title":"Conversion \u2013 Post Mortem"}