Ludum Dare 20 BUBBA Post Mortem

Ludum Dare 20 was my first. You never forget your first I’m told.

I didn’t get around to posting on my progress during the competition so I thought a quick post mortem to make up for it. At the end of the competition I was pretty upset about how the final hours went, but having slept on it and after getting some good feedback I’m now really glad I did it and with the end result.

Along with the post mortem, I’m thinking of doing a discussion of the game development (How I did feature X, Why I did it that way, Problems found along the way). If people are interested in that let me know, or it will probably just stay on my TODO: list.

Also, If you’ve not played my entry yet, go play it please, its here http://www.ludumdare.com/compo/ludum-dare-20/?action=preview&uid=3842

What Went Well

Tiled:

Tiled is a free 2D level editor that someone pointed out to me some time back. I had never used it before the competition but it looked good. It turned out to be brilliant, its very quick to knock a up level with. Its object system was essental to my game and the ability to add any kind of property to an object allowed me to do some really cool things (but these never made it into the final submission more on that later). It save format is xml which is well laid out and simple to parse. It also handles tile sets very well. If I was to do another 2D game (professional or hobby) tiled would be the first tool I’d download.

GIMP and Graphics Tablet:

Despite being employed as a professional programmer, I did once do an A-level in art. However, I’ve never got along with computer art tools. That changed over the competition. The art work I thought would take the longest to make, but after 30 mins of using GIMP I was flying  and knocking out textures. I’m really happy with a couple of the assets I made. The angry ball makes me smile every time I see it. I enjoyed using my new tablet so much I’m tempted to use drawing to relax.

C++:

I’ve seen some people posting something along the lines of “going old school and using C++”. While I agree that C++ is a pain to work with (a lot of the time)  its the language I work with every day. I was tempted to use a newer language like Python but in hindsight I think I may have stumbled on the language details. In C++, when something goes wrong its rare that I have no idea about the cause. In the end I had very few bugs during development of the game and I think this comes from knowing the pitfalls before hand (Sadly, with C++ there are lots!)

What Went Wrong/Didn’t Work:

DirectX:

As I started from scratch, I had a choice between Direct3D or OpenGL. I, somewhat, regret using Direct3D for two reasons. 1) Can’t easily port the game to other OS’s 2) Direct3D is a ball ache to get up and running. The amount of set up needed to get a triangle on screen is a lot. This is not always a bad thing, but for a 48 hour game making competition it wasn’t a wise choice. Maybe for the next Ludum Dare I should find an alternative (SDL? XNA? Unity?)

Didn’t Focus On Sound:

If you didn’t notice, there’s only one sound in my game. I wrote the code to play sound, it worked and I had a tool to generate sound in a couple of clicks. But I was stupid and left it to the very last moment to do and as an end result the game is lacking some character. I think the lesson here is to make an effort to get most sound in as place holder within the first 24 hours. Once its in it should be easy to swap out old sounds for new ones.

Wasted Time On Feature I Threw Away:

I said before that Tiled rules. It very powerful and in the 48 hours I created a basic system that could link physics objects to others via physics joints. These in turn would link to switches in the level. The idea behind it all was to have things like sea-saw puzzles or joints that could be broken to create domino effects i.e. a switch in level would set off a chain reaction in the physics that opened another door. However, the idea was just too big for the time frame and 7 hours from the deadline I had to drop it all. That was time spent I could have spent on sound :-(. Lesson: Don’t think too big(?)