{"assets":[],"author_link":"author\/pdyxs\/","author_name":"pdyxs","cat":"LD #21","categories":["LD #21"],"comments":[],"epoch":1315524360,"event":"LD21","likes":4,"metadata":{"p_key":"77412","p_author":"pdyxs","p_authorkey":"0","p_urlkey":"286264","p_title":"Of Shapes and Flies: A Double-Bill Postmortem","p_cat":"LD #21","p_event":"LD21","p_time":"1315524360","p_likes":"4","p_comments":"0","p_status":"WAYBACK","us_key":null,"us_name":null,"us_username":null,"event_start":"1313712000","event_key":"7","event_name":"LD21"},"source_url":"2011\/09\/08\/of-shapes-and-flies-a-double-bill-postmortem\/","text":"<div class=\"wp-caption alignleft\" style=\"width: 250px\"><img alt=\"Web of Flies Screenshot\" class=\"\" height=\"240\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/compo2\/62148\/4413-shot0.png\" width=\"240\"\/><p class=\"wp-caption-text\">'Web of Flies'<\/p><\/div>\n<p><strong>Paul:<\/strong> As you may have seen, James and I both took part in Ludum Dare a few weekends back, where James made\u00a0<a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-21\/?action=rate&amp;uid=4413\">Web of Flies<\/a>, and I \u2018<a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-21\/?action=rate&amp;uid=2440\">Escape from Flatland: An <del>Romance<\/del> Adventure of <del>Many<\/del> Two Dimensions<\/a>\u2018. It was an adventure of coding, design, learning new things, and crazy shape (<strong>James:<\/strong> and spider web!) physics. It was the most fulfilling 48 hour game challenge either of us have done (this was James\u2019 2nd LD and my 4th), and the resulting games speak to that.<\/p>\n<div class=\"wp-caption alignright\" style=\"width: 330px\"><img alt=\"Escape from Flatland Screenshot\" class=\"\" height=\"240\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/compo2\/62148\/2440-shot2.png\" width=\"320\"\/><p class=\"wp-caption-text\">'Escape from Flatland'<\/p><\/div>\n<p>In this postmortem, we didn\u2019t really want to make lists of what went right or wrong, so instead we\u2019ll lay out some rules we each felt were important going into the weekend (whether we followed them or not), and then talk about how these aspects affected our games.<\/p>\n<p>Seeing as I\u2019m introducing this sucker, I\u2019ll start first:<\/p>\n<h2>Rule 1: Gameplay in 6<\/h2>\n<p>This, in my opinion, is the most important rule of 48 hour game dev: have gameplay in 6 hours.<\/p>\n<p>\u2018Escape from Flatland\u2019 had gameplay in 7 hours (so slightly late), which gave me a huge amount of time to tweak and fix the gameplay within it.<\/p>\n<p>So what is \u2018gameplay\u2019 in this case? To me, it\u2019s the core mechanic, that thing that your player will be doing most of the time: whether that\u2019s running and jumping, shooting, answering, or (in my case) splicing shapes. The key here is that you should rush towards the most important gameplay feature of your game.<\/p>\n<p>I think it\u2019s important to mention that you really don\u2019t need to have a perfect grasp on what your game is going to look like in order to get to this first gameplay stage. At hour 7, i knew that the player would be a triangle, and that they\u2019d be splicing other shapes\u2026 and that\u2019s about it. I didn\u2019t know what a level would look like or what the player goals would be, but I knew that splicing shapes would be key.<\/p>\n<p><iframe allowfullscreen=\"\" frameborder=\"0\" height=\"281\" src=\"http:\/\/www.youtube.com\/embed\/HbMU4qcT124?fs=1&amp;feature=oembed\" width=\"500\"><\/iframe><\/p>\n<p><strong>James:<\/strong> So, yeah\u2026 I kind of failed with this one. Gameplay in T minus 6 hours?<\/p>\n<p>I guess I have two excuses. Going in, I had no real intention of actually competing (it was the same weekend as PyCon AU 2011, and a dozen other things), so I\u2019d mostly just resigned myself to helping host our little LD party, whilst doing other things all weekend. Of course, enthusiasm is infectious, and I was soon caught up in the action. It didn\u2019t excuse me from my other commitments though, so it ended up being a rather fractured weekend with me dashing off every few hours to a concert or whatnot. Self-sabotage at its finest.<\/p>\n<p>The medium I chose was my other real roadblock. Last Ludum Dare, not being a Flash developer, I decided to write my game in JavaScript, using SVGs for the graphics. I quickly found myself hooking into the SVG\u2019s internals more and more with the JavaScript though, and before long I realised it would be easier to just script the SVG directly. Soon I was enthralled by the idea of a single SVG image being a game, and it became a personal challenge to make it happen. Unfortunately I was a little overambitious (I\u2019d never actually looked at the internals of an SVG before, and scripting them is a bit quirky), so that weekend ended up just being a very fun, very steep learning curve. I was more successful this time around, though there were still plenty of \u201cAha!\u201d moments.<\/p>\n<p>I also had a lot of trouble coming up with a game idea, so I started out just implementing all the basic stuff that comes free with other development platforms (player movement, translation between world and screen coordinates, etc.) It was only after about nine hours (while sitting in a Schubert concert), that inspiration finally struck, and I raced back to uni eager to write some spider web physics.\u00a0The idea was deliberately simplistic; I wanted something small and shiny that would show off the unusual medium, and that I could actually get finished. I could always add to it if there was time (and there wasn\u2019t, turns out simple was hard enough :P).<\/p>\n<p>Getting to gameplay in six hours would\u2019ve saved my game from the parameter-tuning problems it currently has, but I guess this time round I just a bit too disorganised, and still adapting to the challenges of the new medium.<\/p>\n<p><strong>Paul:<\/strong> And challenging yourself is really important in getting the most out of Ludum Dare, so much so that I\u2019m gonna go and make a new heading\u2026<\/p>\n<h2>Rule 2: Challenge Yourself<\/h2>\n<p>This is, to me, the most important part of Ludum Dare: it\u2019s an opportunity to try out new technologies and gameplay types, and doing so is incredibly rewarding.<\/p>\n<p>This time, I went into Ludum Dare with two goals: to learn the Facebook Social API and play with the idea of asynchronous co-operation; and to learn the basics of Ruby on Rails while doing it (more on that one later\u2026). Having this goal helped me to focus my work, forcing me to get to the basic gameplay and design quickly so I could attempt the \u2018something more\u2019.<\/p>\n<p>More importantly, the social aspects of the game, more than anything else, have given me a plethora of ideas for my other projects. Trying new things and expanding your horizons will help your game design and development in general.<\/p>\n<p>For me, this rule goes hand in hand with another, and seeing as James has already talked about challenges, I\u2019ll move onward to\u2026<\/p>\n<h2>Rule 3: Make Trade-offs<\/h2>\n<p>If you\u2019re going to challenge yourself, you need to make trade-offs. If you don\u2019t, you\u2019ll find yourself trying to do far too much in not enough time (see my last Ludum Dare game, \u2018The Way Home\u2019, where we tried for an art game which combined and synchronized two completely different gameplay modes\u2026 it was a bit of a mess).<\/p>\n<p>If something isn\u2019t necessary for your game, cut it or strip it down. Play to your strengths.<\/p>\n<p>One decision I\u2019m grateful I made with \u201cFlatland\u201d was that I wouldn\u2019t put much effort into graphics or sound. Graphics would be all drawn in-game without sprites (and so any interesting effects needed to be emergent from gameplay), and I\u2019d use Wolfram Tones and maybe some effects generated from sfxr (I ended up not doing this). As soon as I made this decision, it engendered a specific graphical and audio style which can (and did) work really well without much effort.<\/p>\n<p><strong>James:<\/strong> Yep, being able to make tradeoffs is really essential. My original gameplay idea was much more complicated \u2013 the web was going to be much larger, a single breakage wouldn\u2019t end the game, and there\u2019d be much more of a focus on strategic repair and pathfinding. By the last six hours though, I was pruning away features left and right, and with not enough time to implement the extra mechanics and physics I had planned, gameplay underwent some fairly radical simplifications. It was painful to do, and resulted in a less exciting game, but there wouldn\u2019t have been anything to submit otherwise. Thankfully my running buddies came to the rescue here with their cool, logical advice; it was time to just admit defeat and polish up what I already had.<\/p>\n<p><strong>Paul:<\/strong> That actually reminds me of another tradeoff I made later on in the development. Initially, I\u2019d decided to do all my serverside scripting in Ruby on Rails, which was partly \u2018challenge\u2019, partly \u2018a single 2-column table will be pretty easy in rails, and probably quicker (even considering I\u2019ve never coded in ruby) than php.\u2019 Which, let\u2019s face it, is true.<\/p>\n<p>What I didn\u2019t think about beforehand was that setting up Ruby on Rails on my computer meant rebooting into osx (my flash dev was done in windows) and wasting half an hour setting it up. What I concurrently failed to think about was that setting up on a server somewhere would probably waste the rest of the weekend. Thankfully, I only wasted 1-1.5 hours on that particular tangent before coming back (quite literally, as I actually left our dev site to do this) and doing php (which made me a little sad, but was thoroughly worth it).<\/p>\n<h2>Rule 4: Turn your limitations into features<\/h2>\n<p><strong>James:<\/strong> Paul\u2019s kind of already covered this one with his graphical design, but for me, it was the guiding principle in the design of my game. Last LD it quickly became apparent that I wasn\u2019t familiar with any of the standard technologies used in game development, and so I had to work with what I knew. A JavaScript web game quickly morphed into a scripted SVG image, and I realised that this was a rather cool feature in itself \u2013 an entire game in a single image! From that point on my lack of Flash knowledge was no longer a limitation, it was the catalyst driving me down an entirely unexpected path. Of course, this time round was different \u2013 I deliberately imposed the SVG\/JavaScript-only restriction on myself \u2013 but it shows how easily even a serious limitation came be turned around into the defining feature of your game.<\/p>\n<p>Obviously this only works to a point though. There are going to be many limitations that are difficult, if not impossible, to dress up as a feature (buggy game logic, poorly balanced gameplay, etc.). But it\u2019s worth a shot, right?<\/p>\n<p><strong>Paul:<\/strong> It\u2019s definitely worth a shot, and to me, it\u2019s rather necessary. If, for instance, your controls are difficult to learn, it can mean one of two things: you need to fix it or you need to feature it (and by that, I mean admit it\u2019s hard and make that part of the challenge, and probably tutorialise it). That isn\u2019t to say that my game\u2019s controls would have been fixed by featuring them (you can only feature so much, and they actually needed some thought put into them), but it\u2019s a good illustrating example.<\/p>\n<p>As James mentioned, my limitation here was my choice to simplify my graphics. Deciding to go simple on the design could have been a huge drawback in terms of look and feel, but then I spied my copy of \u2018Flatland\u2019 on the shelf. Suddenly, I had a way of turning this drawback into a feature, by setting the game in the world of Flatland.<\/p>\n<p>And with that, I\u2019ll awkwardly segue into the next rule\u2026<\/p>\n<h2>Rule 5: Release, Playtest and Tweak<\/h2>\n<p>So I got two out of three of these, so it can\u2019t be that bad, right?<\/p>\n<p>In actuality, I kinda lucked into playtesting my game. I needed data in my database, and so released a half-finished version and asked for people to play it. And got awesome feedback in the process. I then made some of the tweaks from feedback, but failed to get them all (those awkward controls in the game? unchanged since about hour 4).<\/p>\n<p>Now, I should have known better\u2026 I am, after all, a huge proponent of playtesting. And I should really have done a release a bit later on when I had a few more levels, to test out difficulty etc. (as I didn\u2019t really polish this aspect, and there was a bit of sloppy level design going on. Also, some playtesting would have made it clear that social aspect wasn\u2019t all that clear).<\/p>\n<p>All in all, I could really have done more tweaking of my game. In the last two hours of the comp, I didn\u2019t really get much done, and a bit of tweaking would have gone a long way (or, you know, fixing the sound so that the music I\u2019d gotten off WolframTones actually looped rather than playing once and then stopping). In my own defence (against my own accusation? this is getting a little gollumish) I\u2019d slept for 3 and a half hours in 2 days and was in a somewhat delirious \u2018holy crap I got that much done? that\u2019s awesome! It\u2019s totally finished\u2019 mood (for instance, the idea that the last level might be too ambiguious didn\u2019t actually enter my mind).<\/p>\n<p>In the end, I\u2019m really happy with what I made, but you never forget those couple of things you \u2018coulda, shoulda, woulda\u2019 fixed.<\/p>\n<p><strong>James:<\/strong> Well, yeah, I was an all-round failure here.<\/p>\n<p>Releases? There was one. About 10 minutes before the end of the comp.<\/p>\n<p>Playtesting? Um, I checked that things moved?<\/p>\n<p>Tweaking? Again, nowhere near enough. Parameters like the spider speed, fly strength, and web repair rate were never really tweaked beyond their original values, and while that might\u2019ve been okay for what I\u2019d originally planned, it certainly isn\u2019t optimal given the direction I ended up going.<\/p>\n<p>In fact, I pretty much gave up on tweaking entirely. In the last half hour when I had a mostly playable game, I started work on cosmetic improvements (making the spider\u2019s legs moved as it walked), rather than paying attention to the (probably more critical) playability issues. It was an awkward trade-off, but one I\u2019m not really too upset about. I received a lot of positive feedback from friends regarding the attention to graphical detail, so I guess I\u2019m just glad it didn\u2019t go unnoticed.<\/p>\n<p><strong>Paul:<\/strong> Yeah, the moving legs were pretty awesome.<\/p>\n<p>I think we\u2019ve gone through the things we wanted to, so I\u2019ll leave it there. Thanks to all those who\u2019ve given feedback for our games.\u00a0It\u2019s been pretty amazing to be part of this LD48, and to be two of the (patently ridiculously) large number of entries.<\/p>\n<p>From James and myself, thanks to everyone who organised it (and got the server back up and running!), and bring on LD22.<\/p>","time":"September 8th, 2011 11:26 pm","title":"Of Shapes and Flies: A Double-Bill Postmortem","title_was_empty":false}