{"author_name":"little_polygon","cat":"LD #25","comments":[],"epoch":1355723580,"likes":3,"metadata":{"p_key":"47772","p_author":"little_polygon","p_authorkey":"19295","p_urlkey":"83437","p_title":"TYRANOFORCE Code Post-Mortem","p_cat":"LD #25","p_event":"LD25","p_time":"1355723580","p_likes":"3","p_comments":"0","p_status":"UPD5","us_key":"19295","us_name":"little_polygon","us_username":"xewlupus","event_start":"1355443200","event_key":"14","event_name":"LD25"},"text":"<p><a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/12\/17\/tyranoforce-code-post-mortem\/crazy\/\" rel=\"attachment wp-att-212793\"><img class=\"alignnone size-medium wp-image-212793\" alt=\"tyranoforce screenshot\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/crazy-300x225.png\" width=\"300\" height=\"225\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/crazy-300x225.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/crazy-550x412.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/crazy.png 960w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n <p><strong>What Went Right<\/strong><\/p>\n <ul>\n <li>Having the best artist\/roommate ever.<\/li>\n <li>Flixel &#8211; I&#8217;d never used it before, but I knew it by reputation. \u00a0It&#8217;s definitely a Game-Jam Tool &#8211; not a tight, cogent application framework, but a giant box of features thrown together and made as available as possible.<\/li>\n <li>Tight concept. \u00a0As soon as the idea of a reverse-schmup was well-articulated every design decision was easy.<\/li>\n <li>Boids\/Flocking-Based AI. \u00a0It creates a natural motion that&#8217;s still very easy to control and constrain.<\/li>\n <\/ul>\n <p><strong>What Went Wrong<\/strong><\/p>\n <ul>\n <li>FlxGroup Object Pools. \u00a0I was constantly leaking and spent too many cycles trying to puzzle it out. \u00a0I yanked it and replaced it with a linked-list solution in less time that I spent pointlessly poking variables in the debugger.<\/li>\n <li>Alpha-Beta-Pruning-Based AI. \u00a0Before flocking, my first attempt was to create a &#8220;perfect&#8221; AI that would only get hit when cornered, never by mistake. \u00a0The code was very complex and didn&#8217;t work very well, and the motion was jerky and unaesthetic.<\/li>\n <li>No threads or coroutines in ActionScript &#8211; lots of switches and ad hoc state variables. \u00a0What is this, the 90s???<\/li>\n <\/ul>\n <p>Thanks for reading &#8211; now <a title=\"GO PLAY IT\" href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-25\/?action=preview&amp;uid=12252\">go play it!<\/a><\/p>\n <p>Special thanks to my roommate Freddie &#8220;blob&#8221; T for the\u00a0opportunity\u00a0to make a sexy-looking game!<\/p>\n <p>&nbsp;<\/p>\n \n <p>Tags: <a href=\"http:\/\/ludumdare.com\/compo\/tag\/flixel\/\" rel=\"tag\">Flixel<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/postmortem\/\" rel=\"tag\">postmortem<\/a><\/p>","time":"December 17th, 2012 12:53 am","title":"TYRANOFORCE Code Post-Mortem"}