Home | Rules and Guide | Sign In/Create Account | Write a Post | Reddit | #LD48 | #ludumdare on irc.afternet.org (Info)

Ludum Dare 30 — August 22nd-25th 2014 — Theme: Connected Worlds
  • Judging Ends: in 17 days, 2 hours, 50 minutes, 0 seconds
  • [ Real World Gatherings | Ludum Deals | Warmup Weekend (Games) | MiniLD #53 | Wallpaper (1) (2) (3) | Mailing List ]

    [ Play+Rate | Edit | View All Games | My Game ]


    Microbial Post-Mortem

    Posted by
    May 2nd, 2012 6:03 pm

    OK, been meaning to write this for a while – a post-mortem for my game Microbial.

    This was my first Ludum Dare – my first game jam also, and the first time I ever released a finished game for people to play :). Really enjoyed it – and enjoyed hearing people’s feedback and experiences playing the game. I was hoping it’d re-energize my game development enthusiasm which was waning a bit, and it totally succeeded at that.

    I have been working on a “bigger” indie game project for a while, after a couple prototype games I decided to kill off, so have some game programming experience under my belt (and debatably some art experience). Plus a career’s worth of business web application programming (lots of forms and lists :) ).

     

    What worked:

    Exploratory development approach: I was really inspired by Jon Blow and Marc Ten Bosch’s talk Designing to Reveal the Nature of the Universe, where they outline a process of starting with an idea (a game mechanic, a detail, a desired result) and exploring it’s space of possibilities completely – then present the best of what you discover to the player. I tried to take that approach with this game. A lot of people have commented on the great learning curve / progression, and surprisingly it didn’t take any deliberate effort on my part – I developed the levels pretty much in the order they appeared in the game – when one mechanic or game object felt “tapped out” in terms of what kind of unique puzzles and level types I could make, I’d try introducing a new mechanic. So really, the learning curve the player is experiencing is the same learning curve I as the designer was going through during the making of it (or maybe the same state of mind in the cases of level 27-30 :) )

    The 80/20 principle: With a 48 hour teeny timeframe I tried to stick to this mindset, also known as the Pareto principle – that in many areas of life, 80% of the effects come from 20% of the causes. E.g. 20% of the stocks produce 80% of the gains – 20% of your clients provide 80% of your business. I tried to focus on the 20% of to-dos that would make the most difference to the game.

    Blender as a level editor, with hot reloading: I love me some Blender. I have an ultra bare-bones script that exports just the world transform matrices and names of the objects in a Blender scene into a simple XML file that my game engine can parse while it’s running. Upshot is, I can use all of Blender’s fancy tools for moving, rotating, copying, deleting, hiding, snapping to a grid etc. (way more than I could implement in some fancy level editor of my own) and hit a key to export the XML file, which I can then hot-reload in a running copy of the game. So, like, instant level iterations. Woohoo.

    Engine I know well, with some prep beforehand: I adapted the game engine from my larger game, which was helpful – it’s not as fancy as something like Unity or GameMaker, but it took away a lot of the chores of managing game objects and components, playing sounds, handling input cleanly, doing basic 3D rendering, etc. So I could focus on gameplay programming and content creation when the contest started.

    Using real recorded sounds: Got a lot of compliments on the soundscape of this game – most of it was me doing weird things with my iPhone. E.g. the bubbling noises were from a bowl of water and a straw with some post-processing in Audacity and FL Studio for added ominousness (I tried putting the iPhone in a sandwich baggie and submerging it underwater, but all I got was plastic bag noise :) ). It was all very quick and dirty, I’m happy it came out sounding as good as it did.

    Ye Olde Triple-A Sound Studio

    Ye Olde Triple-A Sound Studio

    Having to do it in 48 hours: I can tend to geek out too much on perfecting my game engines, polishing little features, etc. and take forever to get things done – so having a fierce deadline was good to keep my dawdling under control :).

    Using 3D: Ironically I’m a little unknowledgable and shaky on 2D programming, having dived headfirst early on into the hardcore 3D stuff. So I stuck with what I was comfortable with on this entry. I think the 3D rendering it might have set the game apart visually a little bit from the majority of entries, even though it’s mechanically a very 2D game.

    What didn’t work:

    Crashes / problems on some systems: I got a mix of positive comments from those who could play and frustrated comments from people who couldn’t play the thing early on. I tested things out on a wimpy laptop and it ran OK, so figured I was good to go, but there were some weird GPU and other incompatibilities on certain systems. Anyway after being scared that I’d disqualify myself, I eventually made post-compo fixes and workarounds in a separate 2nd version (e.g. in Poland the default .NET floating-point parser will choke on “12.5″ – it’s expecting a comma thanks to it’s helpful worldly awareness :) ). Big thanks to the folks that helped me debug.

    XNA excluding mac / linux folks: XNA is by far what I have the most experience in, so for this compo it was the only real choice I had, but I know it bummed out some people. Don’t want to get too far into this debate as it’s covered elsewhere – but I might give MonoGame a try next time, which allegedly brings XNA to Mac and other platforms (though it’s 3D support is apparently not that great).

    Random break from wall of blog text

    HDR rendering / shadows busted in Reach: XNA 4 has two “graphics profiles” – Reach for crappy computers, and HiDef for beefier DirectX 10+ computers. My engine was written for HiDef and the Xbox 360 mainly, but I wanted a lot of people to be able to play this, so I had to hack together a Reach-compatible version of the rendering pipeline pre-compo. I lost single-format texture support in that process, so my HDR / light bloom setup, and my fancy shadow system had to go, after some frantic attempts to work around the limitations. After some late nights lately though I think I’ve got the engine in better shape for LD24 :).

    Particle system busted: I wanted to add some nice particle effects – dust floating by, cell innards when they’re broken, etc. – but my particle system was broken and I lost about an hour trying to fix it. Particles were moving 2x faster and dissapearing abruptly halfway through their lifecycle. Oh well.

    Anyway – I’ve used more than my share of blog space – thanks for reading.

    Microbial: Game | Timelapse

    Leave a Reply

    You must be logged in to post a comment.


    All posts, images, and comments are owned by their creators.

    [cache: storing page]