Ludum Dare 38 Post-Mortem

This entry is likely been one of the topics I've been dreading writing about the most. It's been in my view our most polished attempt at a game yet, but as I'm writing this it reminds me of the fight I have inside myself to continue working on it. I'm really hoping that I'll get to push myself in that direction sooner rather than later, however right now I'm taking the time to write about it first.

The Theme

Ludum Dare 38 was one with a theme that I suspect would have come up so many times that it might seem boring at first: A Small World. You can just imagine there were quite a few Mario Galaxy clones to be played, but my cousin and I had decided we'll be going into this jam with a premeditated game type to build. I would have enjoyed kicking around a few ideas for this jam, but sadly we were on a very tight deadline and had to ensure that we get everything done on time so we started developing as soon as we could.

The Plan

In this case our plan was very clear: to use Test Driven Development and design a very simple Match 3 (think Bejeweled or Candy Crush Saga) system that would allow us to hook just about any user interface onto it. This was our first and most important goal when we started. We had not even considered how we'd make this game "fit" into the theme, but the goal with this wasn't to make a game for Ludum Dare per se, it was to use the jam time to our advantage because nothing beats working under a very tight deadline to serve as motivation.

It was only about after we had the basis of our Match 3 system done that we had really given thought to how we wanted to have this game fit in. Matt was inspired by the Boney M song We Kill The World/Don't Kill the World to make a little trash matching game where matching rows of trash would clean up cities. We ended up deciding on Save A Small World as our title.

Save A Small World

The Execution

So looking at the above screenshot I'm really impressed with what we've made. Matt had spent some time creating some menus as well as some art to use for our trash items. Once we had decided we were done with the grunt of our Match 3 system I started working on how to integrate that into Unity3D. While I was busy Matt really churned out some great art for us and once we started adding the art into our game it had really started to take shape. The below screenshot shows the match screen of the game.

Save A Small World Match 3

We had some bugs on day two that we could promptly crush as well as start iterating on building the extra bits of functionality that we still required like cascading and spawning. As I'm writing this though I'm realizing that we can likely have built a much better system for this, but as is life it's done now and we'll likely have to live with what we've done. This warrants something more towards Domain Driven Design so I'll try and discuss it in a different post.

The Goods

In the end the game we submitted to was in my view a very complete game. We had some configurable levels and we'll likely be able to add more and more of these levels to the existing game. We also had a very good lesson on how to structure our code a lot better in order to allow for a more sensible solution that would not have a tonne of dependencies flying around and just causes headache when trying to reason about what's going on. For those of you reading this that might be keen to have a look at what we made head on over to our game page to download the game. We've been doing some more work on this game and I think with enough motivation and commitment we should be able to get something in a releasable state sometime in the coming months. Let's just hope this is not some lie we're telling ourselves.

Sas van der Westhuizen

Intermediate Software Engineer at Entelect; "engineering" since 2015; loves games, rock climbing; been trying my hand at making games, but nothing good yet!

Johannesburg, South Africa