| Tags: game development post-mortems

It had been around a year and a half since my latest Ludum Dare, so I was really eager to join the game jam this past weekend. My goal: make a game from scratch (code, art, music) in 48 hours. The theme for this edition was “Deeper and deeper” and I made a tiny game about an elf trying to return home, which you can play on Itch.io.

Title screen of "Exiled"

In this post-mortem you will find a short development log for the game, the tools I used, and what I learned while making this game.

Development log

Saturday

I woke up at 7:30 AM and saw the theme: “Deeper and deeper”. I had a short workout at home (thanks, RingFit Adventure), and then brainstormed some ideas while having a coffee. For this, I like to do mind maps:

Mind map with ideas around the theme

I was unsure of what to make out of it, so I went for a walk, and then did some house chores while still thinking on which kind of game I’d be making. At lunchtime, I settled down for a Diablo-like game about a dark elf having to return to his home in the Underground after having been cast out. I quickly drew a mockup of how I wanted it to look like.

Doodle mockup of the game

On game jams, I usually like to spend Saturdays coding and leave Sundays for art, music and level design. However, this time I got “trapped” into doing 1-bit retro pixel art —a poor decision in retrospective, but I was having fun!

Some pixel art

And quickly after that, I re-designed the main character to make it cuter and have black skin (like the dark elves from Forgotten Realms).

Main character

I loved how it turned out. I posted it on Twitter and people really liked the character as well.

I implemented rendering a level based on tiles, and also the character with basic movement. At this stage I decided not to follow Diablo’s controls with mouse, and rely on arrow keys or d-pad, like Zelda.

A level map with the character on it

I called it a day, and went to bed at a reasonable time.

Sunday

I was behind schedule in any way possible, so drastic measures had to be taken: I dropped combat mechanics and introduced dialogues instead, so I could tell a story while the character was travelling down the different levels.

And I hit a wall with this because I still don’t fully understand how Godot handles UI, and it turns out that implementing a box that will expand and shrink depending on the length of the text is not trivial.

Main character speaking with a comic balloon

In the end I managed to implement it, but I wasted a lot of time doing it. I could just have drawn boxes with three or four sizes and just picked one depending on text length. It would not have been perfect, but it would have been much quicker.

It was getting late, and I realised I still didn’t have a title screen or an end screen, so I made those two. I used the title screen to display a short tutorial, and I re-used the main character and my new shiny dialogue bubbles to achieve that.

Tutorial from within the title screen

SPOILER ALERT: You may want to play the game before you continue reading!

I only had a few hours left, so I quickly decided the story: the elf couldn’t win. He had been banished forever by some cruel gods, and he would be forever stuck in a loop trying to get home in vain. To reinforce this idea of looping, I made the player to go through the same levels a few time before displaying the “end” screen, and the main character would say something before going downstairs to switch to the new level.

And to make the levels a bit more interesting, I decided to introduce doors and keys, so the player would need to explore the level a bit before finishing it.

Once everything was in place, I added some retro sound effects I generated, and also quickly composed something in Garage Band as the soundtrack. I wanted something repetitive, that felt like endless work.

And I was done! The game turned out like nothing I thought in the beginning, but I’m happy I could submit something that felt complete somehow.

Lessons learned

What went well

What went wrong

Tools I used