Post-mortem

Posted by (twitter: @deathraygames)
December 17th, 2012 4:13 pm

My post-mortem on #LD25 Diabolical Genius… ( Play it now or rate it! )

What Went Right:

  • Inspiration – I was extremely enthusiastic the entire time! I credit this mainly to the wonderful community around Ludum Dare. Although my energy was helped greatly by the fact that the time crunch kept me on my toes and that this was my first Dare.
  • Focus – I was able to set aside the entire weekend with no obligations, which was very helpful. My girlfriend was kind enough to keep me fed and provide a tiny bit of social interaction when my eyes left the monitor for a few minutes. :)
  • Time Management – I originally planned to spend 25% on design, 25% on core mechanics programming, 25% on other programming, and 25% on graphics, sound and other final polish. Although I did stick to this timing a bit, it was definitely not so organized or linear.
  • Game Design – luckily I already had the premise of the game in my pile of “game ideas I’d love to make someday”, and it fit the theme perfectly. I considered a few other ideas and variations once the “You are the Villain” theme was announced, but I think that the design I chose was the best of the bunch because it didn’t have a massive scope. I learned from reading LD posts that being overly ambitious is the worst mistake you can make.
  • HTML5/JavaScript/jQuery – no problems, but I did learn a few things (see below).
  • Sound – adding sound was almost an after-thought. It was definitely one of the features I had no experience with and was on the chopping block if time got tight. I was surprised with was how easy sound was to deal with in JavaScript (good article on HTML5 audio), and I was lucky to find a few nice free .WAV files on freesound.org.
  • Mobile-Friendly – I decided early on that I wanted my game to be mobile friendly, so I spent a lot of time trying to get this to work right. The function I ended up making (portalResize.js) wasn’t too difficult and worked very well at re-sizing the game area (the “portal”) for various 3:4 screen resolutions. Also luckily I knew of the viewport meta tag already, and I was able to quickly determine the best setup after some reading at MDN and this MSDN article, and testing on a phone, iPad and computer. I decided on using this: <meta name=”viewport” content=”width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0″ />
  • SketchBook Pro (iPad) – This was a god-send for the cartoon artwork. It was a last-minute decision to use it, but once I got re-acquainted with the controls, it was a joy to use. (I originally planned on using Gimp with a drawing tablet, but misplaced it at the last minute).
  • Notepad++ – worked great, although I spent precious time trying to get my global styles in order, something I should have had setup already.
  • Dropbox – absolutely essential for moving files quickly between iPad and computer!
  • FireFTP – works great and is super easy to use
  • Chrome / Developer Tools – essential and works great
What Went Wrong & Lessons:
  • Game Design – this was the biggest flaw of my game. I neglected to make the core gameplay fun from the beginning. A lot of the game is waiting; in part, this is intentional – based off of my love for Game Dev Story – but it ended up being too boring. I tried to add in some interaction (you need to mouse-over the random events as they pop up), but it was too little, too late. I should have put more effort into either thinking through the journey and game loops (things I learned from Amy Jo Kim), or by making a working prototype so I could try it out and refine it earlier on.
  • Mobile-Friendly – I spent far too much time trying to get things to re-size nicely within the game area. The main div sizes well, but the elements inside, were explicitly defined in pixels, so they ended up not always looking good. In the future I think I’ll either need to have a solution for this built into a framework, or just go with a fixed size.
  • Mustache.js – Early on I decided to try including Mustache.js, if only for the experience. Although it did leave my HTML looking like an organized template, it led to some big problems with dynamic updates. I had to create a function (called walrusRender in dg.js) so I could easily maintain the template’s original data while doing constant updating. Of course, because I was constantly updating data, I ended up overwriting some buttons and links that I had added important events to, leading to a lot of unnecessary bug chasing. Lastly, it seems to be slow. I’m not sure if it’s something else in my code, but the refresh rate is noticeable in a few areas. If you’re going to use Mustache.js, I’d recommend you only target granular elements, rather than updating a whole page or section. Of course, if you’re getting granular, you might just be better off with jQuery’s .html(), .text(), and .attr() anyway.
  • HTML5 Boilerplate – I decided at the last minute to copy a few things from the HTML5 boilerplate. I should have had an HTML template ready to go from the beginning.
  • Focus – my brain was coding and designing in my sleep, so I found it hard to get a good rest. Also I should have called it quits earlier in the evening on Saturday (sleep is important!)
  • Gimp – it works well enough I suppose, but having a Photoshop background and no experience with Gimp, this ended up being a handicap for me.
  • Sublime Text 2 – I attempted to try this at the beginning, but gave up quickly because of the ‘buy now’ pop-ups.
  • WinSCP – I started with this for FTP, a new program to me, but it had some stability issues and was very slow, so I went back to reliable FireFTP.
  • Windows 8 – I’m new to this version of the OS and have several complaints better left for another blog.

I’m not sure if I’ll continue to work on this game (I already have a lot more improvement ideas), but the experience was amazing! Follow me on twitter or tumblr for updates.


Leave a Reply

You must be logged in to post a comment.

[cache: storing page]