{"author_name":"Olofson","cat":"LD #22","comments":[],"epoch":1324430160,"likes":0,"metadata":{"p_key":"60130","p_author":"Olofson","p_authorkey":"2901","p_urlkey":"95883","p_title":"The Grumpy Pinball Ball \u2013 Postmortem","p_cat":"LD #22","p_event":"LD22","p_time":"1324430160","p_likes":"0","p_comments":"0","p_status":"UPD5","us_key":"2901","us_name":"Olofson","us_username":"olofson","event_start":"1323993600","event_key":"8","event_name":"LD22"},"text":"<blockquote><p>Well, if you spent the last few years being slapped around a table all day, you&#8217;d be grumpy too! This ball just wants to be alone on his blocky islands.\n <\/p><\/blockquote>\n <p>Entry is <a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-22\/?action=rate&amp;uid=2901\">here<\/a>.<\/p>\n <p><em>(And yes, the .eel files are plain text source files, so that&#8217;s the full, hackable game source right there. The language is a bit like Lua with a C-like syntax.)<br \/>\n <\/em><\/p>\n <p>Well, the other balls don&#8217;t really <strong>do<\/strong> anything, as I didn&#8217;t get around to implement any AI. And I didn&#8217;t get around to do any music either. And, it might have been a good idea to &#8220;tilt&#8221; the terrain of the higher level maps towards the viewer, or just select a few good areas from the Perlin terrain, as it gets a bit tricky when you can&#8217;t see what you&#8217;re doing. <img src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" alt=\":-)\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/><\/p>\n <h3>What went wrong<\/h3>\n <p>Decided to go for isometric 3D, so I had to code the engine for that, along with some physics. Not strictly a bad idea, but it was actually my first attempt at that particular kind of engine, so getting it to work correctly while not melting the CPU might have cost a few hours extra. And, I still got the depth sorting wrong in some cases&#8230;<\/p>\n <p>Also got this crazy idea of coding a tiny MIDI sequencer, instead of just typing music in as ChipSound script, but the net result of that was just a wasted hour or so, as I didn&#8217;t have enough time to do any music anyway.<\/p>\n <p>The biggest problem, however, was that I just caught a cold with fever, and couldn&#8217;t cope with the kind of tempo and short naps I planned for. All in all, I put in 27 hours of effective work time. Could have used 5-10 more hours &#8211; and they would have been there, even in the 48 h compo, had I been in proper shape.<\/p>\n <h3>What went right<\/h3>\n <p>Initially, all I had was this vague idea that the game would be about someone or something that wanted to be left alone. I decided right away that I&#8217;d go for isometric 3D and focus on low level game mechanics, so I drew a block in GIMP and coded away.<\/p>\n <p>I realized I wouldn&#8217;t have time to do a proper character with walk cycles and stuff with the tools and (lack of) skill at hand, so I considered giving the <a href=\"http:\/\/olofson.net\/images\/pig.png\">rubber pig<\/a> starring in my <a href=\"http:\/\/olofson.net\/mixed.html\">Fixed Rate Pig<\/a> SDL example a call &#8211; but then remembered I need to work alone, and drew a shiny steel ball in GIMP instead.<\/p>\n <p>Going with a steel ball actually turned out to be a brilliant move, as it became instantly obvious that the game mechanics would focus on bouncy physics, which can be a fair bit of fun in it&#8217;s own right, without any &#8220;artificial&#8221; game rules. In fact, there&#8217;s only one rule: A ball that touches the lava dies.<\/p>\n <p>And of course, I did finish in time to submit for the Jam, so failing the main event wasn&#8217;t a complete disaster. (Actually did try to submit in time, but it just wouldn&#8217;t work &#8211; and probably for the better, as that version was pretty useless anyway.)<\/p>\n <h3>Lessons learned<\/h3>\n <p>No real surprises here, but well worth pointing out:<\/p>\n <ol>\n <li>Coding a custom engine for a time limited event like this is a gamble, unless you <strong>really<\/strong> know what you&#8217;re doing. Each kind of engine has it&#8217;s own set of problems, and unless you&#8217;ve written one of that particular kind before, a few hours will likely be lost understanding and solving problems that are brand new to you. That can be fun and challenging, but the gamble is real: If you fail, you&#8217;ll still be struggling with the engine by the time of the submission deadline.<\/li>\n <li>Make sure you have a <strong>functional, complete<\/strong> and <strong>efficient<\/strong> toolchain that you&#8217;re up to speed with, for anything you want to use in the game! I could have leveraged <a href=\"http:\/\/zeespace.net\/\">ZeeSpace<\/a> and ChipSound better, but I don&#8217;t yet have a functional authoring tool for the former, and I don&#8217;t have a proper music setup. I&#8217;ve been having the same problem with <a href=\"http:\/\/kobo2.net\/\">Kobo II<\/a>, and the LD #22 just made it more obvious that I need to fix this ASAP.\n <\/ol>\n <h3>Conclusion<\/h3>\n <p>One would think that after a full weekend of being ill while working frantically, especially after previously having worked for weeks in a similar manner to get the <a href=\"http:\/\/kobo2.net\/\">Kobo II<\/a> tech preview out, one would just want a long vacation &#8211; but I&#8217;m more excited than ever to get back to work! I&#8217;ll probably start by adding some more gameplay elements to Kobo II for a Christmas Special Tech Preview 2, and then I actually will take a break &#8211; by hacking a sequencer\/editor for ChipSound&#8230;! \ud83d\ude00<\/p>\n <p><strong>UPDATE:<\/strong> <a href=\"http:\/\/youtu.be\/10FEASxqPyc?hd=1\" title=\"The Grumpy Pinball Ball - timelapse\">Timelapse video<\/a> uploaded!<\/p>\n <p><em><strong>David<\/strong><\/em><\/p>","time":"December 20th, 2011 8:16 pm","title":"The Grumpy Pinball Ball \u2013 Postmortem"}