{"author_name":"zeh","cat":"LD #25","comments":[],"epoch":1356096180,"likes":2,"metadata":{"p_key":"47407","p_author":"zeh","p_authorkey":"13340","p_urlkey":"83070","p_title":"Fry Fleshlings Fast \u2013 Post mortem","p_cat":"LD #25","p_event":"LD25","p_time":"1356096180","p_likes":"2","p_comments":"0","p_status":"UPD5","us_key":"13340","us_name":"zeh","us_username":"zeh","event_start":"1355443200","event_key":"14","event_name":"LD25"},"text":"<p>It&#8217;s been nearly a week now, so I figured I&#8217;d post a post-mortem about <a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-25\/?action=preview&amp;uid=13340\">Fry Fleshlings Fast<\/a>, my Ludum Dare #25 entry for the theme &#8220;You Are The Villain&#8221;.<\/p>\n <p>The game is an ActionScript 3-game compiled in Flash. It runs <a href=\"http:\/\/hosted.zehfernando.com\/ludumdare\/25\/\">online<\/a>, or as Android AIR installs (I guess it could work as iOS installs too, but, you know, it&#8217;s a pain in the ass to create all certificates for that and only people with jailbroken phones would be able to install it since it&#8217;s not an App Store release, so why bother).<\/p>\n <p>The original idea I came up with was a game where the player acted as an invading Alien overlord. You&#8217;d have a top-down view of a map and your task was to kill everyone below. For this, I envisioned a mechanic where you would have actors &#8211; the <em>fleshlings<\/em> &#8211; roaming around a map, going from checkpoint to checkpoint. The player would have the ability to cut their paths short (by using <em>lasers<\/em>) with the objective of getting everyone to move to the same general area, where you could then drop a <em>meteor<\/em> attack on top of them, killing everyone. The challenge would be in using as few lasers as possible.<\/p>\n <p>Although the systems were different (using point- and line-based roaming paths, rather than a two-dimensional plane), the whole idea was heavily inspired by <a href=\"http:\/\/en.wikipedia.org\/wiki\/JezzBall\">Jezzball<\/a>, a very simple yet addicting game for Windows 95.<\/p>\n <div id=\"attachment_217127\" style=\"width: 560px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/12\/21\/fry-fleshlings-fast-post-mortem\/wip_0\/\" rel=\"attachment wp-att-217127\"><img class=\"size-large wp-image-217127\" alt=\"Early screenshot showing the internal map\/waypoint editor I had to build for the game\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_0-550x321.png\" width=\"550\" height=\"321\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_0-300x175.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_0-550x321.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_0.png 1296w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><p class=\"wp-caption-text\">Early screenshot showing the internal map\/waypoint editor I had to build for the game<\/p><\/div>\n <p><strong>What went right<\/strong><\/p>\n <p><strong>Reusing code<\/strong>: although I failed to do a post about it prior to starting the project, in this project I reused much of the code I developed for my previous Ludum Dare game attempt,\u00a0<a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/08\/27\/survival-of-the-tastiest-post-mortem\/\">Survival of the Tastiest<\/a>. While much of the code is, of course, garbage &#8211; many shortcuts were taken &#8211; a lot of the support code and more abstract frameworks for handling objects and Starling entities came out very handy for this new project.<\/p>\n <p>I now feel like, for a Ludum Dare project, you can&#8217;t plan on working on a new engine <em>and<\/em> a new game at the same time. Unless it&#8217;s a very unique but simple mechanic, it&#8217;s just a lot of effort that means you can&#8217;t get both really right. It&#8217;s better to develop an engine with a simple game layer on top of it, or to work on a cool game idea based off a well established engine. Of course, this is not something I did right this time around &#8211; I was developing both again &#8211; but having somewhat of a starting point helped.<\/p>\n <p>Over time, it&#8217;s likely that my own entity engine &#8211; which doesn&#8217;t have a name &#8211; could shape up pretty well. There are many well known, polished engines for games in Flash out there, of course, but having one of your own is a great learning tool and, with time, allow you greater freedom since you can tweak and change it to fit your needs better.<\/p>\n <p><strong>Programming a system I enjoyed<\/strong>: I never get to spend my (full-time) programming job on game-like systems anymore, and while creating this game I was dead set on creating a point-based pathfinding and routing system that allowed for routes to be created and cut dynamically during gameplay. I love the code I produced for that &#8211; one where I didn&#8217;t take any shortcut on &#8211; and it makes me happy knowing that no I have this additional library to carry with me whenever I need it. I believe challenging systems like that are what I do best &#8211; rather that repetitive tasks &#8211; and I was a great joy to get this working from the group up. This made this Ludum Dare effort really worth it.<\/p>\n <p><strong>Not worrying too much about the idea<\/strong>: truth be told, until Saturday at noon, I didn&#8217;t even know if I was going to participate in Ludum Dare at all (because, like I said, I had other work to do). So I decided not to fret over it. I was thinking of ideas and discussing them with my girlfriend and friends, but not going crazy over it. Maybe because of that, the idea came naturally and I started implementing a few hours later.<\/p>\n <div id=\"attachment_217128\" style=\"width: 560px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/12\/21\/fry-fleshlings-fast-post-mortem\/wip_3-3\/\" rel=\"attachment wp-att-217128\"><img class=\"size-large wp-image-217128\" alt=\"Screenshot showing a debug view of the game, including map waypoints as I tested the path cutting mechanic. Roaming Fleshlings are also visible.\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_3-550x321.png\" width=\"550\" height=\"321\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_3-300x175.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_3-550x321.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_3.png 1296w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><p class=\"wp-caption-text\">Screenshot showing a debug view of the game, including map waypoints as I tested the path cutting mechanic. Roaming Fleshlings are also visible<\/p><\/div>\n <p><strong>What went so-so<\/strong><\/p>\n <p><strong>Scope<\/strong>: with <a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/08\/27\/survival-of-the-tastiest-post-mortem\/\">my previous game attempt<\/a>, I had a very audacious plan that failed to materialize in a game; it took so much effort to get something <em>playable<\/em> done, that by the time it was ready, I didn&#8217;t have enough time to make it easier, more approachable, or just <em>fun<\/em>. It was an engine, but not a real game. With this entry, I made sure to think smaller &#8211; creating something that could be accomplished without a lot of effort. This was also made more important because I actually had Emergency Real Work to do that same weekend, so I wanted to spend just a few hours with the Ludum Dare entry.<\/p>\n <p>In the end, while the scope of the game was much better aligned with a Ludum Dare project, it still failed to materialize into a fun game. I only spent 6 or so hours with it, and I feel the results were more or less the same: there&#8217;s a game engine in there, but it&#8217;s not that challenging, or fun. It&#8217;s a gimmick.<\/p>\n <p>Still, I think that, given enough time, it could be pivoted to something more fun.<\/p>\n <div id=\"attachment_217130\" style=\"width: 560px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/12\/21\/fry-fleshlings-fast-post-mortem\/wip_6\/\" rel=\"attachment wp-att-217130\"><img class=\"size-large wp-image-217130\" alt=\"Testing the final assets and the laser animation and smoke particle system (heavily inspired by Faster Than Light, I must add)\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_6-550x321.png\" width=\"550\" height=\"321\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_6-300x175.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_6-550x321.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_6.png 1296w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><p class=\"wp-caption-text\">Testing the final assets and the laser animation and smoke particle system (heavily inspired by Faster Than Light, I must add)<\/p><\/div>\n <p><strong>What went wrong<\/strong><\/p>\n <p><strong>Assets<\/strong>: Even if I decided to use simple assets this time around, I ended up spending too much time creating graphics, animation frames, and map textures for the game. Sometimes, it&#8217;s better to have extremely simple assets and concentrate on everything else.I&#8217;m convinced my next game will have circles, triangles, squares and lines first and foremost, and no animation frames. But then maybe it&#8217;ll finally have audio.<\/p>\n <p><strong>Not giving enough time for testing<\/strong>: the gameplay concept was something kind of unclear, and my problem was assuming it would just work. It&#8217;s only later in the development process that I realized it wasn&#8217;t the case. The mechanic was there &#8211; you cut paths down, limiting fleshlings to a given area &#8211; but it wasn&#8217;t fun. For one thing, their behavior was too unpredictable (they would take random paths once they reached a path connection) so the idea of f<em>unneling<\/em> them into a common area never worked out. It would be better if they had clear rules &#8211; for example, when reaching a connection point, if there&#8217;s a clear path ahead of them, take that instead of turning the corner randomly &#8211; or if the map had additional mechanics, like one-way routes (maybe by deploying signs of some sort).<\/p>\n <p>I feel like the need for those changes would have came out earlier in development if I was focused on getting a <em>prototype<\/em> working, rather than on getting a <em>game<\/em> working. I heard this is how <a href=\"http:\/\/en.wikipedia.org\/wiki\/World_of_Goo#Development\">World of Goo<\/a> has come to exist: they developed a simple prototype over a week to see if the mechanic would work (as a part of a large, a-game-a-week effort), tweaked that as necessary, and only then decided to create a full game with its unique but fun mechanic.<\/p>\n <p><strong>Much was dropped<\/strong>: once again, I had to drop a few features that made the game less cool than I thought it could be. The end-game meteor attack was removed &#8211; the new objective was just to kill everyone with lasers themselves &#8211; and potential new weapons were never seriously considered. In way, this made the game interface better &#8211; I didn&#8217;t need a HUD for weapon switching, so the map could take the whole screen &#8211; but it also meant it was a bit repetitive.<\/p>\n <div id=\"attachment_217129\" style=\"width: 560px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/12\/21\/fry-fleshlings-fast-post-mortem\/wip_4-2\/\" rel=\"attachment wp-att-217129\"><img class=\"size-large wp-image-217129\" alt=\"Roaming Fleshlings and their bounding boxes (or their blood) when testing the killing mechanic\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_41-550x321.png\" width=\"550\" height=\"321\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_41-300x175.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_41-550x321.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/12\/wip_41.png 1296w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><p class=\"wp-caption-text\">Roaming Fleshlings and their bounding boxes (or their blood) when testing the killing mechanic<\/p><\/div>\n <p><strong>Conclusion<\/strong><\/p>\n <p>This game was great in that it taught me one thing: I normally plan a <em>system<\/em> and then try to develop a game out of it. Maybe, given enough time, this can be a solution; but it means you need to give time to work on the gameplay after the <em>system<\/em> is complete, because at first, it&#8217;ll only be an engine of possibilities.<\/p>\n <p>Many lessons learned for the next Ludum Dare. I like to believe I&#8217;m getting better. Code-wise, it has been a lot of fun, but maybe one day it&#8217;ll also be fun gameplay-wise!<\/p>","time":"December 21st, 2012 8:23 am","title":"Fry Fleshlings Fast \u2013 Post mortem"}