{"author_name":"schell","cat":"LD #31","comments":[{"author_name":"Soron","time":"December 8, 2014 12:23 pm","epoch":1418059380,"text":"Really good\/useful postmortem. I ended up doing a game using the tech stack I normally prototype in (JS + HTML5), and it&#8217;s also a tech stack that I&#8217;ve used for a series of commissioned games. I was wondering if I&#8217;d miss having access to some of the code I had built previously, and if I should have put some of it into a library in advance.","spam":"N"},{"author_name":"","time":"December 8, 2014 12:51 pm","epoch":1418061060,"text":"Really cool to see some Haskell represented in Ludum Dare! I attempted to use Elm this time round and it was surprisingly great to use (I mean I didn&#8217;t feel like I was missing any quick and dirty time-savers). Also great to see FRP stuff as that&#8217;s a concept that gamedev needs more of I think.","spam":"N"}],"epoch":1418058420,"likes":3,"metadata":{"p_key":"22655","p_author":"schell","p_authorkey":"503601","p_urlkey":"58032","p_title":"Post Mortem","p_cat":"LD #31","p_event":"LD31","p_time":"1418058420","p_likes":"3","p_comments":"2","p_status":"UPD5","us_key":"503601","us_name":"schell","us_username":"schell","event_start":"1417737600","event_key":"26","event_name":"LD31"},"text":"<p>I started this compo months in advance &#8211; I had been working on some libraries that I thought would be really useful for making games. I had written a <a href=\"https:\/\/github.com\/schell\/yarn\" title=\"Yarn is squishy FRP\">soft FRP lib<\/a> and a <a href=\"https:\/\/github.com\/schell\/gelatin\" title=\"There's always room for jello\">2d vector-ish graphics library<\/a>. I spent a LOT of time on those! Mostly reading white papers about polygon decomposition, path rendering and rasterization. I thought I would have very nice looking 2d vector graphics for my FRP game simulation.<\/p>\n <p>At the last minute I read <a href=\"http:\/\/www.reddit.com\/r\/haskell\/comments\/2kdb8k\/caffeinated_times_the_easily_extensible_entity\/\">this post linked on reddit<\/a> about an entity component system using extensible effects and I decided to try to use that as well. <\/p>\n <p>I ended up loving the component system (though I&#8217;m still figuring out how to handle and sequence events). I ended up barely using my libraries *at all*. I think I had been a victim of depth-first development. I got really deep into figuring out how to decompose polygons and do very low-level things when I should have been thinking about Haskell game dev as a whole. I should have been writing one specific game, then writing another specific game (and then another) and then library-izing the parts that are shared and good. Instead I had an idea like &#8220;hey, this would be cool to use for game dev &#8211; I&#8217;ll dive deep into building this out.&#8221; I also had strong intuitions about what a good API would be for those libraries and I worked hard to materialize them. I thought &#8220;yes! this is pure and clean and good!&#8221; &#8211; but once I started the compo I realized that I wasn&#8217;t using the libs in the way I had written them. I had over-theorized! What I really needed were dirty tricks and quick get-er-dones! This is a hard lesson and one that (admittedly) I&#8217;ve learned before. <\/p>\n <p>In the next couple months I&#8217;ll be dedicated to developing games rather than developing libraries for games. By the next ludum dare I&#8217;ll hopefully have accumulated some tried and true techniques and dirty tricks.<\/p>\n <p>To see the code I accumulated you can visit my github: <a href=\"https:\/\/github.com\/schell\/ld31\">https:\/\/github.com\/schell\/ld31<\/a>.<\/p>\n <p><a href=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/12\/Screenshot-2014-12-08-11.06.47.png\"><img src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/12\/Screenshot-2014-12-08-11.06.47-291x300.png\" alt=\"Screenshot 2014-12-08 11.06.47\" width=\"291\" height=\"300\" class=\"alignnone size-medium wp-image-420530\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/12\/Screenshot-2014-12-08-11.06.47-291x300.png 291w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/12\/Screenshot-2014-12-08-11.06.47-550x566.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/12\/Screenshot-2014-12-08-11.06.47.png 1424w\" sizes=\"(max-width: 291px) 100vw, 291px\" \/><\/a><\/p>","time":"December 8th, 2014 12:07 pm","title":"Post Mortem"}