{"author_name":"dylanwolf","cat":"LD #35","comments":[],"epoch":1461023520,"likes":1,"metadata":{"p_key":"6376","p_author":"dylanwolf","p_authorkey":"20078","p_urlkey":"41810","p_title":"LD35 Post-mortem","p_cat":"LD #35","p_event":"LD35","p_time":"1461023520","p_likes":"1","p_comments":"0","p_status":"UPD5","us_key":"20078","us_name":"dylanwolf","us_username":"dylanwolf","event_start":"1460678400","event_key":"33","event_name":"LD35"},"text":"<p>Here&#8217;s a quick rundown of the ups and downs of my compo entry, <a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-35\/?action=preview&amp;uid=20078\">Shifty Shapes<\/a>, which was written in Unity.<\/p>\n <h2>What went well<\/h2>\n <h3>Concept<\/h3>\n <p>Usually I make some notes about the top themes in each round of voting, but this time I went in cold. (Honestly: I have a few different game ideas floating around in my head right now, so I was open to doing something off-the-cuff.) I had all of the rules for the game written down within minutes of the theme announcement.<\/p>\n <p>The sliding concept was inspired by a board game called <a href=\"http:\/\/boardgamegeek.com\/boardgame\/51\/ricochet-robots\">Ricochet Robots<\/a> that I played in analog gaming at Geek Media Expo, plus standard match-3 mechanics which I&#8217;d already figured out an algorithm for in <a href=\"http:\/\/www.dylanwolf.com\/2014\/08\/30\/writing-a-match-3-detection-algorithm-in-unity\/\">Ludum Dare 30<\/a>.<\/p>\n <h3>Animation<\/h3>\n <p>I knew I wanted this game to have some nice visual effects, since I envisioned it as one of those shiny mobile puzzle games.<\/p>\n <p>Fortunately, there weren&#8217;t a lot of moving pieces in the concept, and I started building the effects early (even before I&#8217;d replaced the placeholder art).<\/p>\n <p>Animation is something I don&#8217;t tend to think about (or I think about so late in the jam that it&#8217;s complicated to implement), but a little bit seems to go a long way.<\/p>\n <p>Bouncing UI elements and blocks\/items flying to their respective counts were easy to implement. I feel like my biggest win was making item and score counts only increment when the block\/item reached it.<\/p>\n <h3>Music<\/h3>\n <p>The main riff was based on something I&#8217;ve played around with before on guitar&#8211;variants of C, with Am and Em thrown in. It worked pretty well, which means I spent about 10 minutes working out the tune, leaving most of Sunday for recording and mixing.<\/p>\n <h3>Unity UI<\/h3>\n <p>Because I wanted new blocks to fill in like a circular progress bar, I ended up having to mess with Unity UI early (as it supports &#8220;filled&#8221; images). I&#8217;ll confess, it&#8217;s something I&#8217;ve avoided for the longest time, because it&#8217;s intimidating.<\/p>\n <p>Rather than mess around with the large block of numbers that don&#8217;t seem to change anything (Unity just recalculates the X and Y positions when you change them), I&#8217;ve preferred to stick to world space, Camera.orthographicSize and Camera.aspect, 2D Toolkit, etc.<\/p>\n <p>However, I feel like I&#8217;ve made serious progress learning Unity UI thanks to this game. And because I didn&#8217;t need to dip into 2D Toolkit for text, I think this is the first Ludum Dare where I&#8217;ve had no Asset Store dependencies.<\/p>\n <h3>Coding<\/h3>\n <p>There are few things more satisfying as a coder than being able to call a &#8220;Reset&#8221; method after a Game Over screen (as opposed to &#8220;screw it, I&#8217;ll just reload the scene&#8221;).<\/p>\n <h2>What didn&#8217;t go well<\/h2>\n <h3>Block pop-in effect<\/h3>\n <p>One of my big plans for visual effects was to have blocks &#8220;fill in&#8221; like a pie chart. That&#8217;s actually pretty complicated if you&#8217;re using Unity&#8217;s Sprites, and I spent more time than I&#8217;d like trying to make it work. Once I realized sprite masking was going to require shader code, I gave up on this approach.<\/p>\n <p>Even though I was reluctant to mess with Unity UI, UI Image supported this exact feature, and I got the effect I wanted. However, I wish there was a way to do this via Sprites, and I spent more time than I&#8217;d have liked chasing that solution. (Although, I did do this first thing on Friday night so I could budget my time.)<\/p>\n <h3>Graphics<\/h3>\n <p>I&#8217;ve been playing around with Krita recently, and because of some of its pen and paint effects, I initially picked it over GIMP. However, the art I created didn&#8217;t feel right&#8211;it had a dark, hard-contrast feel.<\/p>\n <p>This wasn&#8217;t Krita&#8217;s fault, I just wasn&#8217;t familiar with it. It was definitely a case of thinking a tool based more on physical mediums would magically produce something &#8220;painterly&#8221; without me having to understand how it worked. I ended up redoing everything (except the cloud particles) in GIMP, and was pretty satisfied with the result, despite spending a lot of extra time on unused art assets.<\/p>\n <h3>Music<\/h3>\n <p>Because I guess I have something to prove, I decided to try to mix in cajon, banjo, and mandolin in with guitar. I can&#8217;t tell whether it works or whether it&#8217;s all out of tune, because my first impression changes each time I listen to it.<\/p>\n <p>I suspect part of the problem is I changed the speed on the guitar part in Audacity, and then tried to increase the pitch by the same percentage to compensate. Also, I&#8217;m not enough of a musician to pull this sort of thing off with consistent quality (which is why you&#8217;ll note all of the non-guitar tracks are mixed very low).<\/p>\n <h3>Build and release<\/h3>\n <p>To be fair, it went OK, but this is the first time I&#8217;ve been frustrated with myself for not planning in advance.<\/p>\n <p>I always go in building for the default Unity 960&#215;600, only to remember on Sunday afternoon that it&#8217;s slightly too large for the LD site&#8217;s embed (and even a little awkward in my browser). I really need to standardize on a resolution and aspect ratio before I go into a jam. I tend to just jump in the preview window and forget about this part.<\/p>\n <p>Also, given that WebGL builds seem to take somewhat longer than Unity plugin builds did, I need to start planning for this in advance. Luckily, I did a release to itch.io on Saturday, so I was able to iron out some WebGL issues with particle effect sprites early, but it would&#8217;ve been stressful if I had waited until Sunday.<\/p>\n \n <p>Tags: <a href=\"http:\/\/ludumdare.com\/compo\/tag\/ld35\/\" rel=\"tag\">LD35<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/post-mortem\/\" rel=\"tag\">post-mortem<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/postmortem\/\" rel=\"tag\">postmortem<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/unity\/\" rel=\"tag\">unity<\/a><\/p>","time":"April 18th, 2016 6:52 pm","title":"LD35 Post-mortem"}