| Tags: game development post-mortems

Another Ludum Dare under my belt! Ludum Dare is one of the most popular game jams, in which you have to create a game from scratch, on your own, in just 48 hours.

This is the post-mortem of the game I created, a platformer called Tales of the Underworld: Rebellion of the Souls. If you've taken part in the jam, please play and rate my entry. Everyone else, you can just play the game here.

You can also read the post-mortem from my previous entries (#31 and #32). And in case you are curious, you can peek at the code in the Github repository.

Rebellion of the Souls



Saturday was… terrible.

I woke up early to see the theme (which was published at a US-friendly hour, but here in Europe was at 4am) and think about it. I had a rough night because of a noisy fight in my street –police included–, but I managed to get out of bed at 7am. The theme was "You are the monster". I had a shower, read some posts at the Ludum Dare website showcasing what other people were doing already, and then headed outside to buy some food and have breakfast.

I settled for a platformer game in which you would control Hades, the God of Death (I guess that is monstrous enough), trying to reconquer the lost Underworld.

And then I made a big, big mistake: I started to create a level editor because I thought that having this in-game would allow me to create levels faster. BIG. MISTAKE.

I could –should!– have just used Tiled, a map editor that can export to JSON. But I don't like Tiled (it's complicated) and thought that I could do something more simple. It turns out that you really don't have time for this during a 48h game jam.

Finally at 9:30pm I had the main character with basic movement.

Character movement

I was way behind the schedule. Usually at game jams I try to spend one full day coding, and another full day doing art, level design and fixing bugs. And it was night already, and I didn't even have enemies!

I managed to put some victory (reach a point in the screen) and losing conditions (touch the red tile) and decided to call it a day. I also included some sound effects I generated with Bxfr.

Victory condition

I was in bed and thought about quitting, since it seemed obvious I wouldn't be able to pull out the game on time. I texted a friend of mine, and she told me something on the lines of "Stop the editor. Start from scratch if you want. You don't need a weekend to make a game, you can do it in just one day". I wasn't fully convinced, but decided to sleep on it.


Sunday was amazing!

I woke up at around 8am and I thought I would keep on working on the game. I didn't think I could finish it on time, but I still wanted to implement a platformer in JavaScript and it looked like a good opportunity to have at least a prototype.

I had a long walk outside, had breakfast and went back home to keep on coding.

While I was implementing features I was tweeting about it, with animated GIF's showing progress (much better than static screenshots) and a URL to play the game while it was still work in progress. I think this was key for Sunday's epic wins.

By 11am I had a working scrolling scenario:


And two hours later, there were enemies populating the world!


By this time the level was fully playable and I started to receive feedback on Twitter about the character's body being too big, or some bugs.

I still wanted to implement more features, like being able to kill enemies with a weapon à la Alex Kidd, but I really needed to start to work on the art.

Unlike last time, I was sensible enough to choose an ultra-simple art style. I picked up a minimal colour palette and went for retro pixel art. Meet Hades, the main character:


After that, I did some animation for the enemies too and integrated them into the game:

Main character and enemies animations

Then the lava…


And finally the tiles!


By this time I had friends competing between them to see who would finish the level by going through the most difficult path! They suggested to implement a timer so they could see who would finish it faster. I ended up doing it, of course.

By 5pm I was mostly done with the art. I drew the background and also the item you needed to catch to complete the level (a pomegranate). I also quickly put a song together by mixing and tweaking some samples in Garage Band.


I found out that I still had some time to implement a few more features and creating multiple levels. I put in the chrono my friends asked me to. I also created the title screen.


And the new feature I decided to add –since it was more simple than others– was to have pickable objects (like the rings in Sonic). It was the first time I was drawing a rotating coin, but I think they are very cute.


I didn't have time for more, so I decided to start to create levels. By 11pm I had five levels!


Since I didn't took Monday off I couldn't stay up late to keep on polishing things. So I took some screenshots and prepared my submission for the competition. It was midnight, I was exhaused but I did it.

What went wrong

What went right

Tools and tech

No hipsters were harmed during the production of this game.