{"author_name":"LukeRissacher","cat":"LD #23","comments":[],"epoch":1335999780,"likes":1,"metadata":{"p_key":"55859","p_author":"LukeRissacher","p_authorkey":"10956","p_urlkey":"91577","p_title":"Microbial Post-Mortem","p_cat":"LD #23","p_event":"LD23","p_time":"1335999780","p_likes":"1","p_comments":"0","p_status":"UPD5","us_key":"10956","us_name":"LukeRissacher","us_username":"lukerissacher","event_start":"1334880000","event_key":"10","event_name":"LD23"},"text":"<p>OK, been meaning to write this for a while &#8211; a post-mortem for my game\u00a0<a title=\"Microbial Game Page\" href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-23\/?action=preview&amp;uid=10956\">Microbial<\/a>.<\/p>\n <p>This was my first Ludum Dare &#8211; my first game jam also, and the first time I ever released a finished game for people to play :). Really enjoyed it &#8211; and enjoyed hearing people&#8217;s feedback and experiences playing the game. I was hoping it&#8217;d re-energize my game development enthusiasm which was waning a bit, and it totally succeeded at that.<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/05\/02\/microbial-post-mortem\/screenshot1-94\/\" rel=\"attachment wp-att-142871\"><img src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/Screenshot1-550x309.jpg\" alt=\"\" width=\"550\" height=\"309\" \/><\/a><\/p>\n <p>I have been working on a &#8220;bigger&#8221; indie game project for a while, after a couple prototype games I decided to kill off, so have some game programming experience under my belt (and debatably some art experience). Plus a career&#8217;s worth of business web application programming (lots of forms and lists <img src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" alt=\":)\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> ).<\/p>\n <p>&nbsp;<\/p>\n <h2>What worked:<\/h2>\n <p><strong>Exploratory development approach: <\/strong>I was really inspired by Jon Blow and Marc Ten Bosch&#8217;s talk <a href=\"http:\/\/www.youtube.com\/watch?v=OGSeLSmOALU\">Designing to Reveal the Nature of the Universe<\/a>, where they outline a process of starting with an idea (a game mechanic, a detail, a desired result) and exploring it&#8217;s space of possibilities completely &#8211; then present the best of what you discover to the player. I tried to take that approach with this game. A lot of people have commented on the great learning curve \/ progression, and surprisingly it didn&#8217;t take any deliberate effort on my part &#8211; I developed the levels pretty much in the order they appeared in the game &#8211; when one mechanic or game object felt &#8220;tapped out&#8221; in terms of what kind of unique puzzles and level types I could make, I&#8217;d try introducing a new mechanic. So really, the learning curve the player is experiencing is the same learning curve I as the designer was going through during the making of it (or maybe the same state of mind in the cases of level 27-30 <img src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" alt=\":)\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> )<\/p>\n <p><strong>The 80\/20 principle: <\/strong>With a 48 hour teeny timeframe I tried to stick to this mindset, also known as the Pareto principle &#8211; that in many areas of life, 80% of the effects come from 20% of the causes. E.g. 20% of the stocks produce 80% of the gains &#8211; 20% of your clients provide 80% of your business. I tried to focus on the 20% of to-dos that would make the most difference to the game.<\/p>\n <p style=\"text-align: center\"><a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/05\/02\/microbial-post-mortem\/blenderleveleditor\/\" rel=\"attachment wp-att-142878\"><img class=\"alignnone size-large wp-image-142878\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/BlenderLevelEditor-550x227.jpg\" alt=\"\" width=\"550\" height=\"227\" \/><\/a><\/p>\n <p><strong>Blender as a level editor, with hot reloading: <\/strong>I love me some Blender. I have an ultra bare-bones script that exports just the world transform matrices and names of the objects in a Blender scene into a simple XML file that my game engine can parse while it&#8217;s running. Upshot is, I can use all of Blender&#8217;s fancy tools for moving, rotating, copying, deleting, hiding, snapping to a grid etc. (way more than I could implement in some fancy level editor of my own) and hit a key to export the XML file, which I can then hot-reload in a running copy of the game. So, like, instant level iterations. Woohoo.<\/p>\n <p><strong>Engine I know well, with some prep beforehand:<\/strong>\u00a0I adapted the game engine from my larger game, which was helpful &#8211; it&#8217;s not as fancy as something like Unity or GameMaker, but it took away a lot of the chores of managing game objects and components, playing sounds, handling input cleanly, doing basic 3D rendering, etc. So I could focus on gameplay programming and content creation when the contest started.<\/p>\n <p><strong>Using real recorded sounds:\u00a0<\/strong>Got a lot of compliments on the soundscape of this game &#8211; most of it was me doing weird things with my iPhone. E.g. the bubbling noises were from a bowl of water and a straw with some post-processing in Audacity and FL Studio for added ominousness (I tried putting the iPhone in a sandwich baggie and submerging it underwater, but all I got was plastic bag noise <img src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" alt=\":)\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> ).\u00a0It was all very quick and dirty, I&#8217;m happy it came out sounding as good as it did.<\/p>\n <div id=\"attachment_142879\" style=\"width: 340px\" class=\"wp-caption aligncenter\"><img class=\" wp-image-142879  \" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/IMG_0736-550x359.jpg\" alt=\"Ye Olde Triple-A Sound Studio\" width=\"330\" height=\"215\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/IMG_0736-300x196.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/IMG_0736-550x359.jpg 550w\" sizes=\"(max-width: 330px) 100vw, 330px\" \/><p class=\"wp-caption-text\">Ye Olde Triple-A Sound Studio<\/p><\/div>\n <p><strong>Having to do it in 48 hours:<\/strong> I can tend to geek out too much on perfecting my game engines, polishing little features, etc. and take forever to get things done &#8211; so having a fierce deadline was good to keep my dawdling under control :).<\/p>\n <p><strong>Using 3D:\u00a0<\/strong>Ironically I&#8217;m a little unknowledgable and shaky on 2D programming, having dived headfirst early on into the hardcore 3D stuff. So I stuck with what I was comfortable with on this entry. I think the 3D rendering it might have set the game apart visually a little bit from the majority of entries, even though it&#8217;s mechanically a very 2D game.<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/05\/02\/microbial-post-mortem\/untitled-3-10\/\" rel=\"attachment wp-att-142910\"><img class=\"alignnone size-large wp-image-142910\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/Untitled-31-550x310.jpg\" alt=\"\" width=\"550\" height=\"310\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/Untitled-31-300x169.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/Untitled-31-550x310.jpg 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/Untitled-31.jpg 1019w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n <h2><\/h2>\n <h2>What didn&#8217;t work:<\/h2>\n <p><strong>Crashes \/ problems on some systems:<\/strong> I got a mix of positive comments from those who could play and frustrated comments from people who couldn&#8217;t play the thing early on. I tested things out on a wimpy laptop and it ran OK, so figured I was good to go, but there were some weird GPU and other incompatibilities on certain systems. Anyway after being scared that I&#8217;d disqualify myself, I eventually made post-compo fixes and workarounds in a separate 2nd version (e.g. in Poland the default .NET floating-point parser will choke on &#8220;12.5&#8221; &#8211; it&#8217;s expecting a comma thanks to it&#8217;s helpful worldly awareness <img src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" alt=\":)\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> ). Big thanks to the folks that helped me debug.<\/p>\n <p><strong>XNA excluding mac \/ linux folks: <\/strong>XNA is by far what I have the most experience in, so for this compo it was the only real choice I had, but I know it bummed out some people. Don&#8217;t want to get too far into this debate as it&#8217;s covered elsewhere &#8211; but I might give MonoGame a try next time, which allegedly brings XNA to Mac and other platforms (though it&#8217;s 3D support is apparently not that great).<\/p>\n <div id=\"attachment_142913\" style=\"width: 560px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/05\/02\/microbial-post-mortem\/untitled-4-4\/\" rel=\"attachment wp-att-142913\"><img class=\"size-large wp-image-142913 \" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/Untitled-4-550x310.jpg\" alt=\"\" width=\"550\" height=\"310\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/Untitled-4-300x169.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/Untitled-4-550x310.jpg 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/Untitled-4.jpg 1019w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><p class=\"wp-caption-text\">Random break from wall of blog text<\/p><\/div>\n <p><strong>HDR rendering \/ shadows busted in Reach:<\/strong> XNA 4 has two &#8220;graphics profiles&#8221; &#8211; Reach for crappy computers, and HiDef for beefier DirectX 10+ computers. My engine was written for HiDef and the Xbox 360 mainly, but I wanted a lot of people to be able to play this, so I had to hack together a Reach-compatible version of the rendering pipeline pre-compo. I lost single-format texture support in that process, so my HDR \/ light bloom setup, and my fancy shadow system had to go, after some frantic attempts to work around the limitations. After some late nights lately though I think I&#8217;ve got the engine in better shape for LD24 :).<\/p>\n <p><strong>Particle system busted: <\/strong>I wanted to add some nice particle effects &#8211; dust floating by, cell innards when they&#8217;re broken, etc. &#8211; but my particle system was broken and I lost about an hour trying to fix it. Particles were moving 2x faster and dissapearing abruptly halfway through their lifecycle. Oh well.<\/p>\n <p>Anyway &#8211; I&#8217;ve used more than my share of blog space &#8211; thanks for reading.<\/p>\n <p>Microbial: <a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-23\/?action=preview&amp;uid=10956\">Game<\/a>\u00a0| <a href=\"http:\/\/www.youtube.com\/watch?v=e0WpltIsgjY\">Timelapse<\/a><\/p>","time":"May 2nd, 2012 6:03 pm","title":"Microbial Post-Mortem"}